Zabbix钉钉机器人报警

钉钉机器人创建:

钉钉提供了一个 webhook 地址,获取到Webhook地址后,用户可以使用任何方式向这个地址发起 HTTP POST 请求,即可实现给该群组发送消息。

配置脚本

脚本下载路径:http://down.51cto.com/data/2451909

1、下载编写好的程序文件到zabbix的/usr/lib/zabbix/alertscripts目录(我这里是默认路径,具体检查/etc/zabbix/zabbix_server.conf)

[root@centos78 alertscripts]# cd /usr/lib/zabbix/alertscripts/

[root@centos78 alertscripts]# ll

total 5696

-rw-r--r--. 1 root root 5828913 Sep 13 23:22 webhook-zabbix-robot-64

[root@centos78 ~]#  vim /etc/zabbix/zabbix_server.conf 

3.10.jpg

扫描二维码关注公众号,回复: 4093342 查看本文章

解压更改名称为webhook-zabbix-robot-64并且chmod +x webhook-zabbix-robot-64 && chown zabbix.zabbix webhook-zabbix-robot-64

创建/tmp/dingding.log 并更改属主为zabbix

[root@centos78 ~]# cd /usr/lib/zabbix/alertscripts/

[root@centos78 alertscripts]# chmod +x webhook-zabbix-robot-64 && chown zabbix.zabbix webhook-zabbix-robot-64       让zabbix拥有权限

[root@centos78 ~]# touch /tmp/dingding.log

[root@centos78 tmp]# chmod +x dingding.log && chown zabbix.zabbix dingding.log 

[root@centos78 tmp]# ll

total 908

-rwxr-xr-x. 1 zabbix zabbix      0 Sep 13 23:27 dingding.log

2、报警媒介类型

3-3.jpg

-webhook:为刚才添加机器人的值:

-msg:为zabbix定义的告警  

-url:为zabbix服务器地址:

-log:为记录日志,对应刚才创建的日志文件

3、配置动作

3-4.jpg

3-5.jpg

操作默认信息内容如下:

<?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> <url>http://填写自己服务器地址哦/zabbix</url> <age>{EVENT.AGE}</age> <status>{EVENT.STATUS}</status> <acknowledgement> {EVENT.ACK.STATUS} </acknowledgement> <acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory> </root>
 

3-6.jpg

恢复操作默认信息如下:

<?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>FF4A954A</color> <url>http://填写自己服务器地址哦/zabbix</url> <age>{EVENT.AGE}</age> <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime> <status>OK</status> </root>
 

3-7.jpg

确认操作默认信息如下:

{USER.FULLNAME} acknowledged problem at {ACK.DATE} {ACK.TIME} with the following message:
{ACK.MESSAGE}

Current problem status is {EVENT.STATUS}
 

最后更新下,

4、配合用户报警信息

image.png

image.png

image.png


四、测试

1、先测试脚本是否有问题:

[root@centos78 alertscripts]# ./webhook-zabbix-robot-64 -webhook=https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxx

2018/09/13 23:39:46 初始化完成。

2018/09/13 23:39:46 开始创建消息。

2018/09/13 23:39:46 消息创建完成。

2018/09/13 23:39:46 开始POST至Webhook。

2018/09/13 23:39:47 钉钉机器人接口返回消息:{"errmsg":"ok","errcode":0}

2、正常触发报警信息

3-9.jpg

3-8.jpg

五、失败原因:

1、关闭防火墙

2、关闭SELinux

[root@centos78 ~]# /usr/sbin/sestatus       

SELinux status:                 disabled

3、查看动作是否失败:

正常显示为完成状态

image.png

如果显示失败,可以把作--默认信息的换行符删除掉,或者检查字符是否存在中文字母

<?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><url>http://ip/zabbix</url><age>{EVENT.AGE}</age><status>{EVENT.STATUS}</status><acknowledgement> {EVENT.ACK.STATUS} </acknowledgement><acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory></root>

猜你喜欢

转载自www.cnblogs.com/liulj0713/p/9967253.html