自定义监控mysql服务
1 监控mysql进程
[root@node2 ~]# cd /usr/local/etc/
[root@node2 etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d
[root@node2 etc]# vim zabbix_agentd.conf
UnsafeUserParameters=1
//取消注释并把值设为1
//并在末尾加入以下内容
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1
//脚本
[root@node2 etc]# mkdir /scripts/
[root@node2 etc]# vim /scripts/check_process.sh
//写入以下内容
#!/bin/bash
count=$(ps -ef| grep -Ev "grep|$0"| grep -c $1)
if [ $count -eq 0 ]; then
echo '1'
else
echo '0'
fi
//重启zabbix
[root@node2 ~]# pkill zabbix
[root@node2 ~]# zabbix_agentd
在这里插入图片描述
2 监控mysql日志
[root@node2 scripts]#vim log.py
//写入此网页log.py的内容https://github.com/chendao2015/pyscripts
[root@node2 scripts]#chmod +x log.py
//修改日志文件权限
[root@node2 ~]# cd /opt/data/
[root@node2 data]# ls
auto.cnf client-key.pem ib_logfile1 mysql_logs server-cert.pem
ca-key.pem ib_buffer_pool ibtmp1 performance_schema server-key.pem
ca.pem ibdata1 mysql private_key.pem sys
client-cert.pem ib_logfile0 mysql.pid public_key.pem test
[root@node2 data]# setfacl -m u:zabbix:rx /opt/data
//修改配置文件
[root@node2 scripts]# cd /usr/local/etc/
[root@node2 etc]# vim zabbix_agentd.conf
//末尾添加一下内容
UserParameter=check_logs[*],/bin/bash/python3 /scripts/log.py $1 $2 $3
//重启zabbix
[root@node2 ~]# pkill zabbix
[root@node2 ~]# zabbix_agentd
添加监控
添加触发器
验证
[root@node2 scripts]# echo 'Error' >> /opt/data/mysql_logs
//写入err
3. 监控mysql主从状态
准备工作
在被监控端的基础上在建立一个与监控端配置mysql主从的主库
具体参考这篇文章
我是参考
具体步骤
[root@node2 ~]# cd /scripts/
[root@node2 scripts]# vim mysqlms.sh //脚本写入以下内容
#!/bin/bash
count=$( mysql -uroot -p951yyx -e 'show slave status\G;' 2>/dev/null | grep -v grep | grep -c 'Yes' )
if [ $count -eq 2 ];then
echo "0"
else
echo "1"
fi
//给予权限
[root@node2 scripts]# chmod +x mysqlms.sh
[root@node2 scripts]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysqlms,/bin/bash /scripts/mysqlms.sh
//末尾添加以上内容
//重启生效
[root@node2 scripts]# pkill zabbix
[root@node2 scripts]# zabbix_agentd
添加监控
添加触发器
验证效果
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
效果
4.监控mysql主从延迟
[root@node2 ~]# cd /scripts/
[root@node2 scripts]# vim mysql_delay.sh //写入以下内容
#!/bin/bash
delay=$(mysql -uroot -p951yyx -e 'show slave status\G' 2>/dev/null | grep 'Seconds_Behind_Master'| awk '{print $2}' )
echo $delay
//给与权限
[root@node2 scripts]# chmod +x mysql_delay.sh
[root@node2 scripts]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysql_delay,/bin/bash /scripts/mysql_delay.sh
//末尾添加以上内容
//重启生效
[root@node2 scripts]# pkill zabbix
[root@node2 scripts]# zabbix_agentd
添加监控
添加触发器
验证效果