1. 程式人生 > >Zabbix 3.4.3之企業微信報警

Zabbix 3.4.3之企業微信報警

zabbix

一、企業微信註冊

微信的報警方式可以讓我們隨時隨地接收到信息,加快問題的處理,比傳統郵件更加方便,首先我們先打開企業微信的地址 https://work.weixin.qq.com

1、填寫申請信息

技術分享

2、下一步

根據註冊流程步驟進行後面的操作,直到註冊成功。

二、企業微信配置

1、創建部門


首先我們要創建部門,類似於組,把相關的人員放到這個部門裏面,創建部門之後,我們會用到部門id,報警消息根據部門id發到部門的相關人員。

技術分享

根據自己的需求填寫,所屬部門也可以是現有部門的子部門,具有層級所屬關系。

技術分享

查看部門id,我們以後會用到,我這裏部門id是2。

技術分享

2、給部門增加人員

點擊添加成員,然後讓用戶關註就可以了。

技術分享

3、添加應用

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

技術分享

記住這裏的Agentid和Secret。

技術分享

4、獲取企業ID

技術分享

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

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

我們可以通過下面的接口調試工具以及接口說明文檔進行測試。

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

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

調試成功頁面如下。

技術分享

四、報警腳本

1、編寫python腳本

腳本使用的python版本為2.7以上,所以請安裝CentOS 7。

vim /usr/local/zabbix/alertscripts/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 = 4     #應用id

#修改為企業CropID和Secret
CropID = ‘wx8d46d3xxxxx993‘
Secret = ‘QCjzy2lH2ZB7MUG6uowChyChPsOxxxxxxxxxxxxxxTVR4saIw3Ezznh‘

#獲取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)
chmod +x /usr/local/zabbix/alertscripts/wechat.py

2、測試腳本

技術分享

微信已經可以接收到消息,那腳本已經沒有什麽問題了。

五、Zabbix配置

1、添加Media types

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

技術分享

2、給用戶添加報警媒介

技術分享

3、創建Action

技術分享

服務器:{HOST.NAME}發生: {TRIGGER.NAME}故障!
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
 
 
服務器:{HOST.NAME}: {TRIGGER.NAME}已恢復!
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持續時間:{EVENT.AGE}
事件ID:{EVENT.ID}
}
 
 
服務器:{HOST.NAME}: 報警確認
{
確認人:{USER.FULLNAME} 
時間:{ACK.DATE} {ACK.TIME} 
確認信息如下:
"{ACK.MESSAGE}"
問題服務器IP:{HOSTNAME1}
問題ID:{EVENT.ID}
當前的問題是: {TRIGGER.NAME}
}

六、報警測試

關掉zabbix agent。

技術分享



技術分享

本文出自 “運維點滴記錄” 博客,請務必保留此出處http://wzlinux.blog.51cto.com/8021085/1978967

Zabbix 3.4.3之企業微信報警