使用nagios监控mysql主从可以有两种方法,一种是使用nagios的nrpe插件来执行远程的shell脚本,并把数据发回监控服务器分析,二种方法是使用snmp的extend功能来执行远程脚本。我们这里介绍后一种方法。
一、mysql从服务器设置
1、mysql从服务器用户添加
执行如下语句添加用户:
- mysql> GRANT REPLICATION CLIENT ON *.* TO monitor@localhost IDENTIFIED BY ‘PassWord’;
2、下载check-mysql-slave.pl脚本
- cd /usr/local/bin/
- wget http://devops.webres.wang/wp-content/uploads/2012/10/check-mysql-slave.pl
- chmod +x check-mysql-slave.pl
3、在mysql从服务器上配置extend mysql-slave
在/etc/snmp/snmpd.conf文件的末尾添加如下代码:
- extend mysql-slave /usr/local/bin/check-mysql-slave.pl –user monitor –pass PassWord –sock /var/lib/mysql/mysql.sock
注意相关参数修改为自己的。
之后重载snmp:
- service snmpd reload
二、监控服务器设置
1、下载check_snmp_extend.sh脚本
- mkdir /usr/local/nagios/libexec.local
- cd /usr/local/nagios/libexec.local
- wget http://devops.webres.wang/wp-content/uploads/2012/10/check_snmp_extend.sh
- chmod +x check_snmp_extend.sh
2、定义USER10变量
在文件/usr/local/nagios/etc/resource.cfg添加如下变量:
- $USER10$=/usr/local/nagios/libexec.local
3、定义check_snmp_extend命令
在/usr/local/nagios/etc/objects/commands.cfg添加:
- define command{
- command_name check_snmp_extend
- command_line $USER10$/check_snmp_extend.sh $HOSTADDRESS$ $ARG1$
- }
4、定义监控mysql主从服务
在主机配置文件,如/usr/local/nagios/etc/objects/devops.webres.wang.cfg中添加如下service(注意,此www.cnetos.bz.cfg文件已经在nagios.cfg配置文件中包含)
- define host{
- use linux-server
- host_name devops.webres.wang
- alias devops.webres.wang
- address 142.4.33.74
- }
- ……
- ……
- define service{
- ## This is an example service configured as
- ## extend servicename /path/to/service-check.sh
- ## on remote.server in /etc/snmp/snmpd.conf
- use generic-service
- host_name devops.webres.wang
- service_description mysql slave status
- check_command check_snmp_extend!mysql-slave
- }