1、docker ps 查看容器运行情况

    图中43d即为zabbix server 的容器。

2、查看容器与主机的卷映射

命令: docker inspect 43d

   本例中的对应关系为 /etc/zabbix/zabbix_server:/etc/zabbix。即:容器中的配置文件夹映射到本地路径为:/etc/zabbix/zabbix_server

3、编辑zabbix告警shell脚本,放入zabbix映射到本地的目录。

本例: vim /etc/zabbix/zabbix_server/notify.sh

notify.sh为告警脚本名称。

#!/bin/bash
to=$1
subject=$2
text=$3
{
  curl 'https://oapi.dingtalk.com/robot/send?access_token=2c6e4f6b9510a8fd4e248c40da24783563f7c1b9712c123dsfaserdasxdfa' \
  -H 'Content-Type: application/json' \
  -d '
  {
    "msgtype": "markdown", 
    "markdown": {
      "title": "'"$subject"'",
      "text": "'"$text"'"
    },
    "at": {
      "atMobiles": [
        "'"$to"'"
      ],
      "isAtAll": false
    }
  }'
}

   钉钉机器人提取通过钉钉申请好,在上面脚本中替换成自己已经申请好的钉钉机器人地址。

给脚本添加可执行权限

chmod +x /etc/zabbix/zabbix_server/notify.sh

4、编译zabbix 配置文件,修改配置文件中AlertScriptsPath字段定义的告警脚本的路径。

AlertScriptsPath=/etc/zabbix    #docker 容器/etc/zabbix地址映射到本地/etc/zabbix/zabbix_server,这里需要选择容器中的对应地址。

5、修改完成后,重启容器

docker restart 43d

6、打开zabbix网页添加告警。

告警-媒介-创建媒介类型,脚本名称为配置目录下的脚本的名称。

添加三个脚本参数:

{ALERT.SENDTO}            对应脚本中to=$1,指发送给钉钉群的人

{ALERT.SUBJECT}         对应脚本中的subject=$2,指的是通知消息的主题

{ALERT.MESSAGE}       对应脚本中的text=$3,指的是通知消息的内容

7、编辑消息模板,自定义markdown格式的消息。

消息模板如下:

问题模板

主题:发生故障: {EVENT.NAME}

消息:#### <font face='微软雅黑' color=#FF0000>【故障告警】  {EVENT.NAME}</font>

---------

- **发生时间**: {EVENT.DATE}   {EVENT.TIME}  

- **故障名称**:{EVENT.NAME}

- **相关主机**: {HOST.NAME}

- **故障级别**: {EVENT.SEVERITY} 

- **故障详情**:{ITEM.NAME}:{ITEM.VALUE}

- **当前状态**:{TRIGGER.STATUS}:{ITEM.VALUE1}

- **Operational data**: {EVENT.OPDATA} 

- **Original problem ID**: {EVENT.ID}

{TRIGGER.URL}

问题恢复模板

主题:故障已恢复 {EVENT.DURATION}: {EVENT.NAME}

消息:#### <b> <font face='微软雅黑' color=#008800><b>【告警恢复】</b>{EVENT.NAME}</font> </b>

---------

- **故障恢复时间**:{EVENT.RECOVERY.DATE}  {EVENT.RECOVERY.TIME}   

- **故障名称**: {EVENT.NAME}

- **持续时间**: {EVENT.DURATION}

- **相关主机**: {HOST.NAME}

- **告警级别**: {EVENT.SEVERITY}

- **恢复详情**:{ITEM.NAME}:{ITEM.VALUE}

- **当前状态**:{TRIGGER.STATUS}:{ITEM.VALUE1}

- **Original problem ID**:{EVENT.ID}

{TRIGGER.URL}  

效果示例:

 

8、绑定告警触发器动作

在触发器的操作选项中,添加指定的用户和送到的媒介。

 

9、在用户中绑定告警媒介

 

10、在告警-媒介中进行测试

  如果绑定的机器人没收到消息,请检查钉钉机器人的关键词是存在?在zabbix配置中是否绑定成功了用户及动作动作?

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐