2: Zabbix5.0使用钉钉机器人报警
zabbix(主服务端)配置 钉钉脚本
centos: [root@k8s-master01 alertscripts]# yum install -y python2-requestsdebian: root@debian1:~# apt-get install -y python-urllib3 root@debian1:~# wget http://ftp.cn.debian.org/debian/pool/main/r/requests/python-requests_2.4.3-6_all.deb root@debian1:~# dpkg -i python-requests_2.4.3-6_all.deb root@debian1:~# apt-get install -y python-requests
配置开启钉钉机器人
1: 创建一个群组
2: 添加一个机器人
3: 填写安全验证方式
4: 获取机器人调用连接
5: 整理脚本 调用钉钉连接 发送消息
钉钉发送信息脚本
[root@k8s-master01 alertscripts]# mkdir /usr/local/zabbix/alertscripts/[root@k8s-master01 alertscripts]# chmod -R 777 /usr/local/zabbix/alertscripts/[root@k8s-master01 alertscripts]# cat /usr/local/zabbix/alertscripts/dingding_alert.py #!/usr/bin/env python2 #coding:utf-8 #zabbix钉钉报警 import time import hmac import hashlib import base64 import urllib import requests,json,sys,os,datetime #### 钉钉安全设置 选择 加密 需要提供加秘串 timestamp = long(round(time.time() * 1000)) secret = 'SE开头的加秘串' secret_enc = bytes(secret).encode('utf-8') string_to_sign = '{}\n{}'.format(timestamp, secret) string_to_sign_enc = bytes(string_to_sign).encode('utf-8') hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() sign = urllib.quote_plus(base64.b64encode(hmac_code)) #加密串访问地址 #webhook="https://oapi.dingtalk.com/robot/send?access_token=TOKEN密钥串×tamp=$timestamp&sign=$sign" # 白名单 访问当时 需要把自己的IP地址添加到钉钉 安全设置 里面 webhook="https://oapi.dingtalk.com/robot/send?access_token=TOKEN密钥串" user=sys.argv[1] tag=sys.argv[2] 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()[root@k8s-master01 alertscripts]# mkdir /usr/local/zabbix/log/ -p[root@k8s-master01 alertscripts]# chmod -R 777 /usr/local/zabbix/log/ [root@k8s-master01 alertscripts]# chmod +x dingding_alert.py[root@k8s-master01 alertscripts]# ./dingding_alert.py 钉钉号 服务器警告 nginx服务器警告 #测试发送 #第一个参数: 钉钉手机号 #第二个参数: 头部信息 #第三个参数: 具体发送信息
配置zabbix 报警媒介
新增报警媒介
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
配置报警信息模板
报警模板
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
告警地址:{TRIGGER.URL}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
恢复模板
告警恢复 {EVENT.DURATION}: {EVENT.NAME}
告警恢复 {EVENT.DURATION}: {EVENT.NAME}
告警主机:{HOST.NAME}
告警信息:{TRIGGER.NAME}
告警项目:{ITEM.NAME}
告警地址:{TRIGGER.URL}
告警时间:{EVENT.DATE}{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}
当前状态:{TRIGGER.STATUS} 值={ITEM.VALUE}
故障共持续{EVENT.AGE}
事件ID:{EVENT.ID}
设置用户
设置用户配置
设置报警媒介
设置动作
我这里直接设置的Admin用户
问题操作
恢复操作
测试发送信息
更多相关文章
- 如何检测用户有关退出页面的信息?
- Google地图信息窗口左箭头,右箭头传递TypeError:无法读取未定义的
- jquery 鼠标悬停显示信息提示框
- 谷歌地图信息窗口按钮没有显示?
- 在使用javascript将信息输入到输入字段时填充文本区域
- 注册的时候,点击注册按钮,用jquery怎么直接在前端打印后台返回的信
- Android+Jquery Mobile学习系列(6)-个人信息设置
- DataTables警告:table id = DataTables_Table_0 - Ajax错误。有
- jquery ajax 提交信息后等待返回的提示信息