zabbix之钉钉

今天来写一个zabbix的钉钉报警
首先你要创建一个钉钉群,在钉钉群里添加一个机器人,点击机器人,点击机器人设置,找到wehook即可(先不要复制)

做完以上步骤就可以开始以下教程了(下面行为均为主控端执行)
1 进入/usr/lib/zabbix/alertscripts下(这里是默认定义脚本的目录)
编写一个python脚本,后缀为.py为结尾的脚本文件
代码为

#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=df"
user=sys.argv[1]
text=sys.argv[3]
data={
 "msgtype": "text",
 "text": {
 "content": text
 },
 "at": {
 "atMobiles": [
 user
 ],
 "isAtAll": False
 }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/local/zabbix/log/dingding.log"):
    f=open("/usr/local/zabbix/log/dingding.log","a+")
else:
    f=open("/usr/local/zabbix/log/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))
    f.close()
~                        

这里需要吧你钉钉机器人的wehook的链接给替换到这个文件里
然后给这个文件 所有者权限和所属主
chowm zabbix.zabbix dingding.py
chmod 755 dingding.py

在这里插入图片描述
然后在 /usr/local/zabbix/log/创建一个文件为dingding.log的日志
当然这个目录还没有
需要创建出来mkdir /usr/local/zabbix/log -p
然后进入/usr/local/zabbix/log/下创建一个dingding.log的日志文件
创完之后给这个日志文件一个属主权限
chown zabbix.zabbix dingding.log

注意:该脚本要求至少python2.6.6版本,且具有requests模块.
yum -y install python-pip
pip -v
pip install requests

做完这所有操作后就可以测试了

python dingding.py test 15137802025 “告警信”

当你钉钉收到消息时候,就可以去web界面去配置了

管理–报警媒介类型–创建报警媒介类型–钉钉
在这里插入图片描述

脚本名称一定要与你在编写自定义脚本的时候,是一样的

管理–用户–Admin–报警媒介–添加-
在这里插入图片描述
这个地方楼主创建完经常莫名其妙的消失,所以创建完之后,建议刷新查看下

配置–动作–创建动作–
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里发送方式选择钉钉发送,用户添加admin
三个都是一样的

操作:
 操作信息:
 服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
 告警主机:{HOST.NAME}
 告警地址:{HOST.IP}
 监控项目:{ITEM.NAME}
 监控取值:{ITEM.LASTVALUE}
 告警等级:{TRIGGER.SEVERITY}
 告警信息:{TRIGGER.NAME}
 告警时间:{EVENT.DATE} {EVENT.TIME}
 事件ID:{EVENT.ID}
 当前状态:{TRIGGER.STATUS}
 恢复操作:
 服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
 告警主机:{HOST.NAME}
 告警地址:{HOST.IP}
 监控项目:{ITEM.NAME}
 监控取值:{ITEM.LASTVALUE}
 告警等级:{TRIGGER.SEVERITY}
 告警信息:{TRIGGER.NAME}
 告警时间:{EVENT.DATE} {EVENT.TIME}
 恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
 持续时间:{EVENT.AGE}
 事件ID:{EVENT.ID}
 当前状态:{TRIGGER.STATUS}
 更新操作:
 服务器:{HOST.NAME}: 报警确认
 确认人:{USER.FULLNAME}
 时间:{ACK.DATE} {ACK.TIME}
 确认信息如下:"{ACK.MESSAGE}"
 问题服务器IP:{HOSTNAME1}
 问题ID:{EVENT.ID}
 当前的问题是: {TRIGGER.NAME}

最后测试的话,需要手动吧nginx给关掉,然后会钉钉就会有提示信息
(中途zabbix的受控端要是见红了,就重启受控端的zabbix)

(模板一定要选zabbix nginx!要不然不成功!!!)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值