自定义监控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. 查看