雲伺服器郵件報警詳細步驟
我司用的西部數碼雲伺服器做郵件報警,我看阿里雲也是屏敝了25埠。
所以打臉的說,我做了兩天才搞通。
做這個報警,我反正操碎了心,微信有註冊過公眾號,所以微信做了一天多都沒做通,聽說跟微信公眾號有衝突,搞不明白,轉戰郵件。
sendEmail預設埠為25,我不會繞25,一系列報錯:Nov 21 16:58:05 ebs-49310 sendEmail[31711]: ERROR => Timeout while connecting to smtp.exmail.qq.com:25 There was no response after 60 seconds.
報錯還有如下情況:smtp-server: 535 Error: ȫʹԃ˚ȨëµȂ¼¡£Ъȩȫ¿´:
/root/dead.letter" 11/293
. . . message not sent.
如果你也遇到以上情況,那麼試試下面吧
首先你得有郵箱的授權碼
如果這裡是關閉請開啟,如果是開啟狀態但不知道授權碼的,那關了再開一次,記錄下授權碼:本人授權碼為jjtpupmyrtwkbjhc
有了授權碼,下面言歸正傳:
yum -y install mailx
ln -s /usr/bin/mailx /usr/bin/mail
chown -R zabbix.zabbix /usr/bin/mail
vim /etc/mail.rc
如果你的/etc/mail.rc裡有配置的set smtp-use-starttls,請註釋掉,配置這行會驗證證書失敗。
這個玩意,關了 systemctl stop postfix.service
生成qq郵箱的ssl證書
mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs
進入證書存放目錄,cd /root/.certs/
返回以下提示即為正常:
mailx -s "郵箱測試" [email protected] < message_file.txt無返回值即傳送成功
echo test | mail -v -s " test" [email protected] (也可以實現郵件傳送的)
成功。
配置zabbix網頁郵件報警
修改zabbixserver的配置檔案
vim /etc/zabbix/zabbix_server.conf
修改為你的mailx.sh指令碼路徑
其次配置網頁端
然後宕掉某個在監控狀態的伺服器,出現報警提示
如果,你也出現以上已送達,卻郵箱沒反應的情況,那麼你會在你的日誌裡看到以下內容:
Error initializing NSS: Unknown error -8015.
. . . message not sent.
未傳送成功。
接著往下做吧少年,一波三十折,你已經經歷了二十九折了。
這個是許可權問題,因為證書是在root下生成的,所以其它使用者沒有執行許可權,所以了
cp -a /root/.certs /tmp
chmod -R 777 /tmp
然後再修改下/etc/mail.rc裡的nss-config-dir (別怪我沒早說這個問題,這個問題也是我做到這裡才發現的,見諒)
再次宕掉服務,郵件報警實現。