使用ZABBIX监控钉钉告警,我的zabbix server端安装在linux主机上,使用shell脚本更加方便

钉钉操作:
在钉钉上发起一个群聊
ZABBIX4.0配置钉钉报警,使用shell脚本实现_linux
然后任意选择一个群聊,这里我选择值班群聊类型
ZABBIX4.0配置钉钉报警,使用shell脚本实现_linux_02
创建成功之后,设置相应信息,比如图标、名称,点击群设置—智能群助手—添加一个机器人
ZABBIX4.0配置钉钉报警,使用shell脚本实现_zabbix_03
这里需要注意一下,需要选择成自定义机器人
ZABBIX4.0配置钉钉报警,使用shell脚本实现_zabbix_04
机器人信息中,Webhook信息和安全设置非常重要,错一个下面脚本信息发送将失败
ZABBIX4.0配置钉钉报警,使用shell脚本实现_zabbix_05
注:安全设置中有很多种类型,详情请查看选项旁边的官方文档,我这里就选择了自定义关键词,只要我的报警信息包含此关键字就可以发送成功

服务器操作:
找到zabbix server的配置文件: zabbix_server.conf
这个配置文件中有一个参数需要设置下:ZABBIX4.0配置钉钉报警,使用shell脚本实现_bash_06
我的环境中所有的脚本都在这个/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": falsetrue时,将@钉钉群组中的所有人员

赋予权限

[root@zabbix alertscripts]# chmod +x dingding.sh

测试

[root@zabbix alertscripts]# bash dingding.sh hello 123  告警
{"errcode":0,"errmsg":"ok"}

注:此处最后一个参数必须包含钉钉群聊机器人设置的关键字

zabbix web界面操作:
新增报警媒介
ZABBIX4.0配置钉钉报警,使用shell脚本实现_运维_07
三个参数:{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}

添加动作
ZABBIX4.0配置钉钉报警,使用shell脚本实现_配置文件_08
注:下面的用户和用户组配置必须有包含这里的组

添加用户
ZABBIX4.0配置钉钉报警,使用shell脚本实现_zabbix_09
注:此用户的用户组决定了用户对主机组的权限问题,需要读写权限

最后,产生故障,查看状态
ZABBIX4.0配置钉钉报警,使用shell脚本实现_运维_10
查看钉钉群组消息
ZABBIX4.0配置钉钉报警,使用shell脚本实现_bash_11