部署nagios
http://blog.运维网.com/13598811/2104186
官网:https://labs.consol.de/nagios/check_mysql_health
[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 ] [[--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)
[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)