zabbix6.0钉钉告警

该文介绍了如何配置钉钉机器人来接收Zabbix的监控告警。首先在钉钉创建群组和自定义机器人,设置安全策略如自定义关键词。然后获取webHook地址,编写shell脚本,并在Zabbix中配置AlertScriptsPath和脚本参数。最后,在Zabbix中创建动作,定义触发条件和恢复信息,将告警通过钉钉媒介发送给指定用户。
  1. 首先在钉钉创建一个用于告警的群组并添加一个自定义机器人

    1. 进入群设置→ 下拉找到机器人→ 添加机器人→ 添加自定义机器人
      1. 安全设置的作用就是在调用时需要加的限制;有三种,分别是自定义关键词、加签、IP地址段
        1. 其中加签是通过算法,算出一段类似密钥段放到机器接口中进行调用;
        2. ip地址段就是限制机器人接口能从那些地址发出;
        3. 最常用的就是自定义关键词:这个作用是第三方脚本调用机器人接口发通知信息时,内容必须要包含的关键字。

      1. 配置好钉钉机器人后就得到了一个webHook地址,这个就是调用机器人发送的通知接口
  2. 添加shell脚本

    1. 找到zabbix_server.conf找到AlertScriptsPath字段配置路径
    2. [root@ZenTao18 ~]# grep ^AlertScriptsPath /usr/local/zabbix/etc/zabbix_server.conf
      AlertScriptsPath=${datadir}/zabbix/alertscripts
    3. 进入路径后创建脚本
      1.  
        [root@ZenTao18 alertscripts]# pwd
        /usr/local/zabbix/share/zabbix/alertscripts
        [root@ZenTao18 alertscripts]# ls
        dingding.sh
        ​
        #!/bin/bash
        to=$1
        subject=$2
        text=$3
        
        #此处的 xxxxx 就是刚刚复制存留的 api 接口地址。
        curl -i -X POST \
        'https://oapi.dingtalk.com/robot/send?access_token=XXX' \
        -H 'Content-type':'application/json' \
        -d '
        {
          "msgtype": "text",
             "text": {
                "content": "'监控报警:''"$text"'"
                },
          "at":{
            "atMobiles":[
              "'"$1"'"
              ],
          "isAtAll":false
           } 
        }'
        
        ​

    4. 添加为可执行文件
      1. [root@ZenTao18 alertscripts]# chmod +x dingding.sh 
      2. 测试脚本是否执行成功
      3. [root@ZenTao18 alertscripts]# sh dingding.sh 11 22 33
  3. 在web页面配置

    1.  创建脚本及报警媒介
      1. 再添加以下 3 个参数,分别对应脚本需要的 3 个参数:收件人地址、主题、详细内容
        1. {ALERT.SENDTO}
          {ALERT.SUBJECT}
          {ALERT.MESSAGE}

    2. 创建动作
          1. --->步骤时间--->1000
            --->标题(故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!)
            --->默认信息下边的添加
             
                告警主机:{HOSTNAME1}
                告警时间:{EVENT.DATE} {EVENT.TIME}
                告警等级:{TRIGGER.SEVERITY}
                告警信息: {TRIGGER.NAME}
                告警项目:{TRIGGER.KEY1}
                问题详情:{ITEM.NAME}:{ITEM.VALUE}
                当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
                事件 ID:{EVENT.ID}
             
            --->操作添加
            --->步骤--->5 表示触发 5 次动作
            --->步骤持续时间--->每隔 120 秒触发一次
            --->告警发给 admin 用户
            --->用”钉钉”媒介发送。 
            --->点击小”add”添加选项,否则等于没写

          1. 点击添加之后
            --->右边恢复操作,相当于服务正常之后的操作
            --->标题改为--->恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
            --->信息改为--->
             
                告警主机:{HOSTNAME1}
                告警时间:{EVENT.DATE} {EVENT.TIME}
                告警等级:{TRIGGER.SEVERITY}
                告警信息: {TRIGGER.NAME}
                告警项目:{TRIGGER.KEY1}
                问题详情:{ITEM.NAME}:{ITEM.VALUE}
                当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
                事件 ID:{EVENT.ID}
             
            --->点击”新的”添加发送选项
            --->添加群组
            --->添加用户 Admin
            --->仅送到--->钉钉
            --->点击小”添加”添加选项,否则等于没写 
            点击小 add 添加选项后再点击大 ADD 完成动作增加。

    3. 添加报警媒介

### 配置 Zabbix 6.0 实现钉钉报警通知 #### 创建钉钉机器人 为了实现 Zabbix钉钉告警功能,首先需要创建一个钉钉群并添加自定义机器人。通过钉钉管理后台完成机器人的创建,并获取 Webhook URL 和安全设置的相关信息[^1]。 #### 修改 Zabbix Server 配置文件 编辑 `zabbix_server.conf` 文件,在其中指定告警脚本的路径: ```bash AlertScriptsPath=/usr/lib/zabbix/alertscripts ``` 保存修改后的配置文件并重启 Zabbix Server 服务以使更改生效[^2]。 #### 编写 JavaScript 脚本 从 Zabbix 4.4 开始支持使用 JavaScript 来编写告警脚本,因此可以直接在 Zabbix Web 界面上配置而无需额外安装 Python 或其他依赖项。以下是用于发送钉钉告警的一个简单示例脚本: ```javascript function sendDingTalk(message, webhookUrl) { var payload = JSON.stringify({ msgtype: "text", text: { content: message } }); var options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: payload }; try { var response = Http.post(webhookUrl, options); if (response.status !== 200) { throw new Error('Failed to send DingTalk alert'); } } catch (e) { console.error(e.message); } } sendDingTalk(ScriptParameters['message'], ScriptParameters['webhook']); ``` 此脚本会接收两个参数:一个是消息内容 (`message`);另一个是钉钉机器人的 Webhook 地址 (`webhook`)。它将这些数据封装成 POST 请求发送到钉钉服务器[^3]。 #### 设置 Zabbix Web 界面中的媒介类型 进入 Zabbix Web 界面执行如下操作: - **导航至** “Administration” -> “Media types” - 添加新的媒体类型命名为“DingTalk”,选择“Script”作为传递方式。 - 输入上述编写的 JS 脚本名称(不带扩展名),例如 `dingtalk.js`。 - 定义必要的宏变量 `{ALERT.MESSAGE}` 及其映射关系以便于动态替换实际告警信息[^4]。 #### 测试与验证 确认一切配置完成后可以尝试触发一条测试告警来检验整个流程是否正常运作。如果遇到任何错误可以通过检查 `/var/log/zabbix/dingding.log` 日志文件定位问题所在。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值