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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

zabbix添加微信报警

發布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zabbix添加微信报警 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、相關資源導航
https://blog.csdn.net/zyj81092211/article/details/122917786

2、環境介紹
zabbix版本:6.0
kubernetes版本:v1.23.4
rancher版本:v2.6.3
容器相關環境配置可參考如下
https://blog.csdn.net/zyj81092211/article/details/123068347

3、獲取企業微信信息

注:調用邏輯是:根據CropID找企業,根據AgentId和Secret找到具體應用,根據Toparty找到要發送信息的具體部門

(1)登陸或注冊企業微信
https://work.weixin.qq.com/

(2)獲取企業ID(CropID)
我的企業-》企業信息-》企業ID

(3)自建應用獲取應用信息(AgentId和Secret)
應用管理-》應用-》自建

信息會發送到企業微信客戶端

(4)獲取部門ID(Toparty)

4、設置微信插件


5、shell告警腳本
注:更換腳本中企業微信信息,url是用來傳遞服務器登記信息的,沒有可以不寫

#!/bin/bash # -*- coding: utf-8 -*- # zabbix notification confirmation script#自建應用信息 Toparty=xxx #部門id AgentID=xxx #應用id Secret='xxx' #修改為企業CropID CropID='xxx' GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"#獲取Token #Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}') Gtoken=$(/usr/bin/curl -s -G $GURL | sed 's/,/\n/g' | grep -i access_token | awk -F \" '{print $4}')#發送消息接口 PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"#報警信息主題,zabbix傳入 Title="$1"#報警信息正文內容,zabbix傳入 Message="$2"#發送消息函數(構建json發送) JSON_BODY(){printf "%s\n" "{"printf "\t%s\n" "\"toparty\":\"$Toparty\","printf "\t%s\n" '"msgtype": "textcard",'printf "\t%s\n" "\"agentid\":\"$AgentID\","printf "\t%s\n" "\"textcard\": {"printf "\t\t%s\n" "\"title\":\"$Title\","printf "\t\t%s\n" "\"description\":\"$Message\","printf "\t\t%s\n" "\"url\":\"$url\","printf "\t%s\n" "}"printf "%s\n" "}" }#函數中URL構建 IP=$(echo "$Message" | grep '告警地址' | awk -F : '{print $2}') url="xxx"#發送報警信息 curl -s -H "Content-Type: application/json" -X POST -d "$(JSON_BODY $1 $2)" $PURL

6、python腳本(可選)

#!/usr/bin/python # -*- coding: utf-8 -*- # zabbix notification confirmation script # python2.7 or aboveimport requests import json import os import sysToparty = "xxx" #部門id AgentID = xxx #應用id#修改為企業CropID和Secret CropID = 'xxx' Secret = 'xxx'#獲取Token Gtoken ="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ CropID + "&corpsecret=" + Secret headers = {'Content-Type': 'application/json'} json_data = json.loads(requests.get(Gtoken).content.decode()) token = json_data["access_token"]#消息發送接口 Purl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + token#消息發送函數 def msg(title,message,url):weixin_msg = {"toparty" : Toparty,"msgtype" : "textcard","agentid" : AgentID,"textcard" : {"title" : title,"description" : message,"url" : url,}}print requests.post(Purl,json.dumps(weixin_msg),headers=headers)if __name__ == '__main__':title = sys.argv[1] #獲取第一個參數message = sys.argv[2] #獲取第二個參數a1=message.find("告警地址:")+len("告警地址:")a2=message.find("監控項目:")url="url"+message[a1:a2]#print(a1)#print(a2)#print message[a1:a2]msg(title,message,url)

7、將腳本掛載到容器中
現將腳本上傳到nfs存儲中并加執行權限

掛載到容器中/usr/lib/zabbix/alertscripts目錄

8、創建報警媒介

選擇腳本并添加參數

{ALERT.SUBJECT} {ALERT.MESSAGE}

內置參數說明
https://www.zabbix.com/documentation/6.0/en/manual/appendix/macros/supported_by_location

配置信息模板

主題

{TRIGGER.STATUS}: {TRIGGER.NAME}

消息

告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}


主題

{TRIGGER.STATUS}: {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}

9、創建報警動作



問題發生操作


主題

{TRIGGER.STATUS}: {TRIGGER.NAME}

消息

告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}

問題恢復操作


主題

{TRIGGER.STATUS}: {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}

10、為用戶創建報警媒介



11、測試
執行下面命令,讓多核CPU 使用率達到100%

for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done

問題報警



問題恢復


12、企業微信API查看(可選)


如何獲取token

發送應用消息。里面有消失示例

總結

以上是生活随笔為你收集整理的zabbix添加微信报警的全部內容,希望文章能夠幫你解決所遇到的問題。

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