一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - 服務(wù)器知識 - 使用企業(yè)微信發(fā)送Zabbix告警信息

使用企業(yè)微信發(fā)送Zabbix告警信息

2022-03-01 22:25徐福工程師 服務(wù)器知識

企業(yè)微信在很多公司都有使用,得益于它強大的消息推送API,我們可以自己實現(xiàn)使用企業(yè)微信作為告警媒介,本文就從零開始介紹如何使用企業(yè)微信發(fā)送Zabbix告警。

使用企業(yè)微信發(fā)送Zabbix告警信息

Zabbix作為一款傳統(tǒng)的監(jiān)控軟件一直保持穩(wěn)定的迭代,到目前為止穩(wěn)定版已經(jīng)更新到5.4了。Zabbix內(nèi)置非常多現(xiàn)成的監(jiān)控項,從操作系統(tǒng)到常用的軟件Redis、MySQL等,幾乎都可以找到對應(yīng)的監(jiān)控項,差不多可以做到零配置就實現(xiàn)操作系統(tǒng)三大件:CPU、硬盤、內(nèi)存的監(jiān)控。此外Linux和Windows,Zabbix都支持。

Zabbix內(nèi)置豐富的告警媒介,但很遺憾沒有內(nèi)置企業(yè)微信告警。企業(yè)微信在很多公司都有使用,得益于它強大的消息推送API,我們可以自己實現(xiàn)使用企業(yè)微信作為告警媒介,本文就從零開始介紹如何使用企業(yè)微信發(fā)送Zabbix告警。

一、企業(yè)微信配置相關(guān)

瀏覽器登錄企業(yè)微信管理后臺,在“應(yīng)用管理”中創(chuàng)建自建應(yīng)用,如下圖:

使用企業(yè)微信發(fā)送Zabbix告警信息

自建應(yīng)用

得到三個重要的參數(shù):“AgentId”、“Secret”和“企業(yè)ID”,前兩個參數(shù)在自建的應(yīng)用里面可以看到,“企業(yè)ID”需要到“我的企業(yè)”->“企業(yè)信息”底部查看。

這里有一點要注意,在自建應(yīng)用中有個“可見范圍”需要填寫正確,如下面公司架構(gòu),

使用企業(yè)微信發(fā)送Zabbix告警信息

通訊錄

如果接受告警的人在dev組,那么要將“自建應(yīng)用”中的“可見范圍”設(shè)為“dev”或者直接設(shè)置為“念一顧問”,如果設(shè)置錯了,要接受告警的人是收不到告警信息的,因為他看不到這個自建應(yīng)用。

使用企業(yè)微信發(fā)送Zabbix告警信息

可見范圍配置

二,告警通道腳本編寫

Zabbix的告警媒介類型可以選擇腳本,其由系統(tǒng)管理員提供,這就是zabbix強大的地方。依賴自定義腳本POST告警消息到企業(yè)微信的API,具體可以查看企業(yè)微信相關(guān)文檔,這里直接上腳本(支持發(fā)送markdown格式的內(nèi)容):

#!/bin/python3.7 import requests import json import sys import os from dotenv import load_dotenv def get_token(corpid, secret): url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken" data = { "corpid": corpid, "corpsecret": secret } response = requests.get(url=url, params=data) if response.json()['errcode'] != 0: return False else: token = response.json()["access_token"] # 保存token,方便下次使用 with open('/usr/lib/zabbix/alertscripts/.zabbix_wechat_config.json', 'w') as file: file.write(response.text) return token def send_message(user, subject, content, partyid="", agentid=1000002): load_dotenv() try: with open('/usr/lib/zabbix/alertscripts/.zabbix_wechat_config.json', 'r') as file: token = json.load(file)["access_token"] except: token = get_token(os.environ.get('corpid'), os.environ.get('secret')) url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % token data = { "touser": user, #"totag": Tagid, "toparty": partyid, "msgtype": "markdown", "agentid": agentid, "markdown": { "content": subject + '\n' + content }, "safe": "0" } #企業(yè)微信的markdown格式的內(nèi)容必須使用utf-8編碼 data = json.dumps(data, ensure_ascii=False).encode(encoding="utf-8") response = requests.post(url=url, data=data) # 如果發(fā)送失敗,重試四次 n = 0 while response.json()['errcode'] != 0 and n < 4: n += 1 token = get_token(os.environ.get('corpid'), os.environ.get('secret')) if token: url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % token data = json.dumps(data, ensure_ascii=False).encode(encoding="utf-8") response = requests.post(url=url, data=data) print(response.json()) return response.json() if __name__ == "__main__": user = sys.argv[1] subject = str(sys.argv[2]) content = str(sys.argv[3]) status = send_message(user, subject, content) print(status)

運行腳本的三個參數(shù)通過zabbix傳入。(關(guān)于模塊dotenv的用法可參考Python開發(fā)中如何正確處理憑據(jù))

查看zabbix server的配置文件:

/etc/zabbix/zabbix_server.conf,查找參數(shù)“AlertScriptsPath”的值,將腳本放到其指定的目錄中。(本文使用的操作系統(tǒng)是CentOS 7)

三,Zabbix配置

作者使用的zabbix版本為5.0,其他版本可能會有差異。有三個地方需要配置,

“管理”->“報警媒介類型”增加告警類型,如下:

使用企業(yè)微信發(fā)送Zabbix告警信息

告警媒介配置

其中“腳本參數(shù)”與上面python腳本接收參數(shù)對應(yīng)。

在“管理”->“用戶”中為zabbix用戶配置“報警媒介”,可以配置多個,這里僅配置“企業(yè)微信”告警媒介,

使用企業(yè)微信發(fā)送Zabbix告警信息

用戶配置告警媒介

“配置”->“動作”添加動作并指定對應(yīng)的操作,如下:

使用企業(yè)微信發(fā)送Zabbix告警信息

動作

使用企業(yè)微信發(fā)送Zabbix告警信息

配置動作實際的操作

上面兩幅圖用一句話描述:當(dāng)觸發(fā)器的級別是嚴(yán)重級別時,通過自定義腳本發(fā)送告警給zabbix管理員用戶組。選擇“Custom message”,其中“主題”的內(nèi)容為

{TRIGGER.STATUS}: {TRIGGER.NAME}

消息的內(nèi)容為:

<font color="warning">告警等級:嚴(yán)重</font> 告警主機:{HOSTNAME1} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警信息:{TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}

這里只定義了一個步驟,如果需要加入多個步驟,點擊“添加”即可,比如要實現(xiàn)告警先給普通員工發(fā)送,如果一個小時內(nèi)沒有確認(rèn),向更高一級的管理層發(fā)送就在這里實現(xiàn)。“恢復(fù)操作”和“更新操作”類似,不再贅述。

下圖是實際告警示例,因為告警內(nèi)容支持markdown格式,將告警級別著重展示,引起收到告警的相關(guān)負(fù)責(zé)人重視。

使用企業(yè)微信發(fā)送Zabbix告警信息

實際告警

總結(jié)

文章對Zabbix使用企業(yè)微信作為告警媒介原理進行了介紹。其他類似的應(yīng)用,實現(xiàn)原理也是相通的,希望這篇文章能幫到正在努力的你。

原文地址:https://www.toutiao.com/a7033706124310643213/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产资源免费观看 | 别停好爽好深好大好舒服视频 | 好大水好多好爽好硬好深视频 | 婷婷色天使在线视频观看 | 日本伊人久久 | 国产视频久久 | 国产成人成人一区二区 | 半挠脚心半黄的网站 | 午夜一级免费视频 | 美女禁18 | 成人影院在线观看 | beeg最新| 国产精品久久免费观看 | 加勒比一本大道香蕉在线视频 | 草莓视频旧版 | 日本视频在线免费观看 | 女人和男人搞鸡 | 东京道一本热大交乱 | 国产精品毛片无码 | seetube18日本第一次 | 国内自拍成人网在线视频 | 天天射寡妇射 | 欧美影院天天5g天天爽 | 毛片免费毛片一级jjj毛片 | 俄罗斯年轻男同gay69 | 特大黑人娇小亚洲女mp4 | 精品国产欧美一区二区 | 99久久精品国产综合一区 | 紧身裙女教师miad711在线 | 成年女人毛片免费观看97 | 欧美亚洲综合另类 | 成人永久免费视频 | 美女被免费视频 | 色久天| 2022色婷婷综合久久久 | 女王厕便器vk | 污黄在线观看 | 女人全身裸露无遮挡免费观看 | 成年女人毛片免费观看中文w | 99年水嫩漂亮粉嫩在线播放 | 久久午夜一区二区 |