日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS 7.6 zabbix5.0监控实现微信告警

發布時間:2023/12/31 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS 7.6 zabbix5.0监控实现微信告警 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

zabbix5.0監控實現微信告警

  • 一、配置zabbix客戶端
    • 1、環境說明
    • 2、下載zabbix_agent
    • 3、修改配置文件
    • 4、啟動zabbix_agentd
  • 二、安裝啟動httpd
  • 三、監控告警設置
    • 1、創建模板
    • 2、創建應用集
    • 3、創建監控項
    • 4、創建觸發器
    • 5、創建主機
    • 6、為主機應用模板
  • 四、設置微信
    • 1、注冊企業微信
    • 2、創建部門
    • 3、創建應用
    • 4、調試接口
  • 五、微信告警腳本
    • 1、安裝python3.6
    • 2、編寫告警腳本
    • 3、腳本測試
  • 六、配置告警媒介
    • 1、創建媒介類型:wechat
    • 2、配置動作
    • 3、應用到用戶
  • 七、告警測試

一、配置zabbix客戶端

1、環境說明

服務端配置請看這一篇:CentOS7.6 源碼安裝zabbix5.0及初始化配置(超詳細)

服務端:192.168.245.204
客戶端:192.168.245.203

這里測試基于http服務的告警,如果服務down了就微信通知告警
這里還需要安裝注冊企業微信,請提前安裝好,后面有說明

服務端配置好以后,我們需要配置客戶端,客戶端需要安裝zabbix_agent并啟動才能讓zabbix服務器監控到它

2、下載zabbix_agent

首先下載zabbix_agent,我這里是源碼安裝的

[root@dockertest ~]# wget https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.13/zabbix_agent-5.0.13-linux-3.0-amd64-static.tar.gz

創建一個目錄用于存放文件

[root@dockertest ~]# mkdir /usr/local/zabbix_agent

解壓源碼包到zabbix_agent目錄

[root@dockertest ~]# tar xf zabbix_agent-5.0.13-linux-3.0-amd64-static.tar.gz -C /usr/local/zabbix_agent

3、修改配置文件

修改配置文件zabbix_agentd.conf

[root@dockertest ~]# cd /usr/local/zabbix_agent/ [root@dockertest zabbix_agent]# vim conf/zabbix_agentd.conf Server=192.168.245.204 ServerActive=192.168.245.204 Hostname=Apache web server UnsafeUserParameters=1

制作命令的軟鏈接

[root@dockertest zabbix_agent]# ln -s /usr/local/zabbix_agent/bin/* /usr/local/bin/ [root@dockertest zabbix_agent]# ln -s /usr/local/zabbix_agent/sbin/* /usr/local/sbin/

然后需要把配置文件放到/usr/local/etc/zabbix_agentd.conf下否則無法啟動

[root@dockertest zabbix_agent]# cp conf/zabbix_agentd.conf /usr/local/etc/zabbix_agentd.conf

還要創建系統用戶和組zabbix否則也無法啟動

[root@dockertest zabbix_agent]# groupadd --system zabbix [root@dockertest zabbix_agent]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

4、啟動zabbix_agentd

啟動zabbix客戶端程序

[root@dockertest zabbix_agent]# zabbix_agentd [root@dockertest zabbix_agent]# netstat -antp | grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 31625/zabbix_agentd

到服務端上去檢查一下能否獲得客戶端的信息

[root@zabbix-server ~]# zabbix_get -s 192.168.245.203 -p 10050 -k system.uname Linux dockertest 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64

二、安裝啟動httpd

因為我們監控的是客戶端的http服務,所以安裝apache并啟動

[root@dockertest zabbix_agent]# yum -y install httpd [root@dockertest zabbix_agent]# systemctl start httpd

三、監控告警設置

1、創建模板



2、創建應用集




3、創建監控項





4、創建觸發器





5、創建主機

添加被監控端主機的信息

6、為主機應用模板

這邊建議創建模板然后創建主機,然后到主機里去鏈接到模板,這樣比較靈活,因為有可能你要對多個主機應用同一個模板,就不用一個個創建





鏈接好查看應該是這樣的

四、設置微信

服務器設置好以后就開始對微信進行相關設置

1、注冊企業微信

https://work.weixin.qq.com/wework_admin/register_wx

不復雜比較簡單哦!

注冊好了就可以點擊進入后臺管理頁面

2、創建部門



然后選擇管理員賬號就可以了

3、創建應用

4、調試接口

創建好之后需要進行接口的調試,這一步主要就是測試我們之后微信可否能發成功

微信企業號接口調試工具:
https://open.work.weixin.qq.com/wwopen/devtool/interface/combine

調試的時候需要兩樣東西

1、企業id

2、secret


企業微信團隊會給你發消息,點擊“前往查看”

把secret復制到電腦上

五、微信告警腳本

下面就開始編寫微信告警的腳本了

告警腳本存放位置:/usr/local/share/zabbix/alertscripts

1、安裝python3.6

因為微信告警腳本是python寫的,所以需要先安裝python,系統預裝python版本是2.7,實踐會報錯找不到模塊

ImportError: No module named 'typing'

所以需要安裝python3.6解決,但yum支持不了這么高版本的python,所以這里用源碼安裝python,然后裝requests模塊的時候也不要用系統預裝的pip,用pip3

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-develwget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgztar -xf Python-3.6.4.tgzmkdir -p /usr/local/Python3cd Python-3.6.4/./configure --prefix=/usr/local/python3make && make installln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3cd /usr/local/python3pip3 install requests //requests是一個Python第三方庫,處理URL資源特別方便

2、編寫告警腳本

一定要到告警腳本目錄下,把微信的告警腳本放進去,這里是找的網上的版本,自己根據實際情況把重要字段改了下,需要修改的地方后面用#注釋標明了,需要改成自己微信相關的信息

[root@zabbix-server python3]# cd /usr/local/share/zabbix/alertscripts [root@zabbix-server alertscripts]# vim wechat.py #!/usr/bin/python2.7 #_*_coding:utf-8 _*_ #auther:火星小劉import requests,sys,json import urllib3 urllib3.disable_warnings()reload(sys) sys.setdefaultencoding('utf-8')def GetTokenFromServer(Corpid,Secret):Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"Data = {"corpid":Corpid,"corpsecret":Secret}r = requests.get(url=Url,params=Data,verify=False)print(r.json())if r.json()['errcode'] != 0:return Falseelse:Token = r.json()['access_token']file = open('/tmp/zabbix_wechat_config.json', 'w')file.write(r.text)file.close()return Tokendef SendMessage(User,Agentid,Subject,Content):try:file = open('/tmp/zabbix_wechat_config.json', 'r')Token = json.load(file)['access_token']file.close()except:Token = GetTokenFromServer(Corpid, Secret)n = 0Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % TokenData = {"touser": "S*****ie", # 企業號中的用戶帳號,在zabbix用戶Media中配置,如果配置不正常,將按部門發送。 #"totag": Tagid, # 企業號中的標簽id,群發使用(推薦)"toparty": "2", # 企業號中的部門id,群發時使用。"msgtype": "text", # 消息類型。"agentid": "1000002", # 企業號中的應用id。"text": {"content": Subject + '\n' + Content},"safe": "0"}r = requests.post(url=Url,data=json.dumps(Data),verify=False)while r.json()['errcode'] != 0 and n < 4:n+=1Token = GetTokenFromServer(Corpid, Secret)if Token:Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Tokenr = requests.post(url=Url,data=json.dumps(Data),verify=False)print(r.json())return r.json()if __name__ == '__main__':User = sys.argv[1] # zabbix傳過來的第一個參數Subject = str(sys.argv[2]) # zabbix傳過來的第二個參數Content = str(sys.argv[3]) # zabbix傳過來的第三個參數Corpid = "ww6ba7489884e59b0c" # CorpID是企業號的標識Secret = "Mnzu5QIAKF5zJqg-2N33PDbssY9Kx3RK1XxA8FTNgUk" # Secret是管理組憑證密鑰#Tagid = "1" # 通訊錄標簽IDAgentid = "1000002" # 應用IDPartyid = "2" # 部門IDStatus = SendMessage(User,Agentid,Subject,Content)print Status

獲取touser里的用戶賬號:

獲取Partyid:

獲取Agentid:

修改完別忘了加可執行權限

[root@zabbix-server alertscripts]# chmod +x wechat.py

3、腳本測試

手動測試一下發一條信息看微信能不能收到

[root@zabbix-server alertscripts]# ./wechat.py S******e test hello /usr/lib/python2.7/site-packages/urllib3/connectionpool.py:769: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.htmlInsecureRequestWarning) {u'access_token': u's3eqGeu6Sr9ZyFsar8ll9TgxInJ9UhYrH6TbyUg9xkI63FrSUjZQYS44hwEVGJP4krUBVP-qrViPwiADf929tBa1oCyRHIwqZkMhuMEboOqgumYql1bTpvphaYJZFcpyfyHq50cLKZiFzudgggJXcgbfGlE5vJHA8gvUHeHeejluQxWO39N40qgTscHOy_eotm-VWFuFBTXB39Yqvph5Sg', u'expires_in': 7200, u'errcode': 0, u'errmsg': u'ok'} {u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'} wechat.py的三個參數: 企業賬號:S*****e 標題:test 內容:hello

能收到說明我們微信告警的腳本就沒問題了,可以用了

測試報警之前需要修改一下這個文件的權限:zabbix_wechat_config.json
這個文件是用來存放剛才接口調用的返回結果的
否則之后告警會報沒有權限而無法發送

[root@zabbix-server ~]# ll /tmp/zabbix_wechat_config.json -rw-r--r-- 1 root root 277 7 7 17:52 /tmp/zabbix_wechat_config.json[root@zabbix-server ~]# chown zabbix.zabbix /tmp/zabbix_wechat_config.json

六、配置告警媒介

1、創建媒介類型:wechat




2、配置動作




故障問題:{EVENT.NAME} 告警主機:{HOSTNAME1}告警時間:{EVENT.DATE} {EVENT.TIME}告警等級:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警項目:{TRIGGER.KEY1}問題詳情:{ITEM.NAME}:{ITEM.VALUE}當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

故障恢復:{EVENT.NAME} 恢復主機:{HOSTNAME1}主機IP:{HOST.IP}恢復時間:{EVENT.RECOVERY.TIME} //網上很多這里寫的跟告警時間是一樣的,如果是這樣會出現故障恢復了才會發告警信息,這一般不符合邏輯,所以需要改成這樣告警等級:{TRIGGER.SEVERITY}告警項目:{TRIGGER.KEY1}當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}


3、應用到用戶




然后就可以測試報警啦

七、告警測試

到客戶端上把http服務停掉

[root@dockertest ~]# systemctl stop httpd

大概幾秒鐘之后zabbix的主頁就能同步狀態并提示已發送告警

微信收到如下提示:

再到客戶端把http服務開啟,主頁問題就消失了,微信收到如下信息,測試成功

[root@dockertest ~]# systemctl start httpd

總結

以上是生活随笔為你收集整理的CentOS 7.6 zabbix5.0监控实现微信告警的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。