什么是zabbix梭姓?
Zabbix 是由 Alexei Vladishev 開發(fā)的一種網(wǎng)絡(luò)監(jiān)視忧换、管理系統(tǒng),基于 Server-Client 架構(gòu)蜻牢】具郑可用于監(jiān)視各種網(wǎng)絡(luò)服務(wù)、服務(wù)器和網(wǎng)絡(luò)機器等狀態(tài)孩饼。
使用各種 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle或 IBM DB2儲存資料髓削。Server 端基于 C語言、Web 管理端 frontend則是基于 PHP所制作的镀娶。Zabbix 可以使用多種方式監(jiān)視立膛。可以只使用 Simple Check 不需要安裝 Client 端梯码,亦可基于 SMTP 或 HTTP ... 各種協(xié)定做死活監(jiān)視宝泵。在客戶端如 UNIX, Windows 中安裝 之后,可監(jiān)視 CPU Load轩娶、網(wǎng)絡(luò)使用狀況儿奶、硬盤容量等各種狀態(tài)。而就算沒有安裝 Agent 在監(jiān)視對象中鳄抒,Zabbix 也可以經(jīng)由 SNMP闯捎、TCP椰弊、ICMP、利用 IPMI瓤鼻、SSH秉版、telnet對目標(biāo)進行監(jiān)視。另外茬祷,Zabbix 包含 XMPP等各種 Item 警示功能清焕。
實驗環(huán)境:
centos 7.3 (zabbix server) ip:192.168.18.131
centos 7.3 (zabbix agent) ip:192.168.18.105
zabbix 3.4(這里安裝的是獲取官網(wǎng)的yum倉庫,從yum安裝)
確保已安裝zabbix_server 端和zabbix_agent 端(一個或多個agent端)
一祭犯、申請微信企業(yè)號
注意登錄以后我們要獲取三個重要的參數(shù):
分別是:
CropID粥惧、Secret、agentidW钪选(以后編寫腳本所用到影晓,以便能從Linux傳信息到微信中)
CropID:
Secret、agentid:
這里的Secret檩禾、agentid不會默認(rèn)就生成挂签,是由自己創(chuàng)建企業(yè)應(yīng)用得來!
到這里我們獲取到了三個關(guān)鍵的參數(shù)盼产!
二饵婆、腳本實現(xiàn)。
1.創(chuàng)建腳本戏售。
[root@master alertscripts]#vim weixin.sh
#!/bin/bash
CropID='wwXXXXXXXXX883' //這里填寫企業(yè)CorpID
Secret='WR_XXXXXXXXXXXX17I9mt14' //這里填寫應(yīng)用Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl $GURL -H "DNT: 1" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 BIDUBrowser/8.1 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "X-DevTools-Emulate-Network-Conditions-Client-Id: B546FC80-414C-403F-95F0-EB0F70E58EF7" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" --compressed | awk -F \" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int appId=1000002 //這里填寫應(yīng)用AgentID
local userId=$1
local partyId=2
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":"'"$appId"\"",\n"
printf '\t"text":{\n'
printf '\t\t"content":"'"$msg"\"
printf '\n\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
body $1 $2 $3
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL //這里傳三個參數(shù)
2.測試侨核。
賦予腳本執(zhí)行權(quán)限,屬主屬組灌灾,正確的路徑搓译!
[root@master alertscripts]#chmod +x weixin.sh
[root@master alertscripts]#chown zabbix.zabbix weixin.sh
[root@master alertscripts]#pwd
/usr/lib/zabbix/alertscripts
這里出現(xiàn)errcode":0,"errmsg":"ok","invaliduser":"123",表示沒有問題锋喜!看下微信企業(yè)端是否收到消息些己!如果收到,則表示腳本可正常使用嘿般!
這里出現(xiàn)則表示企業(yè)微信可成功接收消息段标!
三、zabbix 設(shè)置炉奴!
1.登錄zabbix逼庞,進入管理的報警媒介變量,創(chuàng)建報警媒介瞻赶!
這里填入按個腳本參數(shù)赛糟。
{ALTER.SENDTO} # 發(fā)送給誰派任,該參數(shù)在郵件告警中有作用,但微信告警中沒有
{ALTER.SUBJECT} # 告警標(biāo)題璧南,該參數(shù)在郵件告警中有作用吨瞎,但微信告警中沒有
{ALTER.MESSAGE} # 告警內(nèi)容,在微信告警中有用
2.創(chuàng)建動作
創(chuàng)建動作之前首先添加監(jiān)控主機穆咐!
填寫主機名稱、可見的名稱字旭、群組对湃、agent代理程序的接口!
模板先可用內(nèi)建的模板使用測試遗淳。[Template OS Linux]
添加動作拍柒!
在zabbix的控制面板查看zabbix狀態(tài)!
出現(xiàn)以上信息基本沒什么為題了屈暗!
四拆讯、測試
1.讓zabbix的后端服務(wù)器關(guān)機看是否能發(fā)送警報!
web界面顯示動作已完成养叛,并發(fā)送了報警信息种呐!我們查看手機客戶端是否接收到消息!
這里已成功接收弃甥!
2.開啟zabbix的后端服務(wù)器看是否能發(fā)送提醒消息爽室!
已成功發(fā)送警報!
Trigger status:由原來的PROBLEM 變?yōu)镺K淆攻!
到這里zabbix的微信告警已成功實現(xiàn)阔墩!也可以使用郵件發(fā)送警報!
如有不足瓶珊,請多多指教啸箫!