Zabbix实现钉钉告警

1. 实现钉钉告警


之前我们配置过邮件告警,但在实际工作环境下,使用邮件告警还是有些许不方便,相对于邮件来说应该还是钉钉、微信等用的更多更方便。


1.1 创建群组、添加告警机器人

  • 钉钉的聊天界面,点击发起群聊

Zabbix实现钉钉告警

Zabbix实现钉钉告警

钉钉要3个人才能建群,所以需要添加两个人即可。

  • 点击群设置群机器人添加机器人

Zabbix实现钉钉告警

这里选择自定义,点击添加,自定义一个名字。

Zabbix实现钉钉告警

Zabbix实现钉钉告警

生成了一个 webhook复制,后面会用到。


1.2 告警脚本配置

在zabbix server端,我们需要配置一个告警脚本来实现告警。

  • 编写脚本:
cd /usr/lib/zabbix/alertscripts/

vim zabbix_dingding.py       #写入下面内容

#!/usr/bin/python
# -*- coding: utf-8 -*-

import requests      
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "刚刚复制的webhook"          #填入刚刚复制的webhook

def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
        "at": {
            "atMobiles": [
                "1xxxxxxxxxxxxx"       #填入号码会@相应号码的人
            ],
            "isAtAll": False        # True会@所有人
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

1.3 web界面配置

配置完脚本之后,我们还需要像配置邮件告警一样,在web界面配置报警媒介类型、动作等。

  • 配置报警媒介类型

Zabbix实现钉钉告警

  • 配置动作

动作

Zabbix实现钉钉告警

操作

标题:服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
内容:
{
告警主机:{HOST.NAME}
告警信息:{TRIGGER.NAME}
告警项目:{ITEM.NAME} 
告警时间:{EVENT.DATE}_{EVENT.TIME}
当前状态:故障  值={ITEM.VALUE}
故障已持续{EVENT.AGE},请尽快处理
事件ID:{EVENT.ID}
}

恢复操作

标题:服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
内容:
{
告警信息:{TRIGGER.NAME}
告警项目:{ITEM.NAME}
告警时间:{EVENT.DATE}_{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE}_{EVENT.RECOVERY.TIME}
当前状态:{TRIGGER.STATUS}  值={ITEM.VALUE}
故障共持续{EVENT.AGE}
事件ID:{EVENT.ID}
}

确认操作

标题:服务器:{HOST.NAME}: 报警确认!
内容:
{
确认信息:"{ACK.MESSAGE}"
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
确认人:{USER.FULLNAME} 
时间:{ACK.DATE} {ACK.TIME} 
当前的问题是: {TRIGGER.NAME}
时间ID:{EVENT.ID}
}
  • 配置用户报警媒介

Zabbix实现钉钉告警


1.4 测试

配置完后,进行测试。

  • 设置监控项

配置一个主机链接Template Module ICMP Ping模板。

  • 宕掉ICMP:
iptables -I INPUT -p icmp -j DROP

收到钉钉告警

Zabbix实现钉钉告警

  • 打开ICMP:
iptables -D INPUT -p icmp -j DROP

收到钉钉告警

Zabbix实现钉钉告警

至此,Zabbix配置钉钉告警成功,整个配置过程十分简单。