1. 程式人生 > >zabbix3.4實現sendEmail郵件報警

zabbix3.4實現sendEmail郵件報警

一、安裝軟體

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

 

建立目錄

mkdir /usr/local/bin

解壓軟體

tar zxf sendEmail-v1.56.tar.gz -C /usr/src

進入目錄

cd /usr/src/sendEmail-v1.56

複製檔案,並設定許可權

cp -a sendEmail /usr/local/bin

chmod +x /usr/local/bin/sendEmail

安裝元件

yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

 

進入zabbix自定義的指定目錄

可以檢視zabbix_server.conf配置檔案AlertScriptsPath變數是如何定義的。

cd /usr/local/zabbix/alertscripts/

編輯指令碼

 cat sendmail.sh
#! /bin/bash
#
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail  -f [email protected] -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 
[email protected]
-xp wb513692 -m "$body"
View Code

說明:

上面有4個地方我用紫色加粗字體表示了

[email protected]main.com 表示發件人郵箱

smtp.exmail.qq.com 表示郵箱的smtp伺服器,因為我是用的騰訊企業郵箱。如果是其他郵箱,需要修改

password 表示發件人郵箱密碼

編輯完成後,給指令碼許可權

chmod +x sendEmail.sh

chown zabbix.zabbix sendEmail.sh

手動執行一次指令碼,後面的引數分別對應接收人,主題,內容

./sendEmail.sh [email protected] test 123

登入[email protected]的賬戶,檢視郵件是否可以收到

如果指令碼執行沒有報錯,收不到郵件的話,請檢查linux網路問題,iptables、selinux是否關閉。

在測試指令碼傳送郵件失敗出現如下問題:

sendEmail報錯:at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm

centos7.2預設是 perl的版本是5.16,centos6.5的是5.10,後來把7的版本換成5.10,就可以正常發郵件了。

#### perl安裝
     wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
     tar -zxf perl-5.10.0.tar.gz
     cd perl-5.22.0
     ./configure.gnu -des -Dprefix=/usr/local/perl
     echo $?
     make
     make test
     make install
     mv /usr/bin/perl /usr/bin/perl.bak
     ln -s /usr/local/perl/bin/perl /usr/bin/perl
     perl -v
安裝perl

 

二、進入zabbix安裝介面配置

  1.點選管理->報警媒介型別 點選最右邊的建立媒體型別

    

輸入指令碼名稱,型別選擇指令碼

新增以下3個引數,分別對應sendEmail.sh指令碼需要的3個引數:收件人地址、主題、詳細內容

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

 

 

 

2. 點選Admin使用者

 

 

 

 

 選擇郵件報警

 

3.點選使用者群組

 

 

點許可權->新增

 

 

 

 

 

 

  選擇所有

 

 

點選更新

點選配置->動作 點選預設的動作

 

 點選動作->編輯

 

 zabbix服務端出現郵件傳送失敗 

Zabbix監控之郵件傳送失敗-smtp-server: 錯誤程式碼550與535

1. 查詢兩個郵箱的配置

發現兩個郵箱的POP3/SMTP/IMAP的狀態不一致,於是開通[email protected]的客戶端授權密碼。

2. 開通客戶端授權密碼

  

 

   

 

修改持續時間為60秒

修改步驟為3,表示觸發3次動作

選擇使用者Admin

選擇僅送到sendEmail.sh

點選更新

解釋:預設的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh指令碼發生報警郵件給Admin使用者和zabbix administrator組。

假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限傳送

間隔就是預設持續時間60秒。那麼一個小時,就會發送60封郵件。