博文目录
一、Zabbix配置通过钉钉报警
1、安装配置钉钉
2、配置钉钉报警媒介
3、配置钉钉报警动作
4、钉钉查看报警信息
关于Zabbix监控系统的搭建这里就不多说了,直接进入正题,配置通过企业微信实现告警。
有关Zabbix工作原理及概述请参考博文:Centos 7搭建Zabbix 4.0监控系统
关于Zabbix自定义监控项及监控客户端请参考博文:Zabbix 3.4配置监控项及监控Linux、Windows客户端
关于Zabbix监控通过邮件告警请参考博文:配置Zabbix监控实现邮件报警(3.4和4.0版本)
关于Zabbix监控通过企业微信告警请参考博文:配置Zabbix3.4及4.0版本通过企业微信报警(全网最详细)
本博客将会接着配置Zabbix3.4及4.0版本通过企业微信报警(全网最详细)环境继续进行,如有不明白请参考以上博客。
一、Zabbix配置通过钉钉报警
1、安装配置钉钉
安装钉钉软件,自行注册账号https://www.dingtalk.com/
1)登录钉钉,创建群聊,添加至少两名联系人
2)通过智能群助手添加机器人
3)选择自定义机器人
4) 编辑机器人名字,添加到刚刚创建的群组,安全设置选IP地址,需要在zabbix服务获取出口IP地址
[root@centos01 alertscripts]# curl ip.sb
183.199.188.205
5)保存获取的wehook
https://oapi.dingtalk.com/robot/send?access_token=9f9249cd4699fe68dd3d3655d3bd1f15cd81fcb71788eccc46d8c51f66d758b2
6)zabbix服务器修改主配置文件
[root@centos01 ~]# vim /etc/zabbix/zabbix_server.conf
480 AlertScriptsPath=/usr/lib/zabbix/alertscripts
7)进入/usr/lib/zabbix/alertscripts/下创建脚本,写入内容
[root@centos01 ~]# vim /usr/lib/zabbix/alertscripts/dingding.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# https://www.aityp.com
## mobified by benson , remove config file
import requests
import json
import sys
import os
import time
#import configparser
headers = {'Content-Type': 'application/json;charset=utf-8'}
time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
log_file = "/tmp/zabbix.log"
api_url = "https://oapi.dingtalk.com/robot/send?access_token=9f9249cd4699fe68dd3d3655d3bd1f15cd81fcb71788eccc46d8c51f66d758b2"
def log(info):
if os.path.isfile(log_file) == False:
f = open(log_file, 'a+')
f = open(log_file,'a+')
f.write(info)
f.close()
def msg(text,user):
json_text= {
"msgtype": "markdown",
"markdown": {
"title":"zabbix monitor",
"text": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": True
}
}
r=requests.post(api_url,data=json.dumps(json_text),headers=headers).json()
code = r["errcode"]
#print (code)
if code == 0:
log(time + ":消息发送成功 返回码:" + str(code) + "\n")
else:
log(time + ":消息发送失败 返回码:" + str(code) + "\n")
exit(3)
if __name__ == '__main__':
text = sys.argv[3]
user = sys.argv[1]
msg(text,user)
8)脚本添加执行权限,修改属组属主
[root@centos01 ~]# chmod +x /usr/lib/zabbix/alertscripts/dingding.py
[root@centos01 ~]# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/dingding.py
9)创建脚本日志,添加执行权限
[root@centos01 alertscripts]# touch /tmp/zabbix.log
[root@centos01 alertscripts]# chmod +x /tmp/zabbix.log
[root@centos01 alertscripts]# chown zabbix:zabbix /tmp/zabbix.log
10)测试脚本是否正常
[root@centos01 ~]# cd /usr/lib/zabbix/alertscripts/
[root@centos01 alertscripts]# python dingding.py 11 22 33
11)钉钉查看是否收到测试消息
2、配置钉钉报警媒介
1) 创建新的报警媒介
名称:随便定义
类型:脚本
脚本名称:/usr/lib/zabbix/alertscripts/目录下是什么名字这就写什么名字
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2)将钉钉报警媒介关联到用户
3、配置钉钉报警动作
1)添加动作
2)配置动作操作,每条之间必须有一行空行,否则报警信息不自动换行
默认接收人:故障{TRIGGER.STATUS}==>服务器{HOSTNAME1} 发生 {TRIGGER.NAME}故障!
默认信息:
异常主机:{HOST.NAME}告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警项目:{TRIGGER.KEY1}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
来自zabbix监控平台
3)配置动作恢复操作,每条之间必须有一行空行,否则报警信息不自动换行
恢复主题:恢复{TRIGGER.STATUS}==>服务器{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
恢复主机:{HOST.NAME}恢复 IP:{HOST.IP}
恢复时间:{EVENT.RECOVERY.TIME}
等级:{TRIGGER.SEVERITY}
告警项目:{TRIGGER.KEY1}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
来自zabbix监控平台
4)配置确认操作,每条之间必须有一行空行,否则报警信息不自动换行
默认接收人:服务器:{HOST.NAME}: 报警确认!
默认信息:
确认人:{USER.FULLNAME}时间:{ACK.DATE} {ACK.TIME}
确认信息如下:{ACK.MESSAGE}
问题服务器:{HOSTNAME1}
问题服务器IP:{HOST.CONN}
问题详情: {TRIGGER.NAME}
问题ID:{EVENT.ID}
5)新创建的动作一定是启动状态
4、钉钉查看报警信息
1)使用ping命令ping被监控的100.20主机
C:\Users\Administrator>ping -n 1000 -l 60000 192.168.100.20
2)zabbix服务器的web界面查看网卡监控图形
3)查看仪表板,显示三次问题已送达钉钉
4)钉钉查看报警消息
5)手机打开钉钉app查看报警信息
6)停止对100.20的ping测试,稍等一会会稍等恢复消息
7)手机打开钉钉app查看恢复消息
8)查看仪表板,确认问题已解决
9)钉钉查看确认消息
10)手机打开钉钉app查看消息
———————— 本文至此结束,感谢阅读 ————————