1. 程式人生 > >zabbix3.4實現qq郵箱報警

zabbix3.4實現qq郵箱報警

需要做zabbix自動報警   
於是想到了mailx作為客戶端,使用SMTP傳送郵件;測試了半天才發現的阿里為了防止濫發郵件,把出口的25端
口給封了,封了!然後現在擺在面前的只有2條路,1、申請阿里雲解封;2、使用TSL加密協議,也就是465埠;
出於伺服器安全考慮,這裡使用465埠傳送

進入正題:

一、配置mailx使用SMTP傳送郵件:
1、安裝mailx;這裡直接使用yum install mailx -y 進行安裝即可;

 maiLx   -v 可以檢視版本,好像需要12.0版本以上的才支援配置外部郵件。                                                                              

2、在/etc/mail.rc配置檔案中,在最後面輸入以下內容:auth-passwd 不要填寫密碼,填授權碼

set [email protected]set smtp=smtp.163.comset [email protected]set smtp-auth-password=passwdset smtp-auth=loginqq郵箱的配置 

1、郵箱需要開啟SMTP功能,每個郵箱的開啟方法都大同小異;
2、現在大部分郵箱使用SMTP會讓你啟動一個授權碼來代替郵箱密碼
具體各個郵箱開啟授權碼的方式可以直接百度;
測試是否傳送成功:
mailx -s "郵箱測試" [email protected] < message_file 測試郵件一旦成功,收件箱會馬上收到郵件,如果沒有收到,則等一會可以看到shell介面的錯誤提示; 上面配置的是簡單的使用25埠的SMTP傳送郵件的功能,一般情況下我們使用這個就足夠了,這個辦法 在網上也很多配置說明,這裡就不再浪費時間了,下面我們講重點,使用TSL傳送郵件; 前面說了,阿里雲把25埠封了,去申請解封也比較麻煩,於是就想到了用TSL方式,繞過25埠傳送郵件; TSL也就是使用SSL加密的方式,使用465或者其他埠來發送郵件,現在大部分郵箱都支援SSL,具體SSL的埠 地址,也可以查百度,這裡是以126郵箱為準,126郵箱使用的是465或者994埠; 下面是詳細的配置過程: 1、軟體要求:openssl、mailx 12.0以上; 2、既然使用的是SSL協議,那當然是要有證書的了,下面是獲取證書的操作;

mkdir -p /zabbix/.certs/echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crtcertutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crtcertutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

為了防止出現前文所說的傳送郵件警告提示,還需要進入郵箱SSL證書存放目錄/root/.certs裡執行如下命令:

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

返回如下提示即可:

**Notice: Trust flag u is set automatically if the private key is present.**

這是為了信任證書的標記操作。

至此,已經完成了mailx結合QQ郵箱傳送系統郵件的部署了,通過命令列傳送測試郵件試試吧:

按照上面操作,只要不報錯,就是正常的,我們會在/root/.certs下面看到幾個證書檔案

3、證書配置好了,下面我們就要來配置mail.rc配置檔案了,和最開始的不同,這裡我們就需要配置和TSL相關的東西了

set [email protected]set smtp=smtps://smtp.qq.com:465set [email protected]set smtp-auth-password=*******************   ## 你在郵箱生成的授權碼set smtp-auth=loginset ssl-verify=ignoreset nss-config-dir=/home/zabbix/.certs

其實就多了幾個配置stmp前面加了stmps://指定協議型別,後面加上埠號;
啟動ssl協議 ,下面指定ssl證書所在目錄,就這樣。
配置OK了之後,測試傳送郵件;
測試能收到郵件就OK,說明發送沒問題,至於具體會出現什麼報錯,可以根據報錯的內容進行谷歌;
我這裡在傳送郵件的時候會提示一個證書不信任的問題,因為不影響正常傳送郵件,所以選擇忽略;

關於其他型別的郵箱這裡沒有做測試,QQ郵箱據說比這個好簡單。其他的深入研究這裡因為時間關係,沒有太多的
技術含量,只是在查詢資料的過程中,發現沒有一個完整的案例,特意將自己的操作過程寫下來;