數據庫監控:nagios(check_mysql_health)

部署nagios
https://blog.51cto.com/13598811/2104186

官網:https://labs.consol.de

[root@nagios ~]# tar zxvf DBI-1.637.tar.gz
[root@nagios ~]# cd DBI-1.637
[root@nagios DBI-1.637]# perl Makefile.PL
[root@nagios DBI-1.637]# make all
[root@nagios DBI-1.637]# make install

[root@nagios ~]# tar zxvf DBD-mysql-4.043.tar.gz 
[root@nagios ~]# cd DBD-mysql-4.043cd DBD-mysql-4.043
[root@nagios DBD-mysql-4.043]# perl Makefile.PL 
[root@nagios DBD-mysql-4.043]# make all
[root@nagios DBD-mysql-4.043]# make install

[root@nagios ~]# tar zxvf check_mysql_health-2.2.2.tar.gz 
[root@nagios ~]# cd check_mysql_health-2.2.2
[root@nagios check_mysql_health-2.2.2]# ./configure --prefix=/usr/local/icinga \
--with-nagios-user=icinga \
--with-nagios-group=icinga
[root@nagios check_mysql_health-2.2.2]# make
[root@nagios check_mysql_health-2.2.2]# make install

[root@nagios ~]# cd /usr/local/icinga/libexec/
[root@nagios 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 <timeout>] [[--hostname <hostname>] 
        [--port <port> | --socket <socket>]
        --username <username> --password <password>] --mode <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)

[root@nagios libexec]# ./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

[root@nagios libexec]# ./check_mysql_health --hostname 192.168.1.201 --username nagios --password nagios --mode uptime
OK - database is up since 7542 minutes | uptime=452541s


[root@nagios ~]# cd /usr/local/icinga/etc/objects
[root@nagios objects]# vi commands.cfg
define command{
        command_name    check_mysql
        command_line    $USER1$/check_mysql_health --hostname $ARG1$ --username nagios --password nagios --mode $ARG2$
        }

[root@nagios objects]# 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_name  database
        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
        }

[root@nagios ~]# cd /usr/local/icinga/etc        
[root@nagios etc]# vi icinga.cfg 
cfg_file=/usr/local/icinga/etc/objects/mysql.cfg 
               
[root@nagios objects]# service icinga restart
Running configuration check...OK
Stopping Icinga: Waiting for icinga to exit ..Stopping icinga done.
Starting icinga: Starting icinga done.

[root@wallet01 ~]# 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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章