zabbix - 對接釘釘機器人接口

wKiom1jmFn3jlJZeAABOw8mQrH0248.png

一:下載發送程序 

zabbix 釘釘報警機器人 - 向釘釘羣聊中發送報警消息 (go語言寫的腳本,可用 -h查看選項)

測試:

./golang-zabbix-robot-64  -webhook='https://oapi.dingtalk.com/roboxxxxxxxx'

wKiom1jmF2_jX5bXAABYD4eJ8us451.png

此時你的機器人會發送一個來自於千思網的消息,此時說明golong可用。

接下來就要區分你的zabbix的版本了,以下分別是3.0 3.2 2.4的配置方式


二:zabbix3.0 配置 

1、部署程序

將go腳本拷貝至服務端警告目錄AlertScriptspath下,添加執行權限。


2、創建報警媒介

wKiom1jmGO3RQ2mhAALxSEBh5lQ733.png


3、添加用戶或組,加入報警媒介

wKioL1jmGaaSBTDrAANA5iNr6S8030.png


4、創建動作,創建觸發發送條件

wKiom1jmGl7xQUe2AALSfN2zRpQ724.png


三:zabbix3.2 配置

3.2和3.0配置大致一樣,只是有部分會發生消息送不到的情況,嘗試將上述xml格式的換行去掉後重新測試。

wKioL1jmGxKSCtF8AAInAjAbM7k088.png

附錄:

報警信息

<?xml version="1.0" encoding="UTF-8" ?> <root>  <from>{HOSTNAME1}</from>  <time>{EVENT.DATE} {EVENT.TIME}</time>  <level>{TRIGGER.SEVERITY}</level>  <name>{TRIGGER.NAME}</name>  <key>{TRIGGER.KEY1}</key>  <value>{ITEM.VALUE}</value>  <now>{ITEM.LASTVALUE}</now>  <id>{EVENT.ID}</id>  <ip>{HOST.IP}</ip>  <url>這裏是點擊報警消息可以訪問的鏈接地址</url>  <age>{EVENT.AGE}</age>  <status>{EVENT.STATUS}</status> <acknowledgement> {EVENT.ACK.STATUS} </acknowledgement> <acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory> </root>

恢復信息

<?xml version="1.0" encoding="UTF-8" ?> <root>  <from>{HOSTNAME1}</from>  <time>{EVENT.DATE} {EVENT.TIME}</time>  <level>{TRIGGER.SEVERITY}</level>  <name>{TRIGGER.NAME}</name>  <key>{TRIGGER.KEY1}</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>{EVENT.RECOVERY.STATUS}</status> </root>


四:zabbix 2.4 配置

相對於3版本,2.4 雖經典但是卻有點跟不上時代了,公司爲了保持穩定,也不敢貿然升級,所以只能對 2.4進行相應的配置了。

1、部署程序

同樣在警告目錄AlertScriptspath下,添加腳本 zabbix-dingding.sh

#!/bin/bash

webhook="https://oapi.dingtalk.com/robot/send?access_token=xxx"

/zabbix/share/zabbix/alertscripts/golang-zabbix-robot-64 -webhook=$webhook -msg="$3"


2、創建報警媒介

wKiom1jmHCbTwiZqAABQ6iT4udw201.png


3、創建用戶或組,加入報警媒介,同上

4、創建動作,創建觸發發送條件,採用3.2格式,不換行

wKiom1jmHN7BinFQAACBHrAA4-Y984.png

-----------------------------------------------------------------------------------------

附加:通用機器人

有時我們會用自定義的監控腳本,去監控服務狀態,或者某個程序等等,怎麼對接到釘釘呢?

#!/usr/bin/env python
#coding=utf-8
import urllib
import urllib2
import json
import re
f = open('xxxxxxxxxx','r')   #取文件的內容發送
your_data = f.read()
f.close()
#print your_data
headers = {'Content-Type': 'application/json'}
test_data = {
     'msgtype':"text",
     "text":{
       'content':"%s" % your_data
}, 
     "at":{
     "atMobiles":[
     # "you iphone"
     ],
     "isAtAll":"false"
}
}
#requrl = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxx"
req = urllib2.Request(url = requrl,headers = headers,data = json.dumps(test_data))
response = urllib2.urlopen(req)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章