1.安装python,部署环境。
2.添加钉钉脚本。
3.添加钉钉告警媒介。
4.添加消息模板。
5.钉钉群添加机器人获取webhook&加签。
1.dnf –y install python3–requests
2.在/usr/lib/zabbix/alertscripts下,touch一个dingding.py,内容为下:
#!/usr/bin/python3
# -*-coding: utf-8-*-
#
“””
Welcome computing
“””
import requests
import json
import sys
import time, hmac, base64, hashlib, urllib.parse
headers = {“Content-Type”: “application/json;charset=utf-8”}
# 需要修改,钉钉群助手中获取
timestamp = str(round(time.time() * 1000))
# 需要修改
secret = “钉钉机器人上获取”
secret_enc = secret.encode(“utf-8”)
string_to_sign = “{}\n{}”.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode(“utf-8”)
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
url=“钉钉机器人上获取”
api_url = f“{url}×tamp={timestamp}&sign={sign}”
def msg(text):
json_text = {
“msgtype”: “markdown”,
“at”: {“atMobiles”: [“all”], “isAtAll”: False},
“markdown”: {“title”: “zabbix告警”, “text”: text},
}
print(
requests.post(api_url, json.dumps(json_text), headers=headers).content.decode()
)
msg(“\n” + sys.argv[1])
3.给这个脚本添加执行权限。(若为脚本执行,要在agentd.conf中添加EnableRemoteCommands = 1
AllowKey=system.run[*] 并给zabbix用户提权)
4.在zabbix服务端上添加钉钉告警媒介,类型为脚本,脚本参数添加一个:{ALERT.MESSAGE}
5.触发器上添加即可。
6.钉钉告警信息模板不需要主题,内容为下(red&green 告警&恢复):
#### <font color=”red”>告警</font>
– 告警主机:{HOSTNAME1} <br>
– 告警时间:{EVENT.DATE} {EVENT.TIME} <br>
– 告警等级:{TRIGGER.SEVERITY} <br>
– 告警信息:{TRIGGER.NAME} <br>
– 告警项目:{TRIGGER.KEY1} <br>
– 问题详情:{ITEM.NAME}:{ITEM.VALUE} <br>
– 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} <br>
– 事件ID:{EVENT.ID} <br>
– 【zabbix监控】(http://192.168.107.168) <br>