Centos7 Zabbix3.4郵件告警配置(解決郵件內容為xx.bin附件的問題)
一、新增監控Linux主機
1、配置-主機-建立主機
2、填寫資訊
3、新增模板
4、檢視狀態
二、配置郵箱
系統環境:
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
1、安裝郵件傳送工具mailx
如果安裝了其他郵件傳送工具,先關閉
service sendmail stop ##關閉sendmail systemctl disable sendmail.service ##禁止開機啟動sendmail service postfix stop ##關閉postfix systemctl disable postfix.service ##禁止開機啟動postfix
[[email protected] ~]# yum install mailx
2、配置Zabbix服務端外部郵箱,開啟檔案vim /etc/mail.rc 如果mail.rc檔案沒有,就手動建立,然後新增如下內容:
[[email protected] ~]# vim /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com #163郵箱要開啟smtp授權
set [email protected] #認證使用者
set smtp-auth-password=xxx #認證密碼
3、測試郵件傳送
[[email protected] ~]# echo "zabbix test mail" | mail -s "zabbix" [email protected]
4、編寫傳送郵件指令碼
1)安裝dos2unix轉換工具( 解決發出的郵件是xx.bin附件格式的問題 ),如果這裡的下載連結失效就到阿里官網查詢
[[email protected] ~]# rpm -ivh https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm 獲取https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm 準備中... ################################# [100%] 正在升級/安裝... 1:dos2unix-6.0.3-7.el7 ################################# [100%]
如下接受郵件顯示,無法顯示文字
2)修改郵件傳送指令碼內容
為什麼我們會在這個路徑下面建立這個指令碼呢,這是在我們的zabbix_serber.conf檔案中配置的
AlertScriptsPath=/usr/lib/zabbix/alertscripts
所以你不想將這個指令碼放在這個目錄下面,需要修改服務端的配置檔案中的AlertScriptsPath的值
[[email protected] ~]# vim /usr/lib/zabbix/alertscripts/sendmail.sh
#!/bin/bash
#export.UTF-8 ###解決傳送的中文變成了亂碼的問題
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE ###解決了傳送的郵件內容變成附件的問題。
/bin/mail -s "$2" $1 < $FILE
3)建立臨時檔案並授權,這裡確保你的使用者存在zabbix
[[email protected] ~]# touch /tmp/mailtmp.txt
[[email protected] ~]# chown zabbix.zabbix /tmp/mailtmp.txt
4)上面的這三個引數是接收從Web頁面傳遞的資訊:
$1:收件人郵箱地址;
$2:郵件標題;
$3:郵件內容
5)給指令碼新增許可權,要不發生告警的時候郵件無法正常傳送出去
[[email protected]ocalhost ~]# chmod 755 /usr/lib/zabbix/alertscripts/sendmial.sh
5、管理-報警媒介型別-建立媒體型別
6、填寫內容
新增以下3個引數,分別對應sendmail.sh指令碼需要的3個引數:收件人地址、主題、詳細內容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
如果在3.0中不新增這三個引數會報錯,因為在3.0以後zabbix允許自定義引數了,所以不會預設傳遞引數,在2.0的時候會預設傳遞三個引數,所以在3.0如果不寫這三個引數會報錯。
7、給使用者新增報警媒介
8、設定告警條件:配置-動作-建立動作
1)設定條件和名稱
2)填寫接收人,預設資訊,使用者是剛填寫好的接收郵件人,MyEmail也是剛建立的
故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主機:{HOST.NAME}
主機地址:{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
事件程式碼:{EVENT.ID}
解釋:預設的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh指令碼發生報警郵件給Admin使用者和zabbix administrator組。假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限傳送 間隔就是預設持續時間60秒。那麼一個小時,就會發送60封郵件。
3)恢復操作
故障解除:{TRIGGER.STATUS}: {TRIGGER.NAME}
恢復主機:{HOST.NAME}
主機地址:{HOST.IP}
恢復時間:{EVENT.DATE} {EVENT.TIME}
恢復等級:{TRIGGER.SEVERITY}
恢復資訊:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
事件程式碼:{EVENT.ID}
到這我們的郵件報警配置就完成了,這是隻要我們設定的觸發器觸發,就會自動給我傳送報警郵件。
9、測試郵件告警
1)開啟觸發器
2)可以將zabbix自帶的模板中的對可用記憶體的監控中的觸發器的臨界值改為大於20,進入模板列表
改之後
3)修改更新時間,使其更快檢測
4)檢視告警
5)郵箱確認
如果傳送郵件有問題就重啟服務端和zabbix-server 和httpd服務,客戶端重啟zabbix-agent服務