Zabbbix之十二------Zabbix實現微信報警通知及創建聚合圖形


實戰一:實現zabbix監控微信報警

1、在企業微信上注冊賬號

1、注冊企業微信,管理員需要寫上自己的真實姓名,掃描以下的二維碼,與微信關聯真實姓名。

 2、登陸企業微信,然后創建一個微信故障通知應用

 3、對創建的應用命名,並上傳圖片

4、查看創建的應用

 5、添加成員

 6、查看此時的管理員賬號是姓名全拼,但首字母都是大寫,例如:張三,賬號就是ZhangSan

 2、在Linux系統的zabbix server服務器端配置weixin.py腳本

1、首先安裝python腳本需要的命令

[root@zabbix web]# yum install python-pip -y
[root@zabbix web]# pip install requests 

2、在指定的目錄下/usr/lib/zabbix/alertscripts創建weixin.py腳本,在企業微信里找到agentid、企業ID以及企業秘鑰

#!/usr/bin/env python
#coding:utf-8
#Author:Zhang ShiJie
import requests
import sys
import os
import json
import logging


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('/tmp','weixin.log'), # 指定臨時weixin的日志路徑
filemode = 'a')

corpid='xx'  # 需要修改企業ID
appsecret="xxx"  # 企業的secret秘鑰
agentid="xxx" # 修改agentid
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']


msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
touser=sys.argv[1]
subject=sys.argv[2]
message=sys.argv[2] + "\n\n" +sys.argv[3]


params={
"touser": touser,
"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)

3、對weixin.py腳本加上執行權限,並將屬組和屬主加上

[root@zabbix alertscripts]# pwd  # 將weixin.py腳本存放在此目錄下
/usr/lib/zabbix/alertscripts
[root@zabbix alertscripts]# chmod +x weixin.py  # 加上執行權限
[root@zabbix alertscripts]# chown zabbix.zabbix weixin.py  -R  # 將權限進行修改
[root@zabbix alertscripts]# ll
total 4
-rwxr-xr-x 1 zabbix zabbix 981 Dec 25 02:55 weixin.py

4、對weixin.py腳本進行測試

[root@zabbix alertscripts]# python weixin.py  姓名賬號 "這是主題" "這是內容"
[root@zabbix alertscripts]# python weixin.py  姓名賬號 "這是主題" "這是內容11"
[root@zabbix alertscripts]# python weixin.py  姓名賬號 "這是主題" "這是內容 linux"

5、此處很關鍵,由於手動推送的腳本生成的臨時文件/tmp/weixin.log是root權限的數據,我們啟動的zabbix--server服務器都是zabbix 用戶啟動的,需要我們將/tmp/weixin.log文件的屬組和屬主改為zabbix用戶,或者刪除即可。

[root@zabbix alertscripts]# ll /tmp/weixin.log 
-rw-r--r-- 1 root root 914 Feb 28 09:20 /tmp/weixin.log
[root@zabbix alertscripts]# rm -rf /tmp/weixin.log  #刪除臨時log文件

[root@zabbix alertscripts]# chown zabbix.zabbix  /tmp/weixin.log  -R  # 改為zabbix用戶

6、手動推送腳本成功后,此時手機上就可以收到,微信故障報警通知

 3、在zabbix網頁上創建nginx監控

這里在linux系統上配置nginx服務、監聽nginx狀態以及監聽nginx的80端口,不再細講,詳情請看:https://www.cnblogs.com/struggle-1216/p/12347283.html

1、創建主機群組

 2、創建主動模式的proxy代理

3、創建監控nginx模板

 4、全克隆一個監控主動模式的proxy代理模板,因為默認的監控項里邊的監控項原型、網絡部分都是被動模式,需要將選項改為主動模式,時間間隔設置為5s,生產中設置為5m,詳情見:https://www.cnblogs.com/struggle-1216/p/12354813.html里邊的主動模式監控,這里不再演示。

5、創建主機,添加的主動模式代理的proxy代理模板

 6、開始關聯主機模板

 7、在上面創建的Linux_nginx模板沒有應用集、監控項、觸發器等信息,需要在下面進行添加,第一步先創建應用集。

 8、創建監控項,這里只創建了監聽nginx的80端口。

 9、創建觸發器,這里只做了監聽nginx的80端口監聽,其他的同理一樣的操作。

監控的agent主機是默認五分鍾內不可用就會觸發觸發器,表達式含義是:在5分鍾之內的agent.ping不等於1就觸發報警

10、創建監控nginx圖形

 11、此時可以看到監控的nginx主機配置正常

 12、查看nginx監控圖形

4、在zabbix網頁上創建實現觸發報警,發送報警通知到企業微信上

1、創建報警媒介類型,腳本參數如下:

{ALERT.SENDTO}  # 發給誰
{ALERT.SUBJECT}  # 主題
{ALERT.MESSAGE} # 信息

 2、創建用戶

 3、修改VIP的用戶權限,改為超級管理員,其他創建的用戶也一樣。

4、對創建的用戶(VIP)全部都加上報警媒介。

 5、創建動作

 6、在動作里添加操作。

默認標題:業務報警{TRIGGER.STATUS}
消息內容:上海業務報警服務器:{HOST.NAME},IP:{HOSTNAME1},詳情:{ITEM.NAME}:{ITEM.VALUE}

 7、在動作里添加恢復操作,用來提醒自己,業務已經恢復。

默認標題:業務報警{TRIGGER.STATUS}
消息內容:上海業務報警服務器:{HOST.NAME},IP:{HOSTNAME1},詳情:{ITEM.NAME}:{ITEM.VALUE}

 5、測試效果

 1、在被監控端停掉nginx服務和zabbix-agent服務

[root@node1 ~]# nginx -s stop
[root@node1 ~]# systemctl stop zabbix-agent

2、查看此時的報警信息。

3、查看此時的企業微信發送的報警信息

 4、恢復此時的nginx服務及zabbix-agent服務,查看企業微信發送的恢復消息

 實戰二:在zabbix網頁創建聚合圖形

1、在zabbix網頁上創建聚合圖形,選擇了兩行兩列

 2、在創建的linux_web聚合圖形界面添加要監控的主機指標,跨主機、以及跨主機群組的主機,都可以監控

 3、以下是個人創建的四個聚合圖形監控

 4、如果有多個主機,可以創建多個聚合圖形,以下是創建的第二個linux_web2的聚合圖形。

 5、創建幻燈片演示

 6、將前面創建的聚合圖形添加到幻燈片中

 7、最后打開創建的幻燈片演示,此時創建的聚合圖形就會每3s進行切換圖形在屏幕上顯示所要監控的信息。

 

   

 

 

   

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM