1.添加系统有的监控模块,我用的默认安装是不监控mysql的,那么自己加一下,mysqlcheck默认是有的,但是没有添加
已经有的模块
[root@Git lib]# cd nagios/plugins/
check_breeze check_file_age check_ircd check_mysql_query check_nwstat check_simap check_ups
check_by_ssh check_flexlm check_jabber check_nagios check_oracle check_smtp check_users
check_clamd check_fping check_ldap check_nntp check_overcr check_snmp check_wave
check_cluster check_ftp check_ldaps check_nntps check_pgsql check_spop eventhandlers/
check_dhcp check_game check_load check_nrpe check_ping check_ssh negate
check_dig check_hpjd check_log check_nt check_pop check_ssmtp urlize
check_disk check_http check_mailq check_ntp check_procs check_swap utils.pm
check_disk_smb check_icmp check_mrtg check_ntp_peer check_real check_tcp utils.sh
check_dns check_ide_smart check_mrtgtraf check_ntp.pl check_rpc check_time
check_dummy check_imap check_mysql check_ntp_time check_sensors check_udp
[root@Git lib]# cd nagios/plugins/
有个check_mysql这个就是check数据库的,
修改这个文件
[root@Git objects]# ll
total 44
-rw-rw-r-- 1 root root 7864 Dec 31 23:29 commands.cfg
-rw-rw-r-- 1 root root 2275 Dec 31 18:40 contacts.cfg
drwxr-xr-x 2 root root 4096 Dec 31 23:31 hosts
-rw-rw-r-- 1 root root 3124 Aug 31 06:28 printer.cfg
-rw-rw-r-- 1 root root 3293 Aug 31 06:28 switch.cfg
-rw-rw-r-- 1 root root 11247 Dec 31 22:44 templates.cfg
-rw-rw-r-- 1 root root 3208 Aug 31 06:28 timeperiods.cfg
-rw-rw-r-- 1 root root 4019 Aug 31 06:28 windows.cfg
[root@Git objects]# vim commands.cfg
在文件的最后添加一个新的模块
#check mysql
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios -d nagios -p 123456
}
"commands.cfg" 245L, 7864C
然后在监控服务器对应的文件里面添加这里解释下,比如监控localhost,会有一个对应的cfg文件,默认的是localhost.cfg,我监控了一个前端服务器,我用的名字是front.cfg
如下所示:
[root@Git objects]# ll
total 44
-rw-rw-r-- 1 root root 7864 Dec 31 23:29 commands.cfg
-rw-rw-r-- 1 root root 2275 Dec 31 18:40 contacts.cfg
drwxr-xr-x 2 root root 4096 Dec 31 23:31 hosts
-rw-rw-r-- 1 root root 3124 Aug 31 06:28 printer.cfg
-rw-rw-r-- 1 root root 3293 Aug 31 06:28 switch.cfg
-rw-rw-r-- 1 root root 11247 Dec 31 22:44 templates.cfg
-rw-rw-r-- 1 root root 3208 Aug 31 06:28 timeperiods.cfg
-rw-rw-r-- 1 root root 4019 Aug 31 06:28 windows.cfg
[root@Git objects]# cd hosts/
[root@Git hosts]# ll
total 20
-rw-r--r-- 1 root root 5014 Dec 31 23:31 front.cfg
-rw-r--r-- 1 root root 143 Dec 30 22:37 group.cfg
-rw-r--r-- 1 root root 5403 Dec 30 21:49 localhost.cfg
[root@Git hosts]# vim front.cfg
hosts目录是我自己新添加的,需要在nagios.cfg里面声明或者配置吧
define service{
use local-service ; Name of service template to use
host_name Front1.Webserver
service_description HTTP
check_command check_http
notifications_enabled 0
}
define service{
use local-service
host_name Front1.Webserver
service_description check-mysql
check_command check_mysql
}
"front.cfg" 146L, 5014C
在文件的最后添加已经添加好的command,注意名字要一至,都是check_mysql
参考http://navyaijm.blog.51cto.com/4647068/1282403
然后重启nagios
然后需要说明的是,添加后会显示pending,等一会就好了。还有就是会一直显示critical,这是因为上面的
mysql -H $HOSTADDRESS$ -u nagios -d nagios -p 123456
访问数据库失败,这是因为我们没有在被监控节点上(我这里是front前端这个节点)添加一个名为nagios的数据和一个登录用户为nagios密码为123456的这个歌流程,所以需要添加user nagios 密码123456 然后添加nagios database,可以做到本机 mysql -h localhost -u nagios -p123456 -d nagios这条命令执行OK
当然可以不用nagios 可以换成你需要监控的数据库。这个就自由发挥了,只要你会mysql,你就可以搞定后面的具体细化了。