思路:首先mysql主从状态是否正常是通过 Slave_IO_Running|Slave_SQL_Running 两个参数是否都为yes来判定。得到yes的个数为2,就代表正常。
再通过zabbix创建监控项--创建触发器并设置条件为key不等于2即可,代表主从不正常,触发器触发执行动作(邮件报警)
步骤:
1.通过命令过滤出mysql主从状态yes的个数,加入到脚本里
mysql -uroot -p123456 -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running"|awk -F: '{print $2}'|grep -ic "YES"
脚本内容:
[root@server2 data]# cat mysq_check.sh
#!/bin/bash
#export MYSQL_PWD=123456
MYSQL_PWD=123456 /usr/bin/mysql -uroot -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running"|awk -F: '{print $2}'|grep -ic "YES"
2.在客户端zabbix_agentd.conf配置文件加入代码:
UserParameter=mysql.rep, sh /data/mysq_check.sh
mysql.rep是自定义key的名字。 后面sh 跟得到key的脚本路径
3.Zabbix 服务器端获取监控数据,如果返回值为 2,则证明丛库 I/O,SQL 线程均为 YES,表示主从同步成功
(如果没有zabbix_get 则安装yum install zabbix-get.x86_64)
zabbix_get -s 192.168.1.101 -k mysql.rep
zabbix的设置
1.配置---主机---点击要监控的主机---监控项目--右上角创建监控项
image.png
填写名称和key名,点一下测试,验证一下get value能否成功。OK了点添加。
2.为刚才的监控项创建图形(创建图形并把刚才的监控项链接进来)
image.png
3.创建触发器(设置阀值,满足条件则触发,并发生动作发邮件报警)这里<>2是不等于2的意思
image.png
插入并添加,ZABBIX配置到此结束
查看下图形(现在为2,可以再mysql从机上执行stop slave测试)
image.png image.png
这里发生了故障后,动作是发出邮件给指定用户,可以发邮件需要提前配置好报警媒介,(可以参考上篇监控nginx状态)
image.png image.png总结自定义key的zabbix部分配置 :客户端做好准备工作后,zabbix先创建监控项---图形---触发器--动作(如果已经配置过报警媒介并在user setting里指定过那就到触发器这一步就可以结束了)
提前指定过报警媒介的话,只要以后再创建触发器指定了严重性并包含在下图的范围里,都会发邮件,不必再次配置动作。
image.png
网友评论