文章目录
zabbix自定义监控(主从、主从延迟)
1.编写脚本
[root@centos8-1 scripts]# cat mysql.sh
#!/bin/bash
USER=zabbix
PASSWD=zabbix123!
qs=`mysql -u $USER -p$PASSWD -e "show slave status\G;" 2> /dev/null | grep _Running | grep -c Yes`
if [ $qs -eq 2 ];then
echo 0
else
echo 1
fi
[root@centos8-1 scripts]#
1.1.设置权限
MariaDB [(none)]> grant select on *.* to 'zabbix'@'localhost' identified by 'zabbix123!';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> grant SUPER, REPLICATION CLIENT on *.* to 'zabbix'@'localhost' identified by 'zabbix123!';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]>
1.1.修改配置文件
[root@centos8-1 etc]# vim zabbix_agentd.conf
# ListenBacklog=
UserParameter=mysql.slave[*],/scripts/mysql.sh $1 //添加此行
[root@centos8-1 etc]# pkill zabbix
[root@centos8-1 etc]# zabbix_agentd //重启
[root@centos8-1 etc]#
1.2.在服务端测试
[root@node2 ~]# zabbix_get -s 192.168.100.146 -k mysql.slave
0
[root@node2 ~]#
2.web界面添加监控项进行监控
3.添加触发器
手动触发
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]>
4.结果
5.主从延迟
写脚本
[root@centos8-1 scripts]# cat check_delay.sh
#!/bin/bash
USER=zabbix
PASSWD=zabbix123!
delay_count=$(mysql -u $USER -p$PASSWD -e "show slave status\G;" 2> /dev/null | grep 'Behind' | awk '{print $2}')
if [ $delay_count != NULL ];then
echo $delay_count
else
echo 0
fi
[root@centos8-1 scripts]#
5.1.修改配置文件
[root@centos8-1 scripts]# vim /usr/local/etc/zabbix_agentd.conf
# ListenBacklog=
UserParameter=mysql.slave[*],/scripts/mysql.sh $1
UserParameter=mysql.delay,/scripts/check_delay.sh //添加此行
5.2.重启
[root@centos8-1 scripts]# pkill zabbix
[root@centos8-1 scripts]# zabbix_agentd
[root@centos8-1 scripts]#
5.3.服务端测试
[root@node2 ~]# zabbix_get -s 192.168.100.146 -k mysql.delay
0
[root@node2 ~]#