1. 程式人生 > >Zabbix使用企業微信進行告警

Zabbix使用企業微信進行告警

zabbix 企業微信 告警

一、註冊企業郵箱

1.1、企業微信告警優勢:讓我們實時接收到信息,加快問題的處理,比傳統郵件更便捷;

如果沒有企業微信,那麽我們首先到企業微信官網: https://work.weixin.qq.com進行註冊。

技術分享圖片技術分享圖片

二、企業微信配置

2.1、在通訊錄中創建部門

創建部門,類似於組,把相關的人員放到這個部門裏,創建部門後,會用到部門ID,報警消息會根據部門ID發到部門的相關人員。

技術分享圖片

技術分享圖片

技術分享圖片

2.2、增加部門人員

添加成員--填寫資料。

技術分享圖片

2.3、添加應用

消息發送的接口,這裏需要記住應用的AgentId以及Secret,用於發送token的獲取,按照設定,只有運維部的人員可以看到此應用,即可以通過此應用獲取到報警信息。

技術分享圖片

得到這樣的界面( 再次提醒記住AgentidSecret):

技術分享圖片

2.4、獲取企業ID(需要有成員加入後才能顯示CorpID):

技術分享圖片

三、測試微信消息發送接口

微信接口的調用需要一個憑證:access_token,通過CorpID Secret才能獲取到access_token,但是獲取到的token有效期為7200秒。

可以通過下面的接口調試工具以及接口說明文檔來進行測試(返回200表示成功)

接口調試工具:http://work.weixin.qq.com/api/devtools/devtool.php

接口說明文檔:https://work.weixin.qq.com/api/doc#10167

技術分享圖片

測試成功顯示如下:

技術分享圖片

四、報警腳本

4.1、編寫python腳本

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/

[root@zabbix-server alertscripts]# vim wechat.py

#!/usr/bin/python

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

# zabbix notification confirmation script

# python2.7 or above

import requests

import json

import os

import sys

Toparty = "2" #部門id

AgentID = 1000002 #應用

id

#修改為企業CropIDSecret

CropID = 'wwac7665d19735ca22'

Secret = 'Z6W81GSJe7JwRu6Khbz2V9kUPtBQf31ArnhMiNuFMjU'

#獲取Token

Gtoken ="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ CropID + "&corpsecret=" + Secret

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

json_data = json.loads(requests.get(Gtoken).content.decode())

token = json_data["access_token"]

#消息發送接口

Purl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + token

#消息發送函數

def msg(title,message):

weixin_msg = {

"toparty" : Toparty,

"msgtype" : "textcard",

"agentid" : AgentID,

"textcard" : {

"title" : title,

"description" : message,

"url" : "www.wzlinux.com",

"btntxt":"更多"

}

}

print requests.post(Purl,json.dumps(weixin_msg),headers=headers)

if __name__ == '__main__':

title = sys.argv[1] #獲取第一個參數

message = sys.argv[2] #獲取第二個參數

msg(title,message)

[root@zabbix-server alertscripts]# chmod+x wechat.py

[root@zabbix-server alertscripts]# chown zabbix:zabbix wechat.py

[root@zabbix-server alertscripts]# ll

total 4

-rwxr-xr-x 1 zabbix zabbix 2080 May 21 13:28 wechat.py

[root@zabbix-server alertscripts]# ./wechat.py 1 2

Traceback (most recent call last):

File "./wechat.py", line 5, in <module>

import requests,sys,json

ImportError: No module named requests

[root@zabbix-server alertscripts]# yum -y install python-setuptools

[root@zabbix-server alertscripts]# easy_install pip

[root@zabbix-server alertscripts]# pip install requests

[root@zabbix-server alertscripts]# ./wechat.py 1 2

<Response [200]>

五、Zabbix配置

5.1、添加Media types

首先需要在zabbix server的配置文件開啟上面腳本的目錄,然後才可以使用,我們添加兩個參數,一個是報警的標題,一個是報警信息的內容,用於傳給腳本的兩個參數。

Step1:管理--報警媒介類型--創建媒體類型

技術分享圖片

技術分享圖片

技術分享圖片

Step2:添加動作(配置--動作--創建動作):

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片


註:不管能否解決你遇到的問題,歡迎相互交流,共同提高!

Zabbix使用企業微信進行告警