使用钉钉自定义应用的方式实现zabbix报警
2017-09-15 16:37
381 查看
先给大家展示一下完成后的效果图
下面我们就按照下面的步骤来实现我们想要的效果
首先去钉钉后台管理添加自定义应用,关于如何创建自定义应用可以咨询钉钉客服或者查看钉钉相关文档,创建好应用后我们需要获取三个信息:
AgentID:创建好应用后再点击应用进去就可以查看
CorpId:管理员才可以查看
CorpSecret:需要最高管员才可以查看
然后在附件中下载我们对应的程序到我们的zabbbix server的AlertScriptsPath目录,可以通过以下命令查看目录所在位置
测试程序是否能正常运行
创建报警媒介
注意:脚本名称为可执行程序的名称
-agentid:输入应用的ID,在钉钉后台查看到的
-corpid:同上
-corpsecret:同上
-msg:消息这里固定值为:{ALERT.MESSAGE}
-url:这里定义报警的超链接,一般定义为我们zabbix服务器访问url
-to:这里指定要发送给谁,多个用管道符分开,用户ID通过钉钉后台查看
-style:指定消息格式为xml,默认为json,推荐使用xml,所以json不在演示
给用户添加报警媒介
注意:收件人名称随意
在报警动作中使用媒介,这里只展示报警信息和恢复信息
以下为报警信息
注意:默认接收随便写
以下恢复信息
注意:默认接收接收人随便写
以下为报警信息
最后如果配置成功,那么相应的人员就会收到报警信息
附件:http://down.51cto.com/data/2366990
下面我们就按照下面的步骤来实现我们想要的效果
首先去钉钉后台管理添加自定义应用,关于如何创建自定义应用可以咨询钉钉客服或者查看钉钉相关文档,创建好应用后我们需要获取三个信息:
AgentID:创建好应用后再点击应用进去就可以查看
CorpId:管理员才可以查看
CorpSecret:需要最高管员才可以查看
然后在附件中下载我们对应的程序到我们的zabbbix server的AlertScriptsPath目录,可以通过以下命令查看目录所在位置
grep "AlertScriptsPath" zabbix_server.conf更改文件的权限为运行zabbix的用户,并给执行权限
测试程序是否能正常运行
./golang-zabbix-alter-to-dingding-64 -agentid=126269679 -corpid=ding8afbg7b642f00983 -corpsecret=_tlUVZLC0Pxi_Jj1_GiPK_2Yx8kheM89IcYtq8Ot4rkjgrkeFXKPunGK7ox3j6OK -to=18095245568296 -style=xml -msg="<?xml version=\"1.0\" encoding=\"UTF-8\" ?> <root> <from>千思网</from> <time>2017.02.28 15:15:03</time> <level>较高</level> <name>这是一个来自[ 千思网](https://www.qiansw.com)用于 zabbix 报警的 robot 程序示例。</name> <key>system.cpu.util[,iowait]</key> <value>27.29 %</value> <now>31.98 %</now> <id>163956</id> <ip>127.0.0.1</ip> <color>FFFFFF00</color> <url>https://www.qiansw.com/golang-zabbix-dingding-robot.html</url> <age>25m</age> <status>PROBLEM</status> <acknowledgement> Yes </acknowledgement> <acknowledgementhistory>这里是故障确认消息!</acknowledgementhistory> </root>"最后配置zabbix
创建报警媒介
注意:脚本名称为可执行程序的名称
-agentid:输入应用的ID,在钉钉后台查看到的
-corpid:同上
-corpsecret:同上
-msg:消息这里固定值为:{ALERT.MESSAGE}
-url:这里定义报警的超链接,一般定义为我们zabbix服务器访问url
-to:这里指定要发送给谁,多个用管道符分开,用户ID通过钉钉后台查看
-style:指定消息格式为xml,默认为json,推荐使用xml,所以json不在演示
给用户添加报警媒介
注意:收件人名称随意
在报警动作中使用媒介,这里只展示报警信息和恢复信息
以下为报警信息
注意:默认接收随便写
以下恢复信息
注意:默认接收接收人随便写
以下为报警信息
<?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>http://zabbix.gogen.cn</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>http://zabbix.gogen.cn</url> <age>{EVENT.AGE}</age> <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime> <status>OK</status> </root>恢复信息说明:<status>OK</status>默认为OK,这是3.4的zabbix server才这样做,如果你的zabbix server是3.4之前的版本请改为:<status>{EVENT.RECOVERY.STATUS}</status>
最后如果配置成功,那么相应的人员就会收到报警信息
附件:http://down.51cto.com/data/2366990
相关文章推荐
- zabbix监控之同时向多人邮件报警,zabbix监控之自定义监控项目, 使用Zatree来一览Zabbix图表
- Android深入浅出系列之实例应用—弹出消息Toast对象的使用自定义方式(二)
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- zabbix应用之discovery批量添加主机并实现自定义主机名
- iOS应用中使用Auto Layout实现自定义cell及拖动回弹
- [转载] 使用IValueConverter接口实现自定义绑定数据的显示方式
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- Web应用中使用SSL的实现方式
- zabbix使用sendEmail实现邮件报警
- 通过模仿AsyncTask的封装方式,实现一个后台预读数据的线程,(使用AsyncTask有导致应用FC的风险)
- zabbix使用sendEmail实现邮件报警
- 手把手教你使用Silverlight实现3D场景二(创建自定义模版控件为物件应用3D动画)
- zabbix使用sendEmail实现邮件报警
- zabbix自定义脚本实现短信报警提醒 推荐
- SpringMVC使用自定义注解的方式实现session检查
- zabbix使用sendEmail实现邮件报警
- zabbix企业应用之设置自定义的邮件报警
- TreeSet集合存放自定义类型的对象,可以使用比较器,实现Comparable接口自己设置排序方式
- Zabbix 使用Linux本机或外部邮箱实现邮件报警设置
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果