Zabbix 监控之 数据库主从状态

2017年4月26日

Mysql 的主从监控主要就是查看

  1. Slave_IO_Running: Yes
  2. Slave_SQL_Running: Yes

如果这两个值 等于Yes 就表示主从状态正常,那么我们只需要统计这两个值的 Yes "数量"

  1. mysql -uuser -Pport -ppasswd -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes

统计Slave_IO_Running|Slave_SQL_Running 这两个值的 Yes 数量, 由于可能有多个从故而将端口定义为变量 ,这里自动发现不适用一个主机可以开启多个数据库端口,但是不是每一个都有主从所有手动配置;
cd /etc/zabbix/shell (这是我的脚本放置目录,进入你自己定义的脚本目录)
vim mysql_slave_status.sh

  1. #!/bin/bash
  2. mysql_username="Mysql User"
  3. mysql_password="Mysql Password"
  4. mysql_host='Mysql Host'
  5. mysql_port=$1
  6. mysql -u$mysql_username -h$mysql_host -P$mysql_port -p$mysql_password -e 'show slave status\G' |grep -E
  7. "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes

保存 赋权

  1. chmod 755 mysql_slave_status.sh

测试结果
mysql_slave_status.sh 3306

[root@localhost ~]# ./mysql_slave_status.sh 3306
2

zabbix 配置

cat /etc/zabbix/zabbix_agent.d/slave_mysql.conf

  1. UserParameter=mysql.slave[*],/etc/zabbix/shell/mysql_slave_status.sh $1

重启 zabbix_agent
测试

[root@localhost ~]# zabbix_get -s 127.0.0.1 -k mysql.slave[6603]
2

得到值 2 表示成功 , 接下来就是添加模版了
不过呢 我觉得这样很单调 所以把主从的主信息也加上了配置如下 :

cd /etc/zabbix/shell
cat mysql_slave_message.sh

  1. #!/bin/bash
  2. mysql_username="Mysql User"
  3. mysql_password="Mysql Password"
  4. mysql_host='Mysql Host'
  5. mysql_port=$1
  6. requirements=$2;
  7. #STATUS=$(mysql -u$mysql_username -h$mysql_host -P$mysql_port -p$mysql_password -e 'show slave status\G')
  8. #echo $STATUS;
  9. message_slave(){
  10. STATUS=$(mysql -u$mysql_username -h$mysql_host -P$mysql_port -p$mysql_password -e 'show slave status\G'| grep
  11. "$requirements" | awk '{print $2}')
  12. echo $STATUS;
  13. }
  14. message_slave

保存赋权

  1. chmod 755 mysql_slave_message.sh

测试

[root@localhost ~]# ./mysql_slave_message.sh 3306 Master_Host
192.168.11.212

zabbix 配置

cat /etc/zabbix/zabbix_agent.d/slave_mysql.conf

  1. UserParameter=mysql.slave[*],/etc/zabbix/shell/mysql_slave_status.sh $1
  2. UserParameter=mysql_slave[*],/etc/zabbix/shell/slave.sh $1 $2

重启 zabbix_agent
测试

[root@localhost ~]# zabbix_get -s 127.0.0.1 -k mysql_slave[3306,Master_Host]
192.168.11.212

模版文件的配置 :

创建模版:

 

创建监控项

创建触发器 主从断开恢复 发送邮件

导出模板为 mysql_slave.xml

最终效果图如下:

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注