Zabbix通过企业钉钉号告警

添加钉钉机器人

登录钉钉PC端,依次点击右上角“姓名“-”机器人人管理“

添加机器人

填写对应信息

复制保存对应的webhook信息

 

#一###########################################################################

配置对应脚本(golang-zabbix-robot-64)

下载钉钉所需要的脚本golang-zabbix-robot-64,链接: https://pan.baidu.com/s/167xWGG49SXWXJGPRvWdeDQ 提取码: 936r

cd /usr/local/src

mv golang-zabbix-robot-64 /usr/local/zabbix/share/zabbix/alertscripts/

cd /usr/local/zabbix/share/zabbix/alertscripts/

chmod 777 golang-zabbix-robot-64

chown zabbix:zabbix golang-zabbix-robot-64

测试发送

./golang-zabbix-robot-64 -webhook=https://oapi.dingtalk.com/robot/send?access_token=xxxxxx

 

配置用户告警媒介

-webhook=https://oapi.dingtalk.com/robot/send?access_token=xxxxxx

-msg={ALERT.MESSAGE}

-url=xxxx

因为使用的是机器人,这里的收件人随意填写

创建对应动作(url填写zabbix_server访问地址,是为了在发生故障时能点击url直接访问zabbix-erver)

告警信息:

故障{TRIGGER.STATUS},服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

<?xml version="1.0" encoding="UTF-8" ?>

<root>

<from>{HOST.NAME}</from>

<time>{EVENT.DATE} {EVENT.TIME}</time>

<level>{TRIGGER.SEVERITY}</level>

<name>{TRIGGER.NAME}</name>

<key>{TRIGGER.KEY}</key>

<value>{ITEM.VALUE}</value>

<now>{ITEM.LASTVALUE}</now>

<id>{EVENT.ID}</id>

<ip>{HOST.IP}</ip>

<url>这里的url会替换报警媒介的url</url>

<age>{EVENT.AGE}</age>

<status>{EVENT.STATUS}</status>

<acknowledgement> {EVENT.ACK.STATUS} </acknowledgement>

<acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory>

</root>

 

恢复信息

恢复{TRIGGER.STATUS}, 服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

<?xml version="1.0" encoding="UTF-8" ?>

<root>

<from>{HOST.NAME}</from>

<time>{EVENT.DATE} {EVENT.TIME}</time>

<level>{TRIGGER.SEVERITY}</level>

<name>{TRIGGER.NAME}</name>

<key>{TRIGGER.KEY}</key>

<value>{ITEM.VALUE}</value>

<now>{ITEM.LASTVALUE}</now>

<id>{EVENT.ID}</id>

<ip>{HOST.IP}</ip>

<color>FF4A934A</color>

<url>这里的url会替换报警媒介的url</url>

<age>{EVENT.AGE}</age>

<recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime>

<status>OK</status>

</root>

测试验证

 

#二###########################################################################

配置对应脚本(dingdingrobot.py)

cd /usr/local/src

mv dingdingrobot.py /usr/local/zabbix/share/zabbix/alertscripts/

cd /usr/local/zabbix/share/zabbix/alertscripts/

chmod 777 dingdingrobot.py

chown zabbix:zabbix dingdingrobot.py

#Python2.6

curl https://bootstrap.pypa.io/2.6/get-pip.py -o get-pip.py

#Python2.6版本以上

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"

python get-pip.py

pip install requests

vim dingdingrobot.py

#!/usr/bin/python

#-*-coding:utf8-*-

 

import requests

import json

import sys

import os

import urllib3

urllib3.disable_warnings()

url = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx" # 这里的url就是webhook的Api接口

headers = {'Content-Type': 'application/json;charset=utf-8'} #头部信息,Zabbix官方文档写法,可以查看zabbix官方文档

def message(text): #定义信息函数

text_info= { #编写规则可以查看Zabbix官方文档的Zabbix Api

"msgtype": "text",

"at": {

"atMobiles": [

"152xxxxx453" #填入号码会@相应号码的人

],

"isAtAll": False #True会@所有人

},

"text": {

"content": text

}

}

print requests.post(url,json.dumps(text_info),headers=headers).content #将返回的数据编码成 JSON 字符串

if __name__ == '__main__': #调用message函数

text = sys.argv[1]

message(text)

 

测试发送

./dingdingrobot.py "Hello World!"

 

配置告警媒介

{ALERT.MESSAGE}

因为使用的是机器人,这里的收件人随意填写

创建对应动作

故障操作

服务器:{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}

测试验证

 

#三##########################################################################

配置对应脚本

cd /usr/local/src

mv dingdingrobot.sh /usr/local/zabbix/share/zabbix/alertscripts/

cd /usr/local/zabbix/share/zabbix/alertscripts/

chmod 777 dingdingrobot.sh

chown zabbix:zabbix dingdingrobot.sh

vim dingdingrobot.sh

#!/bin/bash

to=$1

subject=$2

text=$3

curl 'https://oapi.dingtalk.com/robot/send?access_token=567e11df9f093ee8e849e5ba773d793119b94ce0863416ffdd55a9a97a91b3ad' -H 'Content-Type: application/json' \

-d '{"msgtype": "text",

"text": {

"content": "'"$text"'"

},

"at":{

"atMobiles":[

"'"$1"'"

],

"isAtAll":false

}

}'

 

测试发送

./dingdingrobot.sh 11 22 "Hello World!"

 

配置告警媒介

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

因为使用的是机器人,这里的收件人随意填写

创建对应动作

故障操作

故障{TRIGGER.STATUS},服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

告警主机:{HOST.NAME}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY}

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

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

事件 ID:{EVENT.ID}

 

恢复操作

恢复{TRIGGER.STATUS}, 服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

告警主机:{HOST.NAME}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY}

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

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

事件 ID:{EVENT.ID}

测试验证

 

#四##########################################################################

配置对应脚本

cd /usr/local/src

mv ddrobot.py /usr/local/zabbix/share/zabbix/alertscripts/

cd /usr/local/zabbix/share/zabbix/alertscripts/

chmod 777 ddrobot.py

chown zabbix:zabbix ddrobot.py

#Python2.6

curl https://bootstrap.pypa.io/2.6/get-pip.py -o get-pip.py

#Python2.6版本以上

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"

python get-pip.py

pip install requests

vim ddrobot.py

#!/usr/bin/python

# -*- coding: utf-8 -*-

import requests

import json

import sys

import os

import urllib3

urllib3.disable_warnings()

 

headers = {'Content-Type': 'application/json;charset=utf-8'}

api_url = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx"

 

def msg(text, subject):

json_text = {

"actionCard": {

"title": subject,

"text": text,

"hideAvatar": "0",

"btnOrientation": "0",

"btns": [

{

"title": subject[:12],

"actionURL": ""

}

]

},

"msgtype": "actionCard"

}

 

print(requests.post(api_url,json.dumps(json_text),headers=headers).content)

 

if __name__ == '__main__':

text = sys.argv[1]

text = text.replace("\n", "\r")

subject = sys.argv[2]

msg(text, subject)

 

测试发送

./ddrobot.py Hello World!

 

配置告警媒介

{ALERT.MESSAGE}

{ALERT.SUBJECT}

因为使用的是机器人,这里的收件人随意填写

创建对应动作

故障操作

故障{TRIGGER.STATUS},服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

告警主机:{HOST.NAME}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY}

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

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

事件 ID:{EVENT.ID}

 

恢复操作

恢复{TRIGGER.STATUS}, 服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

告警主机:{HOST.NAME}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY}

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

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

事件 ID:{EVENT.ID}

测试验证

 

#五############################################################################

配置对应脚本

cd /usr/local/src

mv ddrobot.sh /usr/local/zabbix/share/zabbix/alertscripts/

cd /usr/local/zabbix/share/zabbix/alertscripts/

chmod 777 ddrobot.sh

chown zabbix:zabbix ddrobot.sh

vim ddrobot.sh

#!/bin/bash

header="Content-Type: application/json;charset=utf-8"

url="https://oapi.dingtalk.com/robot/send?access_token=xxxxxx" #你的钉钉webhook地址

txt='{

"msgtype":"text",

"text":{

"content":"'$1'"

},

"at":{

"atMobiles":["'$2'"],

"isAtAll":false

}

}'

curl -X POST "${url}" -H "${header}" -d "${txt}"

 

测试发送

./ddrobot.sh 666 999

 

配置告警媒介

{ALERT.MESSAGE}

 

创建对应动作

故障操作

故障{TRIGGER.STATUS},服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

告警主机:{HOST.NAME}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY}

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

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

事件 ID:{EVENT.ID}

 

恢复操作

恢复{TRIGGER.STATUS}, 服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

告警主机:{HOST.NAME}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY}

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

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

事件 ID:{EVENT.ID}

测试验证

转载于:https://my.oschina.net/HeAlvin/blog/3080294

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值