Zabbix-实现钉钉群报警

需求

Zabbix报警通知发送到钉钉群组

钉钉报警时基于zabbix,访问钉钉应用接口去推送的报警消息,所以我们需要一个在钉钉创建一个报警应用。

目前的版本信息为:Zabbix:4.0.7、Python:2.7.5

配置

一、钉钉配置

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

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

 

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

2、点击群设置 → 智能群助手 → 添加更多 → 添加机器人 → 自定义 :

 

3.点击添加,输入机器人名字即可

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

 

二、zabbix配置

 1、创建脚本

vi /etc/zabbix/zabbix_server.conf

:/alertscripts 找到这一行(alertscripts是zabbix-server自定义脚本的目录,所有自定义的脚本都放在此处)

cd /usr/lib/zabbix/alertscripts/
vi dingding.py

#!/usr/bin/python

# -*- coding: utf-8 -*

import requests

import json

import sys

import os

import datetime

#webhook = "https://xxxxxxxxxx" 钉钉机器人擎天柱的webhook地址

#第一个参数应该是收件人,更换成了机器人地址

#第二个参数应该是主题,更换成了收件人

#第三个参数是消息

#具体参数设置在zabbix报警媒介类型

webhook=sys.argv[1]

user=sys.argv[2]

text=sys.argv[3]

data={

        "msgtype":"text",

        "text":{

                "content":text

        },

        "at":{

                "atMobiles":[

                        user

                        ],

                        "isAtAll":True

            #"isAtAll": True 发送给群里面的所有人(不想让其他人收到报警这里填False即可)

        }

}

headers={'Content-Type':'application/json'}

x=requests.post(url=webhook,data=json.dumps(data),headers=headers)

#if os.path.exists("/usr/lib/zabbix/alertscripts/dingding.log"):

#       f=open("/usr/lib/zabbix/alertscripts/dingding.log","a+")

#else:

#       f=open("/usr/lib/zabbix/alertscripts/dingding.log","w+")

#f.write("\n"+"--"*30)

#if x.json()["errcode"]==0:

#       f.write("\n"+str(datetime.datetime.now())+"  "+str(user)+"  "+"发送成功"+"\n"+str(text))

#       f.close()

#else:

#       f.write("\n"+str(datetime.datetime.now())+"  "+str(user)+"  "+"发送失败"+"\n"+str(text))

#       f.close()

 

:wq保存退出

三、Zabbix web界面设置

1、添加报警脚本到zabbix:

步骤:管理——报警媒介类型——创建报警媒介类型——更新

 

 

Problem: {EVENT.NAME}

Problem started at {EVENT.TIME} on {EVENT.DATE}

Problem name: {EVENT.NAME}

Host: {HOST.NAME}

Severity: {EVENT.SEVERITY}

Operational data: {EVENT.OPDATA}

Original problem ID: {EVENT.ID}

{TRIGGER.URL}

 2、配置用户

收件人填写钉钉群机器人的Webhook地址

 3、创建动作:配置>>动作

 

 

 

操作:

默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME} 故障!

消息内容:

告警主机: {HOSTNAME1}

主机地址: {HOST.IP}

告警等级: {TRIGGER.SEVERITY}

监控项目: {TRIGGER.KEY1}

问题详情: {ITEM.NAME}:{ITEM.VALUE}

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

告警信息: {TRIGGER.NAME}

告警时间: {EVENT.DATE} {EVENT.TIME}

事件ID: {EVENT.ID}

恢复操作:

默认标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME} 已恢复!

消息内容:

告警主机: {HOSTNAME1}

主机地址: {HOST.IP}

告警等级: {TRIGGER.SEVERITY}

监控项目: {TRIGGER.KEY1}

问题详情: {ITEM.NAME}:{ITEM.VALUE}

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

告警信息: {TRIGGER.NAME}

告警时间: {EVENT.DATE} {EVENT.TIME}

事件ID: {EVENT.ID}

 4、进行钉钉报警测试

[root@JDCloud_Server alertscripts]# python dingding.py Test测试 132xxxx

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武梓龙_Wzill

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值