一、在钉钉中新建zabbix监控报警群聊(至少三人以上),并于该群众添加zabbix报警机器人

1.1 发起钉钉群聊,新建zabbix监控报警群

grafana怎么设置钉钉报警 zabbix钉钉报警_grafana怎么设置钉钉报警

1.2 添加zabbix报警机器人

grafana怎么设置钉钉报警 zabbix钉钉报警_运维_02

选择自定义机器人即可

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_03

填写机器人信息,关键词一定写!!!

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_04

牢记机器人的webhook地址,在脚本中会用到

grafana怎么设置钉钉报警 zabbix钉钉报警_json_05

保存Webhook url链接,安全中定义相关设置,我这里使用关键字,只有信息内容中有关键字的才会被机器人发送

二、zabbix-server服务端操作:

2.1 先查一下监控脚本的存放路径

[root@zabbix-server ~]# grep -i alertscriptspath /etc/zabbix/zabbix_server.conf

517 AlertScriptsPath=/usr/lib/zabbix/alertscripts

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_06

由此可见,zabbix默认的监控脚本存放路径是/usr/lib/zabbix/alertscripts

2.2 使用vim编辑dingding.py钉钉报警脚本

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_07

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

import requests
import json
import sys
import os
 
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
 
def msg(text):
    json_text= {
     "msgtype": "text",
        "at": {
            "atMobiles": [
                "17xxxxxxx46"
            ],
            "isAtAll": False
        },
        "text": {
            "content": text
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
     
if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

2.3 安装python工具包

yum -y install epel-release python-pip

pip install requests

2.4 脚本授权

chmod +x dingding.sh

grafana怎么设置钉钉报警 zabbix钉钉报警_监控程序_08

2.5 脚本测试

python dingding.py 告警      //这里必须含有之前设置的关键字才行

grafana怎么设置钉钉报警 zabbix钉钉报警_运维_09

grafana怎么设置钉钉报警 zabbix钉钉报警_grafana怎么设置钉钉报警_10

由此可见,脚本已经测试成功,接下来就需要登入zabbix界面进行告警设置。

三、zabbix界面设置告警信息

3.1 创建报警媒介类型

配置——报警媒介类型——创建媒体类型

grafana怎么设置钉钉报警 zabbix钉钉报警_监控程序_11

填写相关参数,自定义报警媒介类型,脚本名称,脚本参数:{ALERT.MESSAGE}{ALERT.SENDTO}{ALERT.SUBJECT}

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_12

grafana怎么设置钉钉报警 zabbix钉钉报警_grafana怎么设置钉钉报警_13

3.2 创建告警动作

3.2.1 配置——动作——事件源选择“触发器”——创建动作

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_14

3.2.2 创建动作名称

grafana怎么设置钉钉报警 zabbix钉钉报警_监控程序_15

3.2.3 创建动作操作

grafana怎么设置钉钉报警 zabbix钉钉报警_grafana怎么设置钉钉报警_16

我所用的消息内容模板:

【故障告警】服务器: {HOST.NAME} 发生: {TRIGGER.NAME} 的故障告警,请及时关注并处理!!!
【告警详情】如下:
【告警时间】:{EVENT.DATE} {EVENT.TIME}
【告警主机】:{HOST.NAME}
【告警地址】:{HOST.IP}
【告警信息】:{TRIGGER.NAME}
【监控项目】:{ITEM.NAME}
【监控取值】:{ITEM.LASTVALUE}
【告警等级】:{TRIGGER.SEVERITY}
【当前状态】:{TRIGGER.STATUS}
【事件ID】: {EVENT.ID}

3.2.4 创建恢复操作

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_17

我所用的恢复操作消息内容模板:

【告警恢复】服务器: {HOST.NAME} 发生: {TRIGGER.NAME} 的告警问题已于 {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 解决恢复!!!
【告警信息】: {EVENT.NAME}
【告警主机】: {HOST.NAME}
【告警地址】: {HOST.IP}
【告警等级】: {EVENT.SEVERITY}
【恢复时间】: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
【事件ID】: {EVENT.ID}
感谢您的关注与及时处理!!!

3.2.5 确认告警动作已启用

grafana怎么设置钉钉报警 zabbix钉钉报警_json_18

四、创建用户组并给相应用户添加报警媒介

(如果用户多就创建用户群组,如果不多就给Admin就行)

grafana怎么设置钉钉报警 zabbix钉钉报警_zabbix_19

grafana怎么设置钉钉报警 zabbix钉钉报警_运维_20

grafana怎么设置钉钉报警 zabbix钉钉报警_json_21

五、模拟触发告警进行测试

我创建了一个触发器,设置时当系统登录用户超过两人时触发告警,如下图显示:

grafana怎么设置钉钉报警 zabbix钉钉报警_监控程序_22

grafana怎么设置钉钉报警 zabbix钉钉报警_监控程序_23