實作郵件報警
網頁版郵箱中開啟 POP3/SMTP/IMAP

生成授權碼并記錄


Server端安裝配置郵件服務器
1、Yum安裝郵件服務器
yum -y install mailx dos2unix mailx -V

2、 編輯郵件配置
vim /etc/mail.rc set bsdcompat set [email protected] smtp=smtp.163.com set [email protected] smtp-auth-password=上面生成的授權碼 set smtp-auth=login
3、測驗是否有效
echo "blingbling" | mail -s "test mail" [email protected]
郵箱中查看結果

4、參考郵件腳本
vim /usr/local/zabbix/etc/zabbix_server.conf AlerScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #結尾插入 vim /usr/local/zabbix/share/zabbix/alertscripts/mail.sh #!/bin/bash #export.UTF-8 bt=$2 #定義發件標題和收件人 sjr=$1 FILE=/tmp/mailtmp.txt #定義檔案路徑 echo "$3" >$FILE /usr/bin/dos2unix -k $FILE #使用 dos2unix 命令轉換字符,避免收到郵件不顯示正常郵件內容而出現 ATT00001.bin 的錯誤;
/bin/mail -s "$bt" "$sjr" <$FILE #執行郵件發送命令
5、增加權限并測驗
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 [email protected] "blingbling" "bingbing" #前者標題,后者內容


實作釘釘報警
注冊企業版釘釘并進入

釘釘中新建自定義機器人


記錄所需webhook

server端 添加釘釘訊息發送腳本
1、下載相關依賴
yum -y install python-pip
pip -V pip install requests

2、添加腳本及權限
vim /usr/local/zabbix/share/zabbix/alertscripts/Email.dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix 釘釘報警
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=https://www.cnblogs.com/sun-long-fei/archive/2020/11/25/{"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=https://www.cnblogs.com/sun-long-fei/archive/2020/11/25/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)+" "+" 發 送 成 功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + " 發送失敗" +"\n" + str(text))
f.close()
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/Email.dingding.py
3、測驗
python /usr/local/zabbix/share/zabbix/alertscripts/Email.dingding.py 13467005509 test zabbix”blingbling“ #前者腳本型別,zabbix 機器人關鍵字 后者內容

實作微信報警
注冊企業版微信并登陸網頁后臺
1、我的企業中記錄企業ID

添加告警應用


記錄Agenttid及Secret

添加部門
1、添加子部門

2、移入用戶


3、記錄部門ID

server端 添加告警腳本
1、撰寫腳本并加權限
vim /usr/local/zabbix/share/zabbix/alertscripts/Email.weixin.sh
#!/bin/bash
CorpID='ww9820802e5b147bd3' #我的企業下面的CorpID
Secret='yxPTWR0c7ymKcmxIy0IqjkwQ-h7PnrGme_IF4nknYs4' #創建的應用那有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 在創建的應用那里看
local UserID="SunLongFei" #發送的用戶位于$1的字串
local PartyID=4 #第一步看的通訊錄中的部門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
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/Email.weixin.sh
2、測驗
sh /usr/local/zabbix/share/zabbix/alertscripts/Email.weixin.sh blingbling

web端添加郵件,釘釘,微信相關告警資訊
1、管理 > 報警媒介型別 > 創建

2、添加相關告警
郵件
輸入創建的報警媒介型別的名稱,指定型別為腳本的方式,并且輸入 zabbix_server 端/usr/local/zabbix/share/zabbix/alertscripts 目錄下的腳本名稱,確保腳本的歸屬是 zabbix,并且腳本的權限是 777,下邊設定腳本引數,也就是發送郵件,微信,釘釘的語法:腳本 收件人 標題 內容,必須嚴格按照此標準填寫;$1 {ALERT.SENDTO}
$2 {ALERT.SUBJECT}
$3 {ALERT.MESSAGE}

微信

釘釘

3、管理 > 用戶 > 點擊Admin

4、報警媒介 > 添加型別及收件人
郵件(下方改為郵件警告)

微信

釘釘

5、成功后點擊更新

6、配置 > 動作 > 創建動作

7、動作名稱建議英文

8、三者添加的操作及發送到的用戶如出一轍,如有需要,另自行修改
警告模版
服務器:{HOST.NAME}發生: {TRIGGER.NAME}故障!
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控專案:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警資訊:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件 ID:{EVENT.ID}
}

恢復操作模版
服務器:{HOST.NAME}: {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}
}

添加用戶后點擊下方添加如上下圖所示
確認操作模版
服務器:{HOST.NAME}: 報警確認
{
確認人:{USER.FULLNAME}
時間:{ACK.DATE} {ACK.TIME}
確認資訊如下:
"{ACK.MESSAGE}"
問題服務器 IP:{HOSTNAME1}
問題 ID:{EVENT.ID}
當前的問題是: {TRIGGER.NAME}
}

完成效果圖

測驗三者報警可用性
cd /boot/ dd if=/dev/zero of=test bs=1M count=1800



恢復后繼續查看
rm -rf test


至此搭建測驗完成
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227712.html
標籤:其他
上一篇:DC靶機1-9合集
