自定义监控MySQL主从状态和延迟
文章目录
- 自定义监控MySQL主从状态和延迟
- 一. 自定义监控MySQL主从状态
- 1. 环境
- 1.1 准备3台虚拟机,安装了mysql主从的虚拟机
- 2. 在slave编写脚本以及zabbix客户端配置文件
- 3. 验证
- 4. 添加监控项
- 5. 添加触发器
- 6. 触发
- 7. 查看数据
- 8. 查看邮箱
- 二. 自定义监控MySQL延迟状态
- 1. 在slave编写脚本以及zabbix客户端配置文件
- 2. 验证
- 3. 添加监控项
- 4. 添加触发器
- 5. 查看
- 6. 查看邮箱
- 三. 设置zabbix用户以及用户组
- 1. 添加用户
- 2. 添加用户权限
- 3. 添加用户组
- 4. 添加用户组权限
- 5. 再次配置用户权限
- 6. 查看
一. 自定义监控MySQL主从状态
1. 环境
1.1 准备3台虚拟机,安装了mysql主从的虚拟机
环境 | IP | 域名 | 安装的应用 |
服务端 | 192.168.232.132 | zabbix_server | lamp架构 zabbix server zabbix agent |
客户端 | 192.168.232.128 | slave | zabbix agent mysql从库 |
客户端 | 192.168.232.134 | master | mysql主库 |
2. 在slave编写脚本以及zabbix客户端配置文件
[root@slave ~]# cd /scripts/
[root@slave scripts]# ls
check_process.sh log.py
[root@slave scripts]# vim mysqlms.sh
[root@slave scripts]# chmod +x mysqlms.sh
[root@slave scripts]# vim mysqlms.sh
[root@slave scripts]# cat mysqlms.sh
#!/bin/bash
count=$(mysql -uroot -prun123456 -e "show slave status\G;" 2> /dev/null |grep -v grep | grep -c 'Yes')
if [ $count -ne 2 ];then
echo '1'
else
echo '0'
fi
[root@slave scripts]#
[root@slave scripts]# cd /usr/local/etc/
[root@slave etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d
[root@slave etc]# vim zabbix_agentd.conf
[root@slave etc]# tail -3 zabbix_agentd.conf
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1
UserParameter=check_logs[*],/usr/bin/python3 /scripts/log.py $1 $2 $3
UserParameter=check_mysqlms,/bin/bash /scripts/mysqlms.sh
[root@slave etc]# pkill zabbix
[root@slave etc]# zabbix_agentd
[root@slave etc]#
3. 验证
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_mysqlms
0
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_mysqlms
0
[root@slave ~]# systemctl stop mysqld
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_mysqlms
1
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_mysqlms
1
[root@slave ~]# systemctl start mysqld
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_mysqlms
0
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_mysqlms
0
[root@zabbix_server ~]#
4. 添加监控项
5. 添加触发器
6. 触发
[root@slave ~]# systemctl stop mysqld
[root@slave ~]# systemctl start mysqld
7. 查看数据
8. 查看邮箱
二. 自定义监控MySQL延迟状态
1. 在slave编写脚本以及zabbix客户端配置文件
[root@slave scripts]# vim mysqlms.sh
[root@slave scripts]# mysql -uroot -e 'show slave status\G' | grep 'Seconds_Behind_Master'
Seconds_Behind_Master: 0
[root@slave scripts]# mysql -uroot -e 'show slave status\G' | grep 'Seconds_Behind_Master' | awk '{print $2}'
0
[root@slave scripts]# vim mysql_delay.sh
[root@slave scripts]# vim mysql_delay.sh
[root@slave scripts]# cat mysql_delay.sh
#!/bin/bash
delay=$(mysql -uroot -prun123456 -e 'show slave status\G' 2> /dev/null| grep 'Seconds_Behind_Master' | awk '{print $2}')
echo $delay
[root@slave scripts]#
[root@slave scripts]# chmod +x mysql_delay.sh
[root@slave scripts]# ./mysql_delay.sh
0
[root@slave scripts]#
zabbix客户端配置文件
[root@slave scripts]# cd /usr/local/etc/
[root@slave etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d
[root@slave etc]# vim zabbix_agentd.conf
[root@slave etc]# tail -4 zabbix_agentd.conf
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1
UserParameter=check_logs[*],/usr/bin/python3 /scripts/log.py $1 $2 $3
UserParameter=check_mysqlms,/bin/bash /scripts/mysqlms.sh
UserParameter=check_mysql_delay,/bin/bash /scripts/mysql_delay.s
[root@slave etc]# pkill zabbix
[root@slave etc]# zabbix_agentd
[root@slave etc]#
2. 验证
[root@slave scripts]# systemctl stop firewalld
[root@slave scripts]#
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_mysql_delay
0
[root@zabbix_server ~]#
3. 添加监控项
4. 添加触发器
- 企业中的是大于多少报警
5. 查看
6. 查看邮箱
三. 设置zabbix用户以及用户组
1. 添加用户
2. 添加用户权限
3. 添加用户组
4. 添加用户组权限
5. 再次配置用户权限
6. 查看