實(shí)現(xiàn)郵件報(bào)警網(wǎng)頁(yè)版郵箱中開(kāi)啟 POP3/SMTP/IMAP
生成授權(quán)碼并記錄
Server端安裝配置郵件服務(wù)器1、Yum安裝郵件服務(wù)器 yum -y install mailx dos2unix mailx -V 2、 編輯郵件配置 vim /etc/mail.rc set bsdcompat set from=S13467005509@163.com smtp=smtp.163.com set smtp-auth-user=S13467005509@163.com smtp-auth-password=上面生成的授權(quán)碼 set smtp-auth=login 3、測(cè)試是否有效 echo "blingbling" | mail -s "test mail" S13467005509@163.com 郵箱中查看結(jié)果 4、引用郵件腳本 vim /usr/local/zabbix/etc/zabbix_server.conf AlerScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #結(jié)尾插入 vim /usr/local/zabbix/share/zabbix/alertscripts/mail.sh #!/bin/bash #export.UTF-8 bt=$2 #定義發(fā)件標(biāo)題和收件人 sjr=$1 FILE=/tmp/mailtmp.txt #定義文件路徑 echo "$3" >$FILE /usr/bin/dos2unix -k $FILE #使用 dos2unix 命令轉(zhuǎn)換字符,避免收到郵件不顯示正常郵件內(nèi)容而出現(xiàn) ATT00001.bin 的錯(cuò)誤; 5、增加權(quán)限并測(cè)試 chmod 777 /usr/local/zabbix/share/zabbix/alertscripts/mail.sh chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/mail.sh touch /tmp/mailtmp.txt chmod 777 /tmp/mailtmp.txt chown zabbix.zabbix /tmp/mailtmp.txt sh /usr/local/zabbix/share/zabbix/alertscripts/mail.sh S13467005509@qq.com "blingbling" "bingbing" #前者標(biāo)題,后者內(nèi)容
實(shí)現(xiàn)釘釘報(bào)警注冊(cè)企業(yè)版釘釘并進(jìn)入釘釘中新建自定義機(jī)器人記錄所需webhook
server端 添加釘釘消息發(fā)送腳本1、下載相關(guān)依賴 yum -y install python-pip 2、添加腳本及權(quán)限 vim /usr/local/zabbix/share/zabbix/alertscripts/Email.dingding.py #!/usr/bin/env python #coding:utf-8 #zabbix 釘釘報(bào)警 import requests,json,sys,os,datetime webhook="https://oapi.dingtalk.com/robot/send?access_token=4b974339e84a3dfba612a4dae75461797f036566df6c558e47c35ce6bbc28ded" user=sys.argv[1] text=sys.argv[3] data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False } } headers = {'Content-Type': 'application/json'} x=requests.post(url=webhook,data=json.dumps(data),headers=headers) if os.path.exists("/tmp/zabbix_dingding.log"): f=open("/tmp/zabbix_dingding.log","a+") else: f=open("/tmp/zabbix_dingding.log","w+") f.write("\n"+"--"*30) if x.json()["errcode"] == 0: f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+" 發(fā) 送 成 功"+"\n"+str(text)) f.close() else: f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + " 發(fā)送失敗" +"\n" + str(text)) f.close() chmod +x /usr/local/zabbix/share/zabbix/alertscripts/Email.dingding.py 3、測(cè)試 python /usr/local/zabbix/share/zabbix/alertscripts/Email.dingding.py 13467005509 test zabbix”blingbling“ #前者腳本類(lèi)型,zabbix 機(jī)器人關(guān)鍵字 后者內(nèi)容
實(shí)現(xiàn)微信報(bào)警注冊(cè)企業(yè)版微信并登陸網(wǎng)頁(yè)后臺(tái)1、我的企業(yè)中記錄企業(yè)ID 添加告警應(yīng)用記錄Agenttid及Secret添加部門(mén)1、添加子部門(mén) 2、移入用戶 3、記錄部門(mén)ID server端 添加告警腳本1、編寫(xiě)腳本并加權(quán)限 vim /usr/local/zabbix/share/zabbix/alertscripts/Email.weixin.sh #!/bin/bash CorpID='ww9820802e5b147bd3' #我的企業(yè)下面的CorpID Secret='yxPTWR0c7ymKcmxIy0IqjkwQ-h7PnrGme_IF4nknYs4' #創(chuàng)建的應(yīng)用那有Secret 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=1000003 #改為AgentId 在創(chuàng)建的應(yīng)用那里看 local UserID="SunLongFei" #發(fā)送的用戶位于$1的字符串 local PartyID=4 #第一步看的通訊錄中的部門(mén)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 '\t\t"content": "'"$Msg"\""\n" printf '\t},\n' printf '\t"safe":"0"\n' printf '}\n' } /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL 2、測(cè)試 sh /usr/local/zabbix/share/zabbix/alertscripts/Email.weixin.sh blingbling web端添加郵件,釘釘,微信相關(guān)告警信息1、管理 > 報(bào)警媒介類(lèi)型 > 創(chuàng)建 2、添加相關(guān)告警 郵件 輸入創(chuàng)建的報(bào)警媒介類(lèi)型的名稱(chēng),指定類(lèi)型為腳本的方式,并且輸入 zabbix_server 端/usr/local/zabbix/share/zabbix/alertscripts 目錄下的腳本名稱(chēng),確保腳本的歸屬是 zabbix,并且腳本的權(quán)限是 777,下邊設(shè)置腳本參數(shù),也就是發(fā)送郵件,微信,釘釘的語(yǔ)法:腳本 收件人 標(biāo)題 內(nèi)容,必須嚴(yán)格按照此標(biāo)準(zhǔn)填寫(xiě);
$1 {ALERT.SENDTO} $2 {ALERT.SUBJECT} $3 {ALERT.MESSAGE}
微信
釘釘 3、管理 > 用戶 > 點(diǎn)擊Admin 4、報(bào)警媒介 > 添加類(lèi)型及收件人 郵件(下方改為郵件警告) 微信 釘釘 5、成功后點(diǎn)擊更新 6、配置 > 動(dòng)作 > 創(chuàng)建動(dòng)作 7、動(dòng)作名稱(chēng)建議英文 8、三者添加的操作及發(fā)送到的用戶如出一轍,如有需要,另自行修改 警告模版 服務(wù)器:{HOST.NAME}發(fā)生: {TRIGGER.NAME}故障! { 告警主機(jī):{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項(xiàng)目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級(jí):{TRIGGER.SEVERITY} 當(dāng)前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時(shí)間:{EVENT.DATE} {EVENT.TIME} 事件 ID:{EVENT.ID}
恢復(fù)操作模版 服務(wù)器:{HOST.NAME}: {TRIGGER.NAME}已恢復(fù)! { 告警主機(jī):{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項(xiàng)目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級(jí):{TRIGGER.SEVERITY} 當(dāng)前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時(shí)間:{EVENT.DATE} {EVENT.TIME} 恢 復(fù) 時(shí) 間 :{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續(xù)時(shí)間:{EVENT.AGE} 事件 ID:{EVENT.ID} } 添加用戶后點(diǎn)擊下方添加如上下圖所示 確認(rèn)操作模版 服務(wù)器:{HOST.NAME}: 報(bào)警確認(rèn) { 確認(rèn)人:{USER.FULLNAME} 時(shí)間:{ACK.DATE} {ACK.TIME} 確認(rèn)信息如下: "{ACK.MESSAGE}" 問(wèn)題服務(wù)器 IP:{HOSTNAME1} 問(wèn)題 ID:{EVENT.ID} 當(dāng)前的問(wèn)題是: {TRIGGER.NAME} }
完成效果圖 測(cè)試三者報(bào)警可用性cd /boot/ dd if=/dev/zero of=test bs=1M count=1800
恢復(fù)后繼續(xù)查看rm -rf test
至此搭建測(cè)試完成 |
|
來(lái)自: 小樣樣樣樣樣樣 > 《待分類(lèi)》