zabbix监控mysql主从同步实现钉钉告警
主从同步搭建 https://www.cnblogs.com/cndr/p/17756341.html
一、自定义监控项
关闭firewalld,selinux
mysql-slave主机上编写自定义监控项
[root@mysql-slave ~]# cat /etc/zabbix/zabbix_agentd.d/mysql.conf
UserParameter=mysql-tongbu,mysql -e "show slave status\G" | grep "Running" |awk "{print $2}" | grep -c "Yes"
数据库创建zabbix授权用户,主从同步,在master创建用户。
mysql> CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected (0.04 sec)
mysql> GRANT ALL on *.* to zabbix;
Query OK, 0 rows affected (0.36 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mycatproxy | % |
| tongbu | % |
| zabbix | % |
设置去除明文输入密码登录数据库提醒,从库操作
[root@mysql-slave ~]# cat /var/lib/zabbix/.my.cnf [client] user=zabbix password=zabbix host=192.168.88.21 脚本执行结果如下 [root@zabbixserver ~]# zabbix_get -s 192.168.88.21 -k mysql-tongbu 2
二、zabbix页面配置
1.创建模板
2.创建监控项
3.应用模板到主机
查看最新数据:有数据即为监控成功
三、配置钉钉机器人告警
创建钉钉机器人
1.群设置里添加机器人
2.编写脚本并测试
# 安装钉钉机器人脚本需要用到的模块
[root@zabbixserver ~]# yum install -y python3-requests
# 编写钉钉机器人脚本
[root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py
#!/usr/bin/env python3
import json
import requests
import sys
def send_msg(url, remiders, msg):
headers = {'Content-Type': 'application/json; charset=utf-8'}
data = {
"msgtype": "text",
"at": {
"atMobiles": remiders,
"isAtAll": False,
},
"text": {
"content": msg,
}
}
r = requests.post(url, data=json.dumps(data), headers=headers)
return r.text
if __name__ == '__main__':
msg = sys.argv[1]
remiders = []
url = '钉钉机器人Webhook地址' # 注意此处需输入机器人的webhook地址,在上面钉钉机器人设置里
print(send_msg(url, remiders, msg))
脚本授权
[root@zabbixserver ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py
[root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py '数据库主从同步失败: 测试消息' # 注意消息中要包含关键字数据库主从同步失败
{"errcode":0,"errmsg":"ok"}
查看钉钉信息
3.添加报警媒介
这里要含有机器人设置的关键字
4.用户添加报警媒介
5.创建触发器
6.创建动作
创建完动作之后
- 查看结果