1. 程式人生 > >配置zabbix使用mailx實現郵件報警

配置zabbix使用mailx實現郵件報警

說明:

Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經新增,Zabiix監控執行正常。

實現目的:

在Zabbix服務端設定郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動傳送報警郵件到指定郵箱。

具體操作:

以下操作在Zabbix監控服務端進行

備註:Zabbix監控服務端

作業系統:CentOS

使用外部郵箱賬號傳送報警郵件設定:

一、關閉sendmail或者postfix

service sendmail stop #關閉

chkconfig sendmail off #禁止開機啟動

service postfix
stop chkconfig postfix off

備註:

使用外部郵箱賬號時,不需要啟動sendmail或者postfix

如果在sendmail或者postfix啟動的同時使用外部郵箱傳送報警郵件,首先會讀取外部郵箱

配置資訊。

二、安裝郵件傳送工具mailx

yum install mailx #安裝

CentOS 5.x 編譯安裝mailx,直接yum安裝的mailx版本太舊,使用外部郵件傳送會有問題。

yum remove mailx #解除安裝系統自帶的舊版mailx

下載mailx:   ## https://sourceforge.net/projects/heirloom/
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2 tar jxvf mailx-12.4.tar.bz2 #解壓 cd mailx-12.4 #進入目錄 make #編譯 make install UCBINSTALL=/usr/bin/install #安裝 ln -s /usr/local/bin/mailx /bin/mail #建立mailx到mail的軟連線 ln -s /etc/nail.rc /etc/mail.rc #建立mailx配置檔案軟連線

 三、配置Zabbix服務端外部郵箱

vi /etc/mail.rc #編輯,新增以下資訊

set [email protected]

set smtp=smtp.163.com   //添加發送人、傳送伺服器

set [email protected]

set smtp-auth-password=123456   //添加發送人的郵箱和登入密碼。

set smtp-auth=login  

:wq! #儲存退出

echo "zabbix test mail" |mail -s "zabbix" [email protected]

#測試傳送郵件,標題zabbix,郵件內容:zabbix test mail,傳送到的郵箱:[email protected]或者[email protected],傳送簡訊的時候要在139郵箱上面開啟簡訊提醒。這裡我就不說了,自己百度去。

#這時候,郵箱[email protected]會收到來自[email protected]的測試郵件

四、配置Zabbix服務端郵件報警

1、開啟Zabbix

管理-示警媒介型別-建立媒體型別

注意:如果zabbix版本高於3.0則需要另外加3個引數即可

#參考 https://www.zabbix.com/documentation/3.4/zh/manual/config/notifications/media/script

 名稱:Email

型別:指令碼

指令碼名稱:sendmail.sh

已啟用:勾選

2、設定Zabbix使用者報警郵箱地址

可以新增163郵箱也可以新增139郵箱。

型別:Sendmail

收件人:[email protected]

其他預設即可,也可
以根據需要設定

狀態:已啟用

存檔

3、設定Zabbix觸發報警的動作

組態-動作-建立動作

 

名稱:Action-Email

預設接收人:故障{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}

  • 已啟用:打鉤

切換到操作選項

新的

操作型別:送出資訊

送到使用者:新增

預設資訊:打鉤

選擇使用者:Admin

選擇

僅送到:Sendmail

存檔

4、新增Zabbix服務端郵件傳送指令碼

cd /usr/local/zabbix/share/zabbix/alertscripts #進入指令碼存放目錄

vi sendmail.sh #編輯,新增以下程式碼

#!/bin/bash
to=$1
subject=$2
body=$3

cat <<EOF | sudo /usr/bin/mail  -s "$subject" "$to"
$body
EOF


:wq! #儲存退出

chown -R zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/*

zabbix_server.conf 檔案中加入指令碼的相對路徑

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

#設定指令碼所有者為zabbix使用者

chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh

#設定指令碼執行許可權

#授權zabbix 執行mail許可權
vi /etc/sudoers #編輯sudoers檔案

zabbix ALL=(root) NOPASSWD: /usr/bin/mail
:wq! #儲存退出

 

五、測試Zabbix報警

關閉Zabbix客戶端服務

service zabbix_agentd stop

檢視你的[email protected]郵箱,會收到報警郵件

再開啟Zabbix客戶端服務

service zabbix_agentd start

 

檢視你的[email protected]郵箱,會收到恢復郵件

使用外部郵箱賬號傳送報警郵件設定完成。

至此,Zabbix郵件報警設定完成。