1. 程式人生 > >zabbix3.4搭建微信報警

zabbix3.4搭建微信報警

  身為小白的我在歷經被百度查到的資料坑了無數次之後,終於找到了一個正確的文件,下面是我自己的對於安裝過程的理解與闡述。

一、申請微信企業號,獲取以下資料。

企業ID:(在我們企業最下方可以看到)

應用的AgentId與Secret:(在點選新建的應用後可以看到該資訊)

二、配置zabbix-server端

1.編寫微信報警指令碼

微信指令碼的位置在zabbix-server的配置檔案中有,當然也可以手動修改配置檔案中的路徑,指令碼名稱weixin.py,以下為指令碼內容:

#!/usr/bin/env python #-*- coding: utf-8 -*- #author: yanggd #date: 2018-04-20 #comment: zabbix接入微信報警指令碼

import requests import sys import os import json import logging

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',                 datefmt = '%a, %d %b %Y %H:%M:%S',                 filename = os.path.join('/usr/local/zabbix/share/zabbix/alertscripts

','weixin.log'),                 filemode = 'a')

corpid='wwbbaxxxxxx' appsecret='m2HUZXUxxxxxxxxxx' agentid=1000004 #獲取accesstoken token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret req=requests.get(token_url) accesstoken=req.json()['access_token']

#傳送訊息 msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

touser=sys.argv[1] subject=sys.argv[2] #toparty='3|4|5|6' message=sys.argv[3]

params={         "touser": touser, #       "toparty": toparty,         "msgtype": "text",         "agentid": agentid,         "text": {                 "content": message         },         "safe":0 }

req=requests.post(msgsend_url, data=json.dumps(params))

logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)                                                                              

其中紅色字型的部分需要看官們注意,千萬別進坑了。

然後可以執行指令碼進行測試指令碼+使用者名稱+引數2+引數3

2.zabbix配置

(1)在管理->報警媒介型別->建立媒體型別 

名稱自己定義,型別選擇指令碼指令碼名稱與上面建立的微信指令碼名稱相同,指令碼引數我使用了三個依次為

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

完成後點選新增即可。

(2).在配置->動作->建立動作 

需要注意的是填寫操作內容時新增按鈕是否整個動作的新增還是單個操作的新增。

(3).給使用者新增報警媒介 管理->使用者->報警媒介

這裡需要注意收件人是企業微訊號中通訊錄的使用者賬號。

筆者使用的文件如下