我是靠谱客的博主 顺利石头,最近开发中收集的这篇文章主要介绍zabbix配置钉钉报警,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

zabbix配置钉钉报警

一、服务版本

linux:7.5-1804

zabbix:4.0.22

mysql:5.7.17

nginx:1.16.1

php:5.4.16

python-pip:2.7.5

二、部署zabbix利用自带模板监控mysql数据库

1、可以参照网上的文档,这里不再赘述

三、配置mysql利用zabbix

1、IP规划

Hostnameip服务
zabbix-server192.168.43.10zabbix-server、zabbix-agent、MySQL、nginx、php、python-pip
zabbix-agent-mysql192.168.43.11MySQL

2、利用zabbix自带模板实现对mysql监控

​ a.在zabbix-agent-mysql的MySQL里授权

[root@zabbix-agent-mysql ~]# mysql -uroot -p
mysql> grant select on *.* to “zabbix”@”%” identified by “123456”;

3、修改UnsafeUserParameter参数

[root@zabbix-agent-mysql ~]# grep UnsafeUserParameters /etc/zabbix/zabbix_agent.conf
### Option: UnsafeUserParameters
UnsafeUserParameters=1

4、编写监控脚本

[root@zabbix-agent-mysql ~]# vim /etc/zabbix/script/chk_mysql.sh
#!/bin/bash
MySQlBin=/usr/bin/mysql
MySQLAdminBin=/usr/bin/mysqladmin
Host=192.168.43.11
User=zabbix
Password=123456
if [[ $# == 1 ]];then
case $1 in
Uptime)
result=`$MySQLAdminBin -u$User -p$Password -h$Host status 2>/dev/null
|cut -f2 -d":"|cut -f1 -d"T"`
echo $result
;;
Com_update)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`$MySQLAdminBin -u$User -p$Password -h$Host status 2>/dev/null
|cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`$MySQLAdminBin -u$User -p$Password -h$Host status 2>/dev/null
|cut -f4 -d":"|cut -f1 -d"S"`
echo $result
;;
Com_insert)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null
|grep -w "Com_begin"|cut -d"|" -f3`
echo $result
;;
*)
echo -e "33[33mUsage: ./getmysqlinfo {Uptime|Com_update|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_sent|Bytes_sent} 33[0m"
;;
esac
fi

5、在/etc/zabbix/etc/zabbix-agent/etc/编辑文件.my.cnf(需新建该文件),添加以下内容

[root@zabbix-agent-mysql script]# cat ../etc/.my.cnf 
[mysql]
host=localhost
user=zabbix
password=123456
socket=/data/mysql/tmp/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=123456
socket=/data/mysql/tmp/mysql.sock

6、编写/etc/zabbix/zabbix_agentd/userparameter_mysql.conf

[root@zabbix-agent-mysql ~]# vim /etc/zabbix/zabbix_agentd/userparameter_mysql.conf
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema="$1"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name="$2"");" | HOME=/etc/zabbix/etc mysql -N'
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/etc/zabbix/script/chk_mysql.sh $1
UserParameter=mysql.ping,mysqladmin -uzabbix -p123456 -P3306 -h127.0.0.1 ping 2>/dev/null| grep -c alive

7、对文件重新授权

[root@zabbix-agent-mysql ~]# chown -R zabbix.zabbix /etc/zabbix
[root@zabbix-agent-mysql ~]# chmod 755 /etc/zabbix/script/chk_mysql.sh

8、重启服务

[root@zabbix-agent-mysql ~]# systemctl restart zabbix-agent

9、在zabbix的web界面添加主机
检查是否已启用

四、配置钉钉报警

1、在钉钉群聊的右上角添加自定义机器人

2、将webhook内容保存下来,备用

3、在server端编写脚本dingding.py

[root@zabbix-server ~]# grep alert /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@zabbix-server ~]# vim /usr/lib/zabbix/alertscripts/dingding.py
#!/usr/bin/env python
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": True,
},
"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 = '刚刚复制wehook'
print(send_msg(url, remiders, msg))

4、linux系统python默认没有requests模块,运行脚本会报错

[root@zabbix-server ~]# yum -y install python-pip #安装pip工具
[root@zabbix-server ~]# pip install requests

5、测试脚本

[root@zabbix-server ~]# /usr/lib/zabbix/alertscripts/dingding.py '测试'
{"errcode":0,"errmsg":"ok"}

6、配置zabbix的web界面

​ 1)、创建报警媒介

2)、配置用户可以使用脚本报警

​ 3)、配置触发动作

​ a.将所有触发器添加

​ b.编辑操作,点击新的,恢复动作同样操作,最后点击更新

5)、测试

​ a.停掉192.168.43.11的mysql

[root@zabbix-agent-mysql ~]# systemctl stop mysqld
[root@zabbix-agent-mysql ~]# netstat -tnupl | grep :3306

故障发送成功

​ b.重启mysql服务

[root@zabbix-agent-mysql ~]# systemctl start mysqld
[root@zabbix-agent-mysql ~]# netstat -tnupl | grep :3306
tcp
0
0 0.0.0.0:3306
0.0.0.0:*
LISTEN
15841/mysqld

​ b.重启mysql服务

[root@zabbix-agent-mysql ~]# systemctl start mysqld
[root@zabbix-agent-mysql ~]# netstat -tnupl | grep :3306
tcp
0
0 0.0.0.0:3306
0.0.0.0:*
LISTEN
15841/mysqld

恢复发送成功

最后

以上就是顺利石头为你收集整理的zabbix配置钉钉报警的全部内容,希望文章能够帮你解决zabbix配置钉钉报警所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部