天天看點

zabbix4添加配置微信報警通知

微信告警首先注冊一個企業微信,才能實作微信告警。注冊位址: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}           

繼續閱讀