實戰一:實現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進行切換圖形在屏幕上顯示所要監控的信息。