zabbix - 对接钉钉应用接口
2017-04-06 18:15
302 查看
在钉钉机器人未推出之前,大家还是采用的自定义的应用来实现报警,效果及配置参考如下:
一:下载发送程序
https://www.qiansw.com/golang-zabbix-alter-to-dingding.html go语言
测试:
其实明白了机器人报警方式,这个方式也大致相似,只不过webhook变成了应用id
可用 golang-zabbix-alter-to-dingding.exe -h 查看有什么参数
1、钉钉添加应用配置
二:zabbix3.0 配置
1、部署程序
将go脚本拷贝至服务端警告目录AlertScriptspath下,添加执行权限。
2、创建报警媒介(以下是 json 格式,下面还有 xml 格式)
3、添加用户或组管理-》用户-》报警媒介-》添加,注意填写收件人为我们之前设置的运维部
(可参考对接机器人的配置)
4、创建动作,创建触发发送条件
其中 "color":"FFE61A1A", color后面为消息头部的颜色,您可以自定义。
其中前两位为透明度,后六位为颜色值,您可以通过查询取色器来获取这个颜色值。
-----------------------------------------------------------------------------------------
变更记录 2016-08-01 21:22 增加了对xml源消息的支持,防止json格式的消息中有引号造成消息失败的问题。 2017-01-09 13:08 增加了对消息内 url 字段支持。
2、创建报警媒介(以下是 json 格式,下面还有 xml 格式)
3、添加用户或组管理-》用户-》报警媒介-》添加,注意填写收件人为我们之前设置的运维部
(可参考对接机器人的配置)
4、创建动作,创建触发发送条件
----------------------------------------------------------------------------------------
三:zabbix 2.4 配置
同样如果是zabbix 2.4版的,无法直接在web端输入golong脚本参数,我们可以类似机器人的方式写一个shell 传参,在告警媒介调用这个shell。
#!/bin/bash
agentid=7947xxxxxx
corpid=dingd6757axxxxxxxxx
corpsecret=xxxxxxxxxx
to=manager56xxxxxxx
/zabbix/share/zabbix/alertscripts/golang-zabbix-alter-to-dingding.exe -agentid=$agentid -corpid=$corpid -corpsecret=$corpsecret -to=$to -msg="$5"
您还可以创建多个报警媒介、动作中创建多个步骤,来实现消息分级。
例如:
1-10条消息仅发送给运维,11条开始也要发送给运维主管。
某类的消息发给运维的同时,还要发给DBA。
一:下载发送程序
https://www.qiansw.com/golang-zabbix-alter-to-dingding.html go语言
测试:
其实明白了机器人报警方式,这个方式也大致相似,只不过webhook变成了应用id
golang-zabbix-alter-to-dingding.exe -agentid=794723 -corpid=dingd6757aa75040e32b -corpsecret=z C5Jbed9Sx8o9ZwfN4QgFo420WWlKw8NbSDYvk6Qin7gflFIIYLSeq4ZrdOVpk1o -to=manager5675 -msg="{ \"from\": \"Tomcat03\" , \"time\": \"2016.07.28 14:45:24\", \"level\": \"Warning\", \"name\": \"Response time is too high on Tomcat03\", \"key\": \"icmppingsec \", \"value\": \"31ms\", \"now\": \"31ms\", \"id\": \"1618\", \"ip\": \"10.139.105.107\", \"color\":\"FF4A934A\", \"age\":\"3m\", \"reco veryTime\":\"2016.07.28 14:48:24\", \"status\":\"OK\" }" |
-agentid string AgentID,可以在钉钉后台查看,不可空。 -corpid string CorpID,可以在钉钉后台查看,不可空。 -corpsecret string CorpSecret,可以在钉钉后台查看,不可空。 -msg string Json格式的文本消息内容,不可空。 (default "{\"from\": \"网\",\"time\": \"1970-07-01 08:00:00\",\"level\": \"紧急\",\t\"name\": \"这是一个千思网(qiansw.com)提供的ZABBIX钉钉报警插件。\",\"key\": \"icmpping\",\"value\": \"Down (0)\",\"now\": \"Down (0)\",\t\"id\": \"1511\",\"ip\": \"8.8.8.8\"}") -to string 消息的接收人,可以在钉钉后台查看,可空。 (default "@all") -url string 消息内容点击后跳转到的URL,可空。 (default "https://www.qiansw.com/golang-zabbix-alter-to-dingding.html") |
二:zabbix3.0 配置
1、部署程序
将go脚本拷贝至服务端警告目录AlertScriptspath下,添加执行权限。
2、创建报警媒介(以下是 json 格式,下面还有 xml 格式)
3、添加用户或组管理-》用户-》报警媒介-》添加,注意填写收件人为我们之前设置的运维部
(可参考对接机器人的配置)
4、创建动作,创建触发发送条件
其中 "color":"FFE61A1A", color后面为消息头部的颜色,您可以自定义。
其中前两位为透明度,后六位为颜色值,您可以通过查询取色器来获取这个颜色值。
报警信息 { "from": "{HOSTNAME1}", "time": "{EVENT.DATE} {EVENT.TIME}", "level": "{TRIGGER.SEVERITY}", "name": "{TRIGGER.NAME}", "key": "{TRIGGER.KEY1}", "value": "{ITEM.VALUE}", "now": "{ITEM.LASTVALUE}", "id": "{EVENT.ID}", "ip": "{HOST.IP}", "color":"FFE61A1A", "age":"{EVENT.AGE}", "status":"{EVENT.STATUS}" } | 恢复信息 { "from": "{HOSTNAME1}", "time": "{EVENT.DATE} {EVENT.TIME}", "level": "{TRIGGER.SEVERITY}", "name": "{TRIGGER.NAME}", "key": "{TRIGGER.KEY1}", "value": "{ITEM.VALUE}", "now": "{ITEM.LASTVALUE}", "id": "{EVENT.ID}", "ip": "{HOST.IP}", "color":"FF4A934A", "age":"{EVENT.AGE}", "recoveryTime":"{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}", "status":"{EVENT.RECOVERY.STATUS}" } |
变更记录 2016-08-01 21:22 增加了对xml源消息的支持,防止json格式的消息中有引号造成消息失败的问题。 2017-01-09 13:08 增加了对消息内 url 字段支持。
2、创建报警媒介(以下是 json 格式,下面还有 xml 格式)
3、添加用户或组管理-》用户-》报警媒介-》添加,注意填写收件人为我们之前设置的运维部
(可参考对接机器人的配置)
4、创建动作,创建触发发送条件
报警信息 <?xml version="1.0" encoding="UTF-8" ?> <root> <from>{HOSTNAME1}</from> <time>{EVENT.DATE} {EVENT.TIME}</time> <level>{TRIGGER.SEVERITY}</level> <name>{TRIGGER.NAME}</name> <key>{TRIGGER.KEY1}</key> <value>{ITEM.VALUE}</value> <now>{ITEM.LASTVALUE}</now> <id>{EVENT.ID}</id> <ip>{HOST.IP}</ip> <color>FFE61A1A</color> <url>这里的url会替换报警媒介的url</url> <age>{EVENT.AGE}</age> <status>{EVENT.STATUS}</status> <acknowledgement> {EVENT.ACK.STATUS} </acknowledgement> <acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory> </root> | 恢复信息 <?xml version="1.0" encoding="UTF-8" ?> <root> <from>{HOSTNAME1}</from> <time>{EVENT.DATE} {EVENT.TIME}</time> <level>{TRIGGER.SEVERITY}</level> <name>{TRIGGER.NAME}</name> <key>{TRIGGER.KEY1}</key> <value>{ITEM.VALUE}</value> <now>{ITEM.LASTVALUE}</now> <id>{EVENT.ID}</id> <ip>{HOST.IP}</ip> <color>FF4A934A</color> <url>这里的url会替换报警媒介的url</url> <age>{EVENT.AGE}</age> <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime> <status>{EVENT.RECOVERY.STATUS}</status> </root> |
三:zabbix 2.4 配置
同样如果是zabbix 2.4版的,无法直接在web端输入golong脚本参数,我们可以类似机器人的方式写一个shell 传参,在告警媒介调用这个shell。
#!/bin/bash
agentid=7947xxxxxx
corpid=dingd6757axxxxxxxxx
corpsecret=xxxxxxxxxx
to=manager56xxxxxxx
/zabbix/share/zabbix/alertscripts/golang-zabbix-alter-to-dingding.exe -agentid=$agentid -corpid=$corpid -corpsecret=$corpsecret -to=$to -msg="$5"
您还可以创建多个报警媒介、动作中创建多个步骤,来实现消息分级。
例如:
1-10条消息仅发送给运维,11条开始也要发送给运维主管。
某类的消息发给运维的同时,还要发给DBA。
相关文章推荐
- zabbix - 对接钉钉机器人接口 推荐
- 对接钉钉接口可能遇到的问题 50004 60011
- IDispatch接口原理与应用
- 接口在托管C++中的应用
- bcb做三层数据库程序的应用服务器接口
- COM组件设计与应用2 - GUID 和 接口
- COM 组件设计与应用11 - IDispatch 及双接口的调用
- 混合应用接口和对象模型的意外
- 关于ResultSetMetaData 接口的应用
- HTTP Servlet应用编程接口
- CLR 调试接口的架构与应用---搜集的资料
- 非COM环境下的接口编程--问题,技巧,应用(一)
- IExtenderProvider接口与反射原理结合起来应用
- 漫谈Java程序设计中的接口应用
- 漫谈Java程序设计中的接口应用
- ServletContextListener接口的实现与应用
- 非COM环境下的接口编程--问题,技巧,应用(二)
- CLR 调试接口的架构与应用 [3] 调试事件
- java中接口和抽象类的应用[原创]
- COM组件设计与应用9 - IDispatch 接口 for vc6.0