【zabbix】企业微信告警
本篇基于我的前兩章環境續寫:
1、【zabbix】docker安裝zabbix、yum安裝zabbix-agent
2、【zabbix】MySQL模板創建與監控
企業微信部分
一、首先得有個企業微信號
添加部門
?應用管理創建應用
?
?
?我的企業里面找到企業id,和上面兩條一起,總共三條信息都要用到
測試以下通訊是否正常,微信企業號接口調試工具:
企業微信接口調試工具
?
腳本準備部分?
這里準備了兩份腳本,兩種發送方式,可以自選其一使用!
在宿主機/usr/lib/zabbix/alertscripts/路徑下創建weixin.py
第一種腳本:這里要修改腳本里的這三條信息,也就是上文說到的三條信息
corpid='' #企業ID
appsecret='' #secret
agentid=1000002 #AgentID
第二種腳本:使用微信機器人,這個需要在企業微信里面創建群,在群里創建機器人,之后復制機器人的Webhook:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
?
腳本ok了 ,先在宿主機測試一下
先看下宿主機python版本
[root@k8s-node2 alertscripts]# python -V Python 2.7.5 python weixin.py HuYiDuo gaojing jingbaook 手機上的企業微信已經收到消息了
我的zabbix服務端是基于zabbix/zabbix-appliance官方鏡像,版本為4.4.6,
所以這里就直接把腳本拷貝到容器中去
cp /usr/lib/zabbix/alertscripts/weixin.py 容器id:/usr/lib/zabbix/alertscripts/進入zabbix/zabbix-appliance容器
docker exec -it 9fc7a9551127f bash腳本已經過來了
?在容器中再測試一下
python weixin.py HuYiDuo gaojing jingbao喲?報錯了?
?看錯誤是缺少了requests,另外python版本是2.7.16
用pip install requests 下載看看,結果也報錯了,看到這個結果大致思路應該是python版本低了,得升級版本
由于是在容器中安裝python環境,所以要先確定下系統的發行版
這里查出來是Alpine Linux,所以這里用不了yum,得用apk
apk add build-base? ?//安裝?GCC等工具 編譯時的依賴庫 apk add --no-cache -U?zlib-dev? ? //安裝?zlib-devel apk add --no-cache -U?openssl-dev? ?//安裝openssl-devel 手動下載:https://www.python.org/downloads/source/ 命令下載:wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz 解壓:tar -xvf Python-3.7.6.tgz 進入源碼根目錄:cd Python-3.7.6 配置源碼生成makefile ./configure --enable-optimizations --with-ensurepip=install? ?//加上此選項會安裝pip工具 編譯:make? 安裝:make install 由于執行configure時沒有指定安裝路徑(--prefix=/opt/Python),所以安裝到默認路徑/usr/local/bin cd /usr/local/bin ln -s python3.5?python? ?//建立軟連接,方便執行其他: apk add python3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py?安裝好后繼續下載requests
pip install requests再測試一下
成功了
?zabbix配置企業微信告警部分
?配置報警媒介類型
收件人: {ALERT.SENDTO} 主題: {ALERT.SUBJECT} 消息: {ALERT.MESSAGE}測試報警媒介
?消息發送成功
注:如果這一步之前在服務器及容器里測試消息都成功,但web頁面報警媒介這里測試發送卻報錯就得檢查腳本本身的問題了。
如:#!/usr/bin/env python? ?這一行是否有對應環境,或者腳本python版本適配問題!
消息接收成功
配置動作
這里先配了個zabbix客戶端狀態的觸發器,待會做測試用
注:觸發器這一步配置也蠻重要,觸發器配置不好無法觸發,告警信息就會無法送達!
?操作里面的發送消息給用戶和用戶群組得自定義創建
服務器:{HOST.NAME}發生: {TRIGGER.NAME}故障! 消息內容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} ---------------------------------------------------- 服務器:{HOST.NAME}: {TRIGGER.NAME}已恢復! 消息內容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續時間:{EVENT.AGE} 事件ID:{EVENT.ID} ---------------------------------------------------- 服務器:{HOST.NAME}: {TRIGGER.NAME}已更新! 消息內容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續時間:{EVENT.AGE} 事件ID:{EVENT.ID}這里及下面的發送消息給用戶后來我給拿掉了,直接配成了管理組,這個發送消息給xx的配置自己自定義就好,只要能接收到消息。
消息內容框里的內容部分,在消息內容:這一行上面把默認標題框里的信息給填上去,這樣告警信息看起來會順眼美觀一些。
接下來給用戶Admin配置報警媒介,收件人這里我直接填寫的@all
?用戶配置完成就可以做測試了
回到服務器,關閉zabbix-agent
systemctl stop zabbix-agent?成功接收到故障報警信息
?再啟動zabbix-agent
systemctl start zabbix-agent?成功接收到故障恢復信息
好了,至此企業微信告警就配置完了!!!
zabbix全套配置思路也結束了!!!
總結
以上是生活随笔為你收集整理的【zabbix】企业微信告警的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker、Jenkins、Ranch
- 下一篇: 如何在PPT里绘制具有科技感的色块?