使用ZABBIX监控钉钉告警,我的zabbix server端安装在linux主机上,使用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}
添加动作
注:下面的用户和用户组配置必须有包含这里的组
添加用户
注:此用户的用户组决定了用户对主机组的权限问题,需要读写权限
最后,产生故障,查看状态
查看钉钉群组消息