分享一下在zabbix使用shell脚本实现新版钉钉的告警配置
钉钉操作:
在钉钉上发起一个群聊
然后任意选择一个群聊,这里我选择值班群聊类型
创建成功之后,设置相应信息,比如图标、名称,点击群设置—智能群助手—添加一个机器人
这里需要注意一下,需要选择成自定义机器人
机器人信息中,Webhook信息和安全设置非常重要,错一个下面脚本信息发送将失败
注:安全设置中有很多种类型,详情请查看选项旁边的官方文档,我这里就选择了自定义关键词,只要我的报警信息包含此关键字就可以发送成功
服务器操作:
找到zabbix server的配置文件: zabbix_server.conf
这个配置文件中有一个参数需要设置下:
我的环境中所有的脚本都在这个/data/findsec/zabbix/share/zabbix/alertscripts目录下
正式开始配置:
[root@zabbix etc]# cd /data/findsec/zabbix/share/zabbix/alertscripts [root@zabbix alertscripts]# vim dingding.sh
#!/bin/bash to=$1 subject=$2 text=$3 curl 'https://oapi.dingtaxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ # 这里写机器人Webhppk连接 -H 'Content-Type: application/json' \ -d ' { "msgtype": "text", "text": { "content": "'"@138xxxxxxxx$text"'" #这里写确里人绑定钉钉的手机号+$text,粘贴后删除此注释 }, "at": { "atMobiles": [ "138xxxxxxxx", #群里人绑定钉钉的手机号,粘贴后删除此注释 "" ], "isAtAll": false } }'
配置脚本中
content": "'"@138xxxxxxxx$text"'"后面的$text必须这么写,要不然将不会引用zabbix中的动作报警信息格式
设置"isAtAll": false为true时,将@钉钉群组中的所有人员
赋予权限
[root@zabbix alertscripts]# chmod +x dingding.sh
测试
[root@zabbix alertscripts]# bash dingding.sh hello 123 告警 {"errcode":0,"errmsg":"ok"}
注:此处最后一个参数必须包含钉钉群聊机器人设置的关键字
zabbix web界面操作:
新增报警媒介
三个参数:{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
添加动作
注:下面的用户和用户组配置必须有包含这里的组
添加用户
注:此用户的用户组决定了用户对主机组的权限问题,需要读写权限
最后,产生故障,查看状态
查看钉钉群组消息