Zabbix使用企業微信報警配置小結

前言

從Zabbix 3.0開始就已經有不少小夥伴開始使用微信公衆號或者企業微信配置Zabbix報警,固然這裏還可使用阿里釘釘,Mattermost等各類第三方集成方案。傳統的郵件報警有效但笨重,短信報警及時但成本高,如今手機愈來愈強大,互聯網套餐資費逐步下降,普通人使用手機的頻率已經超過了PC端,並且移動辦公也已經慢慢融入咱們的生活。這裏簡單記錄基於新版Zabbix 4.0 LTS配置企業微信報警配置步驟,但願對你們有幫助。前端

用企業微信配置Zabbix報警

更新歷史

2018年10月17日 - 初稿python

閱讀原文 - https://wsgzao.github.io/post...git

擴展閱讀github

zabbix Alert WeChat zabbix 微信報警 - https://github.com/X-Mars/Zab...json


Zabbix簡介

你們對Zabbix應該已經很熟悉了,不用你多介紹了吧

Zabbix 是由 Alexei Vladishev 建立,目前由 Zabbix SIA 在持續開發和支持。vim

Zabbix 是一個企業級的分佈式開源監控方案。bash

Zabbix 是一款可以監控各類網絡參數以及服務器健康性和完整性的軟件。Zabbix 使用靈活的通知機制,容許用戶爲幾乎任何事件配置基於郵件的告警。這樣能夠快速反饋服務器的問題。基於已存儲的數據,Zabbix 提供了出色的報告和數據可視化功能。這些功能使得 Zabbix 成爲容量規劃的理想方案。服務器

Zabbix 支持主動輪詢和被動捕獲。Zabbix 全部的報告、統計信息和配置參數均可以經過基於 Web 的前端頁面進行訪問。基於 Web 的前端頁面能夠確保您從任何方面評估您的網絡狀態和服務器的健康性。適當的配置後,Zabbix 能夠在 IT 基礎架構監控方面扮演重要的角色。對於只有少許服務器的小型組織和擁有大量服務器的大型公司也一樣如此。微信

Zabbix 是免費的。Zabbix 是根據 GPL 通用公共許可證第 2 版編寫和發行的。這意味着它的源代碼都是免費發行的,可供公衆任意使用。網絡

世界各地許多不一樣規模的組織將 Zabbix 做爲主要的監控平臺。

Zabbix Documentation 3.4 中文版

Zabbix Documentation 4.0 英文版

Zabbix安裝

Zabbix 使用指北

微信報警配置

企業微信註冊網址(若是有直接登錄便可)
https://work.weixin.qq.com

在企業微信中須要獲取知道的信息

  1. CorpID(獲取方法:企業微信中個人企業 -> 企業信息)
  2. User(獲取方法:企業微信中通訊錄點擊要接收消息者的名字)
  3. Partyid(獲取方法:企業微信中通訊錄左側部門的選擇按鈕顯示部門ID)[羣發時須要]
  4. Agentid(獲取方法:在企業微信中企業用用中建立自建應用中,因此微信監控須要在微信企業中自建一個應用)
  5. Secret(獲取方法:同 Agentid)




配置 Zabbix 發送微信消息的腳本並測試

# 修改 zabbix-server 配置文件,查看 zabbix 默認腳本路徑配置是否打開
egrep -v '^$|^#' /etc/zabbix/zabbix_server.conf  

AlertScriptsPath=/usr/lib/zabbix/alertscripts  

# 安裝必要的軟件包
yum install -y epel-release 
yum install -y gcc telnet wget git vim python python-pip
# update pip
pip install --upgrade pip
# install requests
pip install requests
pip install --upgrade requests

# 上傳腳本至 server 配置文件中 AlertScriptsPath 所對應的路徑下:
cd /usr/lib/zabbix/alertscripts/
git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
cp Zabbix-Alert-WeChat/wechat.py .
chown zabbix:zabbix wechat.py config.json
chmod +x wechat.py

# 上傳好該腳本後對腳本進行測試
python wechat.py wangao test helloworld
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}

# 企業號中的用戶賬號,在zabbix用戶Media中配置,若是配置不正常,將按部門發送
python wechat.py wangao1 test wangao
{u'invaliduser': u'wangao1', u'errcode': 0, u'errmsg': u'ok'}
  
# 參數說明,這裏使用企業號中的部門ID做羣發使用
Corpid = "xxx" # CorpID是企業號的標識
Secret = "xxx" # Secret是管理組憑證密鑰
Agentid = "1000002" # 應用ID
Partyid = "2" # 部門ID

# 查看企業微信測試告警通知

Zabbix界面配置

Zabbix 4.0和老版本在界面顯示上有略微差別

1.建立報警媒介

Administration - Media types - Create media type

Name: wechat
Type: Script
Script name: wechat.py
Script parameters:

  • {ALERT.SENDTO}
  • {ALERT.SUBJECT}
  • {ALERT.MESSAGE}

2.建立wechat專用帳戶

Administration - Users - Create user

Alias: wechat
Groups: Zabbix administrators # 根據需求定義

3.爲專用帳戶添加Media

Users - Media - Add

Type: wechat
Send to: 2 # 由於我配置的是羣發因此按照部門ID填寫區分不一樣項目監控,也能夠按照用戶名獨立發送

4.設置報警動做

Configuration - Actions - Create actions

建立動做

[Action]
Name: wechat
Conditions: # 根據需求定義
A Trigger severity is greater than or equals Not classified

事件觸發時的通知操做

[Operations]
Default operation step duration: 1m

Default subject:
Problem: {EVENT.NAME}

Default message:
Time: {EVENT.DATE} {EVENT.TIME}
Host: {HOST.NAME}
Level: {TRIGGER.SEVERITY}
ItemValue: {ITEM.VALUE}

Operations:
Send to Uers: wechat
Send only to: wechat
Conditions: Event acknowledged equals Not Ack

事件恢復時的通知操做

[Recovery operations]
Default subject:
Resolved: {EVENT.NAME}

Default message:
Time: {EVENT.DATE} {EVENT.TIME}
Host: {HOST.NAME}
Level: {TRIGGER.SEVERITY}
ItemValue: {ITEM.VALUE}

Operations:
Send to Uers: wechat
Send only to: wechat

更多有關Zabbix Supported macros的定義請參考官方解釋

Zabbix Supported macros

相關文章
相關標籤/搜索