crespo09 发表于 2019-1-12 11:16:32

数据库监控:nagios(check_mysql_health)

部署nagios
http://blog.运维网.com/13598811/2104186
官网:https://labs.consol.de/nagios/check_mysql_health
# tar zxvf DBI-1.637.tar.gz
# cd DBI-1.637
# perl Makefile.PL
# make all
# make install
# tar zxvf DBD-mysql-4.043.tar.gz
# cd DBD-mysql-4.043cd DBD-mysql-4.043
# perl Makefile.PL
# make all
# make install
# tar zxvf check_mysql_health-2.2.2.tar.gz
# cd check_mysql_health-2.2.2
# ./configure --prefix=/usr/local/icinga \
--with-nagios-user=icinga \
--with-nagios-group=icinga
# make
# make install
# cd /usr/local/icinga/libexec/
# ./check_mysql_health
Please select a mode
Copyright (c) 2009 Gerhard Lausser

Check various parameters of MySQL databases
Usage:
    check_mysql_health [-v] [-t ] [[--hostname ]
      [--port| --socket ]
      --username--password ] --mode
      [--method mysql]
    check_mysql_health [-h | --help]
    check_mysql_health [-V | --version]
Options:
    --hostname
       the database server's hostname
    --port
       the database's port. (default: 3306)
    --socket
       the database's unix socket.
    --username
       the mysql db user
    --password
       the mysql db user's password
    --database
       the database's name. (default: information_schema)
    --replication-user
       the database's replication user name (default: replication)
    --warning
       the warning range
    --critical
       the critical range
    --mode
       the mode of the plugin. select one of the following keywords:
       connection-time          (Time to connect to the server)
       uptime                   (Time the server is running)
       threads-connected      (Number of currently open connections)
       threadcache-hitrate      (Hit rate of the thread-cache)
       threads-created          (Number of threads created per sec)
       threads-running          (Number of currently running threads)
       threads-cached         (Number of currently cached threads)
       connects-aborted         (Number of aborted connections per sec)
       clients-aborted          (Number of aborted connections (because the client died) per sec)
       slave-lag                (Seconds behind master)
       slave-io-running         (Slave io running: Yes)
       slave-sql-running      (Slave sql running: Yes)
       qcache-hitrate         (Query cache hitrate)
       qcache-lowmem-prunes   (Query cache entries pruned because of low memory)
       keycache-hitrate         (MyISAM key cache hitrate)
       bufferpool-hitrate       (InnoDB buffer pool hitrate)
       bufferpool-wait-free   (InnoDB buffer pool waits for clean page available)
       log-waits                (InnoDB log waits because of a too small log buffer)
       tablecache-hitrate       (Table cache hitrate)
       table-lock-contention    (Table lock contention)
       index-usage            (Usage of indices)
       tmp-disk-tables          (Percent of temp tables created on disk)
       table-fragmentation      (Show tables which should be optimized)
       open-files               (Percent of opened files)
       slow-queries             (Slow queries)
       long-running-procs       (long running processes)
       cluster-ndbd-running   (ndnd nodes are up and running)
       sql                      (any sql command returning a single number)
# ./check_mysql_health --hostname 192.168.1.201 --username nagios --password nagios --mode connection-time
OK - 0.02 seconds to connect as nagios | connection_time=0.0169s;1;5
# ./check_mysql_health --hostname 192.168.1.201 --username nagios --password nagios --mode uptime
OK - database is up since 7542 minutes | uptime=452541s

# cd /usr/local/icinga/etc/objects
# vi commands.cfg
define command{
      command_name    check_mysql
      command_line    $USER1$/check_mysql_health --hostname $ARG1$ --username nagios --password nagios --mode $ARG2$
      }
# vi mysql.cfg
define host{
      use                     linux-server
      host_name               wallet01
      alias                   wallet01
      icon_image            redhat.gif
      statusmap_image         redhat.gd2
      address               192.168.1.201
      }
define hostgroup{
      hostgroup_namedatabase
      alias         database
      members         wallet01
      }
define service{
      host_name                     wallet01
      use                           generic-service
      service_description             mysql connection time
      servicegroups                   mysql
      check_command                   check_mysql!192.168.1.201!connection-time
      }
define service{
      host_name                     wallet01
      use                           generic-service
      service_description             mysql uptime
      servicegroups                   mysql
      check_command                   check_mysql!192.168.1.201!uptime
      }
# cd /usr/local/icinga/etc      
# vi icinga.cfg
cfg_file=/usr/local/icinga/etc/objects/mysql.cfg
# service icinga restart
Running configuration check...OK
Stopping Icinga: Waiting for icinga to exit ..Stopping icinga done.
Starting icinga: Starting icinga done.
# mysql -uroot -pabcd.1234
mysql> create user 'nagios'@'%' identified by 'nagios';
Query OK, 0 rows affected (0.07 sec)
mysql> grant all privileges on *.* to 'nagios'@'%';
Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.16 sec)


页: [1]
查看完整版本: 数据库监控:nagios(check_mysql_health)