本文共 1792 字,大约阅读时间需要 5 分钟。
一、钉钉配置
1、
关于钉钉的注册我这里不再过多介绍。
2、选择添加机器人
3、选择自定义机器人
4、创建完成之后记住webhook,后面用于发送消息
二、Zabbix配置
1、创建脚本
# vim /usr/local/zabbix/alertscripts/dingding_text.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys import os headers = { 'Content-Type' : 'application/json;charset=utf-8' } api_url = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxx" def msg(text): json_text = { "msgtype" : "text" , "text" : { "content" : text }, "at" : { "atMobiles" : [ "1881***1223" ], "isAtAll" : False } } print requests.post(api_url,json.dumps(json_text),headers = headers).content if __name__ = = '__main__' : text = sys.argv[ 1 ] msg(text) |
1 2 | #赋予执行权限 chmod +x /usr/local/zabbix/alertscripts/dingding_text .py |
2、创建Media types
因为钉钉的text主要是发送卡片消息,所以我这里参数只输出的message,如果想要传递user,比如手机号,可以添加这个参数,然后脚本稍微修改一下即可。
3、给用户添加Media
3、创建Actions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障! { 告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} } 服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复! { 告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持续时间:{EVENT.AGE} 事件ID:{EVENT.ID} } 服务器:{HOST.NAME}: 报警确认 { 确认人:{USER.FULLNAME} 时间:{ACK.DATE} {ACK.TIME} 确认信息如下: "{ACK.MESSAGE}" 问题服务器IP:{HOSTNAME1} 问题ID:{EVENT.ID} 当前的问题是: {TRIGGER.NAME} } |
三、效果展示
本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1978792,如需转载请自行联系原作者