zabbix結合微信報警

zabbix微信報警

一.配置企業微信

1.首先你需要去註冊一個企業微信

https://work.weixin.qq.com/
在這裏插入圖片描述
綁定完成後,下次可以使用綁定的微信掃描登陸

2.創建一個部門並加入成員

在這裏插入圖片描述
應該默認只有一個用戶,打勾設置組爲上面創建的
在這裏插入圖片描述
在這裏插入圖片描述

3.創建一個應用,通過這個應用發送報警消息

在這裏插入圖片描述
在這裏插入圖片描述

二.配置zabbix_server

[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
#最後一行添加如下一句
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
[root@zabbix ~]# systemctl restart zabbix_server
[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/

上傳這個軟件包
鏈接:https://pan.baidu.com/s/1bPxAsJft1YRCDSWnQ-RvEA
提取碼:6zgt

在這裏插入圖片描述

[root@zabbix alertscripts]# tar zxf simplejson-3.8.2.tar.gz 
[root@zabbix alertscripts]# cd simplejson-3.8.2/
[root@zabbix simplejson-3.8.2]# python setup.py build && python setup.py install 
#上面這個命令會報一個錯,什麼致命錯誤不用管他
[root@zabbix simplejson-3.8.2]# cd ..
我下面圖片中劃線的東西,和下面腳本文件中對應寫

在這裏插入圖片描述
touser
在這裏插入圖片描述
toparty
在這裏插入圖片描述
agentid
在這裏插入圖片描述
corpid
在這裏插入圖片描述
corpsecret
在這裏插入圖片描述

只有我上面圖片上寫的項要改,其他不用動

以下代碼來源網絡,我只是做了修改,如有侵權,請聯繫我刪除
[root@zabbix alertscripts]# vim testzabbix.py

#!/usr/bin/python
#_*_coding:utf-8 _*_


import urllib,urllib2
import json
import sys
import simplejson

reload(sys)
sys.setdefaultencoding('utf-8')


def gettoken(corpid,corpsecret):
    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
#    print  gettoken_url
    try:
        token_file = urllib2.urlopen(gettoken_url)
    except urllib2.HTTPError as e:
        print e.code
        print e.read().decode("utf8")
        sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token

def senddata(access_token,user,subject,content):

    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
        "touser":'Zhangsan',    #企業號中的用戶帳號
        "toparty":"2",    #企業號中的部門id。
        "msgtype":"text",
        "agentid":"1000002",    #企業號中的應用id。
        "text":{
            "content":subject + '\n' + content
           },
        "safe":"0"
        }
#    send_data = json.dumps(send_values, ensure_ascii=False)
    send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
    print(send_data)
    send_request = urllib2.Request(send_url, send_data)
    response = json.loads(urllib2.urlopen(send_request).read())
    print str(response)


if __name__ == '__main__':
    user = str(sys.argv[1])
    subject = str(sys.argv[2])
    content = str(sys.argv[3])
    corpid =  'ww8ca4f21666bf5a1d'   #企業號的標識ID
    corpsecret = '3CtjHoP8QuCkMpAmrIKkLiuCZMZ0ihSpWMSKbQTIinrU'  #應用程序的密鑰
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)
[root@zabbix alertscripts]# chmod +x testzabbix.py
[root@zabbix alertscripts]# ./testzabbix.py 1 test 你好
{"text": {"content": "test\n你好"}, "safe": "0", "msgtype": "text", "touser": "ZhangJie", "agentid": "1000003", "toparty": "2"}
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}
現在需要在手機上下載一個 "企業微信“ 軟件,並使用上面註冊企業微信時綁定的那個微信的登陸

可以看到一條消息
在這裏插入圖片描述

三.配置Web頁面自動報警

1.媒介

在這裏插入圖片描述
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
在這裏插入圖片描述

2.把媒介貼到用戶上

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3.配置動作

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

!!!!!!!!!!!!!!!!!
服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}

報警操作

在這裏插入圖片描述
恢復操作
在這裏插入圖片描述

3.測試

現在必須有一個被監控的主機,進去已經添加進了監控的zabbix_agentd主機
[root@mysql ~]# systemctl stop zabbix_agentd

等待大概5~6分鐘,看到已經有錯誤提示了
在這裏插入圖片描述
再看企業微信,也已經發過來了,上面的不用管,是我原來測試的
在這裏插入圖片描述
回到被剛剛關掉agentd的主機上,再開啓
[root@mysql ~]# systemctl start zabbix_agentd

可以看到恢復操作沒有問題
在這裏插入圖片描述

實驗完畢!!!!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章