感谢大家的关注,认可是我最大的动力,谢谢

分享一下在zabbix使用shell脚本实现新版钉钉的告警配置

钉钉操作:

在钉钉上发起一个群聊

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_linux


然后任意选择一个群聊,这里我选择值班群聊类型

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_zabbix_02


创建成功之后,设置相应信息,比如图标、名称,点击群设置—智能群助手—添加一个机器人

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_zabbix_03


这里需要注意一下,需要选择成自定义机器人

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_配置文件_04


机器人信息中,Webhook信息和安全设置非常重要,错一个下面脚本信息发送将失败

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_linux_05


注:安全设置中有很多种类型,详情请查看选项旁边的官方文档,我这里就选择了自定义关键词,只要我的报警信息包含此关键字就可以发送成功服务器操作:

找到zabbix server的配置文件: zabbix_server.conf 这个配置文件中有一个参数需要设置下:

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_linux_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界面操作:

新增报警媒介

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_配置文件_07


三个参数:{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}添加动作

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_zabbix_08


注:下面的用户和用户组配置必须有包含这里的组添加用户

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_zabbix_09


注:此用户的用户组决定了用户对主机组的权限问题,需要读写权限最后,产生故障,查看状态

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_zabbix_10


查看钉钉群组消息

zabbix设置钉钉告警 zabbix钉钉报警shell脚本_运维_11