一、Yum安裝郵件服務器java
yum -y install mailx dos2unix mailx -V
二、 編輯郵件配置python
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=上面生成的受權碼 set smtp-auth=login
三、測試是否有效web
echo "blingbling" | mail -s "test mail" S13467005509@163.com
郵箱中查看結果json
四、引用郵件腳本vim
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 #執行郵件發送命令
五、增長權限並測試api
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" #前者標題,後者內容
一、下載相關依賴bash
yum -y install python-pip
pip -V pip install requests
二、添加腳本及權限服務器
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={ "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)+" "+" 發 送 成 功"+"\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
三、測試微信
python /usr/local/zabbix/share/zabbix/alertscripts/Email.dingding.py 13467005509 test zabbix」blingbling「 #前者腳本類型,zabbix 機器人關鍵字 後者內容
一、個人企業中記錄企業IDapp
一、添加子部門
二、移入用戶
三、記錄部門ID
一、編寫腳本並加權限
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
二、測試
sh /usr/local/zabbix/share/zabbix/alertscripts/Email.weixin.sh blingbling
一、管理 > 報警媒介類型 > 建立
二、添加相關告警
郵件
$1 {ALERT.SENDTO} $2 {ALERT.SUBJECT} $3 {ALERT.MESSAGE}
微信
釘釘
三、管理 > 用戶 > 點擊Admin
四、報警媒介 > 添加類型及收件人
郵件(下方改成郵件警告)
微信
釘釘
五、成功後點擊更新
六、配置 > 動做 > 建立動做
七、動做名稱建議英文
八、三者添加的操做及發送到的用戶一模一樣,若有須要,另自行修改
警告模版 服務器:{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