記錄一次zabbix郵件告警搭建過程和問題處理


(不是一天寫成blog,有截圖上的時間差)

流程:

1.配置zabbix-server服務端mailx,並在zabbix-server.conf配置文件的腳本路徑中添加郵件腳本;

2.配置web界面選項的動作報警媒介類型

3.在用戶中添加告警媒介,設置類型,收件人等選項

首先,在zabbix-server客戶端安裝mailx,先停掉postfix

systemctl stop postfix.service
yum install mailx -y

在配置文件最后面編寫發送使用的配置郵件:

vim /etc/mail.rc 

set bsdcompat set from=yourmail@163.com set smtp=smtp.163.com set smtp-auth-user=yourmail@163.com set smtp-auth-password=163郵箱授權碼 set smtp-auth=login

163郵箱授權碼獲得方式:

需要手機發送短信收到之后網頁163郵箱確定會會出現一次,記住在添加到配置中去。。

測試,自己給自己發一下吧:

echo "yourmail@163.com test" | mailx -s "zabbix-alert" yourmail@163.com 

測試 成功了!!!

===

創建郵件發送腳本

先看下zabbix-server配置文件查看下發送腳本的目錄

找到alertscripts目錄,

編寫腳本mail.sh,並賦予執行權限x,

#!/bin/bash
echo "use mailx to send mail"
echo "$3" | mail -s "$2" "$1"

OK,,

配置報警媒介回到zabbix-server 界面,在告警媒介添加新的告警

 

 腳本名稱要和配置文件中的一樣,,點擊測試

 要添加發送的郵箱收告警信息,成功如下圖,

 配置動作

緊接着配置zabbix界面上的動作選項,

動作選項中,在子選項條件選項中添加對應的觸發條件,我設置的是主機web1的nginx宕機為觸發條件,也可以添加一個主機組,

 

操作選項中,消息內容要把需要的報警信息填進去,會在郵件中顯示,操作細節必須填寫,要設定發送郵件給定的主機或主機組,恢復操作細節也是,但也可以不寫,不寫在事故恢復時,不會發郵件告訴我事故已經沒有了,,

操作-->消息內容:

故障{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}

看下演示:

然后在用戶中添加告警媒介

 當監控主機web1的nginx停掉后,zabbix-server會發送郵件通知。

===============================================================

報錯集合:

1.碰到的錯誤如圖,發送郵件的時候顯示以失敗,並報錯No media defined for user.

 

 原因如圖,我在玩配置用戶報警媒介的時候類型忘記選擇自定義的郵件告警,將類型選擇郵件告警,正常發送:

 2.這個也不是錯誤

就是收到的郵件是個bin文件,需要下載之后改成txt類型查看,怎么解決?

解決了!!

mail.sh腳本配置文件:

#!/bin/bash
#export LANG=zh_CN.UTF-8

#dos2unix -k "$3"
#echo "use mailx to send mail"
#echo "$3" | mail -s "$2" "$1"


#export.UTF-8 ###解決發送的中文變成了亂碼的問題 
#FILE=/tmp/zabbix_mail.txt 
#echo "$3" >$FILE
#dos2unix -k $FILE ###解決了發送的郵件內容變成附件的問題。 
#/usr/bin/mail -s "$2" $1 < $FILE
SENT_TO=$1
SENT_SUBJECT=$2
SENT_CONTENT="/tmp/alert_$$.tmp"

echo "$3">$SENT_CONTENT
dos2unix $SENT_CONTENT
mailx -s "SENT_SUBJECT" $SENT_TO<$SENT_CONTENT

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM