天下風雲出我輩
一入江湖歲月催

Zabbix配置钉钉告警

环境:

Centos7.6;python2.7.5;zabbix 4.2

一、创建钉钉群机器人

创建一个群,把需要收到报警信息的人员都拉到这个群内.然后点击群右上角的”群机器人”->”添加机器人”->”自定义”,记录该机器人的webhook值!

 

二、Zabbix server设置

#查看zabbix默认脚本执行路径

[[email protected] ~]# cat /etc/zabbix/zabbix_server.conf |grep AlertScriptsPath
AlertScriptsPath=/usr/lib/zabbix/alertscripts

#添加dingding.py 脚本
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxx"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
 },
"at": {
"atMobiles": [
 user
],
"isAtAll": False
 }
}
headers = {'Content-Type': 'application/json;charset=utf-8'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/dingding.log"):
 f=open("/var/log/zabbix/dingding.log","a+")
else:
 f=open("/var/log/zabbix/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
 f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
 f.close()
else:
 f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text))

创建脚本中的路径和文件并赋权

[[email protected]]# touch /var/log/zabbix/dingding.log
chown zabbix.zabbix dingding.py
chmod 755 dingding.py
chown zabbix.zabbix /var/log/zabbix/dingding.log

测试信息发送

./dingding.py test 188110202193 "这个条测试信息,忽略"

注意:该脚本要求至少python2.6.6版本,且具有requests模块.

否则会报错:
Traceback (most recent call last):
File “./dingding.py”, line 4, in <module>
import requests,json,sys,os,datetime
ImportError: No module named requests

解决办法:

[[email protected]]# yum install python-pip
pip -v
pip install requests

 

三、Zabbix监控界面设置

1、创建报警媒介.  三个参数分别是:ALERT.SENDTO      ALERT.SUBJECT      ALERT.MESSAGE

2、用户添加报警媒介
收件人是钉钉上的手机号码.这里使用Admin管理员用户,在Admin用户的”报警媒介”里添加收件人信息;特别注意:这里只需要添加钉钉群里的任何一个成员的手机号码即可,即添加一个收件人,这样在机器人群里成员都能看到告警信息.
如果添加多个收件人,则机器人群里就会发送多个告警信息,一个收件人发一条信息.

 

3、添加动作
动作里的报警信息和恢复信息都发送给Admin用户.

操作
默认接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}
默认信息:
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

恢复操作(确认操作也是一样):
默认接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}
默认信息:
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

 

 

赞(1) 打赏
未经允许不得转载:Anonym0x1 » Zabbix配置钉钉告警

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏