<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本專案的目的是構建一個能實現微信告警的zabbix監控系統,方便的監控整個NGINX叢集,同時能批次的去部署和管理整個叢集。
在測試接收訊息過程中,返回值一直是引數{ALTER.MESSAGE},排查指令碼問題,版本問題,最後發現是引數{ALERT.MESSAGE},所以打字一定要細心,認真。同時對監控也有了一定的認識,運維人員不可能7*24小時盯著zabbix看,所以做到及時告警是非常必要的,對之前的高可用web叢集專案葉可以進行完善。
nginx開啟狀態統計功能
nginx設定增加stub_status模組
location = /wyt_status{ stub_status;}
測試狀態統計功能是否開啟
http://192.168.2.58/wyt_status
nginx端(zabbix使用者端)編寫監控指令碼
cd /etc/zabbix/zabbix_agentd.d #在zabbix_agentd.d目錄下編寫監控指令碼 vim zabbix-nginx_status.sh
#!/bin/bash case $1 in active) curl http://192.168.2.58:80/wyt_status 2>/dev/null|awk '/Active/ {print $NF}' ;; accepts) curl http://192.168.2.58:80/wyt_status 2>/dev/null|awk 'NR==3 {print $1}' ;; handled) curl http://192.168.2.58:80/wyt_status 2>/dev/null |awk 'NR==3 {print $2}' ;; requests) curl http://192.168.2.58:80/wyt_status 2>/dev/null |awk 'NR==3 {print $3}' ;; reading) curl http://192.168.2.58:80/wyt_status 2>/dev/null |awk 'NR==4 {print $2}' ;; writing) curl http://192.168.2.58:80/wyt_status 2>/dev/null |awk 'NR==4 {print $4}' ;; waiting) curl http://192.168.2.58:80/wyt_status 2>/dev/null |awk 'NR==4 {print $NF}' ;; ping) pidof nginx |wc -l #通過查詢程序PID值,測試nginx存活狀態 ;; esac
vim userparameter_nginx.conf #在zabbix_agentd.d目錄下自定義引陣列態檔 UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/zabbix-nginx_status.sh $1 #指定動作 chmod +x zabbix-nginx_status.sh #授予可執行許可權 service zabbix-agent restart #重新整理服務 zabbix_get -k nginx.status[ping] -s 192.168.2.58 #去伺服器端測試是否返回引數1
先建立nginx主機master-nginx
新增應用集nginx
在應用集nginx增加監控項
自定義觸發器nginx-up-down,監控項為nginx-ping,正常為1,每5s監控一次,若為0,嚴重警告。
除nginx-ping,nginx-accepts外,需要新增所有狀態監控項,只有nginx-ping建立觸發器,這裡不一一舉例。
新增好所有監控項,下一步製圖,圖中包含所有監控項
因為我們監控實際上就是在一直請求,所以看到nginx-requests在不斷增加。
註冊成功之後建立一個運維部門
記住自己的企業ID
自建應用
應用名稱為zabbix監控
建立成功後,檢視資訊記住自己的AgentId和Secret
微信掃碼企業微信外掛就可以在微信接收訊息
Shell指令碼
cd /usr/lib/zabbix/alertscripts 進入指令碼組態檔夾 vim weixin.sh
#!/bin/bash CorpID="wwaa6fb8ff1b81aa77" # 你的企業id Secret="Cxyd*****" #你的SecretID GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret" Token=$(/usr/bin/curl -s -G $GURL |awk -F": '{print $4}'|awk -F" '{print $2}') # echo $Token PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token" function body(){ local int agentid=1000002 # 你的agentdid local UserID="@all" # 傳送的使用者ID local PartyID=1 # 部門ID local Msg=$(echo "$@" | cut -d" " -f3-) # 傳送給所有人 printf '{n' printf 't"touser": "'"$UserID""",n" printf 't"toparty": "'"$PartyID""",n" printf 't"msgtype": "text",n' printf 't"agentid": "'"$agentid""",n" printf 't"text": {n' printf 'tt"content": "'"$Msg"""n" printf 't},n' printf 't"safe":"0"n' printf '}n' } /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
測試指令碼能否正常接收訊息
可以看到正常接收。
然後我們回到zabbix-server-web設定
管理->報警媒介型別->建立媒體型別
建立使用者群組
建立使用者
報警媒介
許可權->超級管理員
設定->動作
新增觸發器
操作
故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生{TRIGGER.NAME}故障!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢復操作
恢復{TRIGGER.STATUS}, 伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
可以看到推播成功
Python webhook機器人指令碼
新建一個測試群聊,在群裡新增機器人,記住webhook地址
除了使用Shell指令碼設定介面之外,還可以使用Python指令碼
#!/usr/bin/python #-*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=****」 #填寫自己的webhook地址 def msg(text): json_text= { "msgtype": "text", "text": { "content": text }, } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text)
測試
python weixin.py test
web設定同上
到此這篇關於Zabbix自定義指令碼監控nginx以及微信告警的文章就介紹到這了,更多相關Zabbix自定義指令碼監控nginx內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45