微信告警首先注冊一個企業微信,才能實作微信告警。注冊位址:https://work.weixin.qq.com/ 。
-
申請企業微信号
1). 申請好後需記錄幾項重要資訊,後面zabbix server端監控腳本需使用到。
登入網頁 - 我的企業 - 企業ID:
2). 建立應用
登入網頁 - 應用管理 - 應用 - 建立應用
zabbix4添加配置微信報警通知 記錄并擷取到AgentId、Secret
AgentId:xxxxx
Secret:xxxxx
3). 添加通訊錄
登入網頁 - 通訊錄 - 添加成員
添加後才可收取到資訊。
-
zabbix server端配置
1). 安裝依賴
這裡使用python作為監控腳本,zabbix sever伺服器上需安裝python依賴。
yum install -y python-requests
2). 配置python腳本
zabbix sever伺服器上預設監控腳本目錄上建立wechat.py。
cd /usr/lib/zabbix/alertscripts
vim wechat.py
#!/usr/bin/env python #-*- coding: utf-8 -*- #author: Yu import requests import sys import os import json import logging # config for log 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/lib/zabbix/alertscripts','weixin.log'), filemode = 'a') # Company ID corpid='xxxxxxx' # secret appsecret='xxxxxxxx' # AgentId agentid=xxxxxxx #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'] # Message send 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)
記得給檔案賦權
chown zabbix.zabbix weixin
chmod 755 weixin
3). 測試
運作weixin.py腳本
/usr/lib/zabbix/alertscripts/weixin.py name "title test" "hello"
name:收件人賬号(登入企業微信網站 - 通訊錄 - 打開某個收件人 - 賬号)
title test:标題
hello:具體需要發送的内容
如果沒有錯誤的話,收件人将可在手機APP企業微信上收到此消息,如下圖:
zabbix4添加配置微信報警通知 -
Zabbix Server Web端開啟微信告警
1). 添加告警媒介
管理 ----> 報警媒介類型 -----> 建立媒介類型
添加三個腳本參數:zabbix4添加配置微信報警通知 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
腳本名稱必須跟zabbix server上配置/usr/lib/zabbix/alertscripts的腳本名稱一樣。
2). 建立使用者,添加報警媒介
管理 ----> 使用者
zabbix4添加配置微信報警通知 注:收件人填寫企業微信中通訊錄成員帳号,這裡打算使用微信關聯公衆号收取報警通知資訊。
3). 建立觸發器動作
配置 ----> 動作 ----> 動作
zabbix4添加配置微信報警通知 建立郵件發送動作,配置觸發條件:觸發器示警度 大于等于 警告
配置 ----> 動作 ----> 操作
預設标題:
消息内容:故障{TRIGGER.STATUS},伺服器名:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
告警主機:{HOSTNAME} 告警主機IP位址:{HOST.IP} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警資訊: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 目前狀态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
恢複{TRIGGER.STATUS}, 伺服器名:{HOSTNAME1}: {TRIGGER.NAME}已恢複!
告警主機:{HOSTNAME} 告警主機IP位址:{HOST.IP} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警資訊: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 目前狀态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}