微信告警首先註冊一個企業微信,才能實現微信告警。註冊地址:https://work.weixin.qq.com/ 。python
yum install -y python-requests
2). 配置python腳本
zabbix sever服務器上默認監控腳本目錄上建立wechat.py。
cd /usr/lib/zabbix/alertscripts
vim wechat.pyjson
#!/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腳本vim
/usr/lib/zabbix/alertscripts/weixin.py name "title test" "hello"
name:收件人帳號(登陸企業微信網站 - 通信錄 - 打開某個收件人 - 帳號)
title test:標題
hello:具體須要發送的內容
若是沒有錯誤的話,收件人將可在手機APP企業微信上收到此消息,以下圖:
api
{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
腳本名稱必須跟zabbix server上配置/usr/lib/zabbix/alertscripts的腳本名稱同樣。
2). 建立用戶,添加報警媒介
管理 ----> 用戶
注:收件人填寫企業微信中通信錄成員賬號,這裏打算使用微信關聯公衆號收取報警通知信息。
3). 建立觸發器動做
配置 ----> 動做 ----> 動做
建立郵件發送動做,配置觸發條件:觸發器示警度 大於等於 警告
配置 ----> 動做 ----> 操做
默認標題:服務器
故障{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}
配置 ----> 動做 ----> 恢復
默認標題:app
恢復{TRIGGER.STATUS}, 服務器名:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
消息內容:ide
告警主機:{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}
4). 模擬測試微信收取告警通知
將新某臺被監控主機zabbix agent服務關閉,稍等5分鐘查收能收到微信告警。
5). 使用普通微信接受消息設置
直接用微信掃碼關注微工做臺,便可在微信中接收企業通知和使用企業應用。
方法:登陸企業微信管理頁面 - 個人企業 - 微工做臺 - 邀請關注的二維碼
關注後便可收取。post