【zabbix】企业微信告警
本篇基于我的前兩章環(huán)境續(xù)寫:
1、【zabbix】docker安裝zabbix、yum安裝zabbix-agent
2、【zabbix】MySQL模板創(chuàng)建與監(jiān)控
企業(yè)微信部分
一、首先得有個企業(yè)微信號
添加部門
?應(yīng)用管理創(chuàng)建應(yīng)用
?
?
?我的企業(yè)里面找到企業(yè)id,和上面兩條一起,總共三條信息都要用到
測試以下通訊是否正常,微信企業(yè)號接口調(diào)試工具:
企業(yè)微信接口調(diào)試工具
?
腳本準備部分?
這里準備了兩份腳本,兩種發(fā)送方式,可以自選其一使用!
在宿主機/usr/lib/zabbix/alertscripts/路徑下創(chuàng)建weixin.py
第一種腳本:這里要修改腳本里的這三條信息,也就是上文說到的三條信息
corpid='' #企業(yè)ID
appsecret='' #secret
agentid=1000002 #AgentID
第二種腳本:使用微信機器人,這個需要在企業(yè)微信里面創(chuàng)建群,在群里創(chuàng)建機器人,之后復(fù)制機器人的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 手機上的企業(yè)微信已經(jīng)收到消息了
我的zabbix服務(wù)端是基于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腳本已經(jīng)過來了
?在容器中再測試一下
python weixin.py HuYiDuo gaojing jingbao喲?報錯了?
?看錯誤是缺少了requests,另外python版本是2.7.16
用pip install requests 下載看看,結(jié)果也報錯了,看到這個結(jié)果大致思路應(yīng)該是python版本低了,得升級版本
由于是在容器中安裝python環(huán)境,所以要先確定下系統(tǒng)的發(fā)行版
這里查出來是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 由于執(zhí)行configure時沒有指定安裝路徑(--prefix=/opt/Python),所以安裝到默認路徑/usr/local/bin cd /usr/local/bin ln -s python3.5?python? ?//建立軟連接,方便執(zhí)行其他: apk add python3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py?安裝好后繼續(xù)下載requests
pip install requests再測試一下
成功了
?zabbix配置企業(yè)微信告警部分
?配置報警媒介類型
收件人: {ALERT.SENDTO} 主題: {ALERT.SUBJECT} 消息: {ALERT.MESSAGE}測試報警媒介
?消息發(fā)送成功
注:如果這一步之前在服務(wù)器及容器里測試消息都成功,但web頁面報警媒介這里測試發(fā)送卻報錯就得檢查腳本本身的問題了。
如:#!/usr/bin/env python? ?這一行是否有對應(yīng)環(huán)境,或者腳本python版本適配問題!
消息接收成功
配置動作
這里先配了個zabbix客戶端狀態(tài)的觸發(fā)器,待會做測試用
注:觸發(fā)器這一步配置也蠻重要,觸發(fā)器配置不好無法觸發(fā),告警信息就會無法送達!
?操作里面的發(fā)送消息給用戶和用戶群組得自定義創(chuàng)建
服務(wù)器:{HOST.NAME}發(fā)生: {TRIGGER.NAME}故障! 消息內(nèi)容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} ---------------------------------------------------- 服務(wù)器:{HOST.NAME}: {TRIGGER.NAME}已恢復(fù)! 消息內(nèi)容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 恢復(fù)時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續(xù)時間:{EVENT.AGE} 事件ID:{EVENT.ID} ---------------------------------------------------- 服務(wù)器:{HOST.NAME}: {TRIGGER.NAME}已更新! 消息內(nèi)容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 恢復(fù)時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續(xù)時間:{EVENT.AGE} 事件ID:{EVENT.ID}這里及下面的發(fā)送消息給用戶后來我給拿掉了,直接配成了管理組,這個發(fā)送消息給xx的配置自己自定義就好,只要能接收到消息。
消息內(nèi)容框里的內(nèi)容部分,在消息內(nèi)容:這一行上面把默認標題框里的信息給填上去,這樣告警信息看起來會順眼美觀一些。
接下來給用戶Admin配置報警媒介,收件人這里我直接填寫的@all
?用戶配置完成就可以做測試了
回到服務(wù)器,關(guān)閉zabbix-agent
systemctl stop zabbix-agent?成功接收到故障報警信息
?再啟動zabbix-agent
systemctl start zabbix-agent?成功接收到故障恢復(fù)信息
好了,至此企業(yè)微信告警就配置完了!!!
zabbix全套配置思路也結(jié)束了!!!
總結(jié)
以上是生活随笔為你收集整理的【zabbix】企业微信告警的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker、Jenkins、Ranch
- 下一篇: 如何在PPT里绘制具有科技感的色块?