zabbxi 郵件告警推送有兩種方式:
1.使用zabbix服務端的本地郵箱賬號發送,郵件名為:user@hostname.localdomain,user為發送郵件的用戶,hostname為zabbix-server的主機名,該郵箱只能發送,不能接收外部郵件;
2.使用外部郵箱指定為告警發送郵箱
本文采用第2種方式進行配置
1.在線安裝:yum -y install sendmail
systemctl start sendmail.service #啟動sendmail
systemctl enable sendmail.service #設置開機自起
systemctl stop sendmail.service #停止sendmail
2.安裝郵件發送工具mailx: yum -y install mailx
3.我是用的是騰訊的企業郵箱,需要在服務器上下載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 -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i qq.crt certutil -L -d /root/.certs
4..配置外部郵箱:編輯 view /etc/mail.rc
set from=service@****.com#發件箱
set smtp=smtps://smtp.exmail.qq.com:465 #smtp地址,我用的騰訊企業郵箱 我是用的是阿里雲服務器 阿里雲把郵件的默認25端口給禁用掉了,可以申請解除,本文用的465端口來發送郵件 set smtp-auth-user=serice@******.com set smtp-auth-password=****** #郵箱授權碼
set smtp-auth=login set nss-config-dir=/etc/pki/nssdb set ssl-verify=ignore #ssl認證方式 set nss-config-dir=/root/.certs #證書所在目錄
5.測試郵箱發送(查看郵箱是否收到郵件):echo "zabbix test mail" |mail -s "zabbix" server@******.com
6..編寫郵件發送腳本
1.修改腳本路徑:vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts
#!/bin/bash echo "$3" | mail -s "$2" $1 //$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容
2.配置用戶 選擇admin用戶
5.新建操作:
新建操作就是通過何種方式將消息發送給誰,其它選項默認。
6.添加恢復操作
7.添加后的動作:
7.測試郵件告警
新增告警項,在agent端/home文件系統使用dd命令創建文件,將文件系統使用率提升至90%以上以觸發告警:
dd if=/dev/zero of=test bs=1M count=2000 #用dd命令生成一個2000M的test文件,使/home使用率告警。
發現郵件以附件方式發送,顯示不正常,修改郵件發送腳本。
安裝dos2unix轉換工具:yum -y install dos2unix
編輯發送腳本:
cd /etc/zabbix/alertscripts touch mailtmp.txt && chmod 777 mailtmp.txt chown -R zabbix:zabbix /etc/zabbix/alertscripts/ more mail.sh #!/bin/bash FILE=/etc/zabbix/alertscripts/mailtmp.txt echo "$3" >$FILE dos2unix -k $FILE cat $FILE|/bin/mail -s "$2" $1
注意:dos2unix命令執行的時候會產生臨時文件,所以要有寫的權限,故應修改alertscripts目錄屬主,不然測試過程中會報錯:‘dos2unix: Failed to open temporary output file: 權限不夠’。
發現正文不再以附件形式顯示。
查看告警日志: