一、郵箱配置:開啟smtp服務和授權
開啟smtp選項后,系統會生成一個授權,你需要記住這個授權碼,后面需要寫入配置文件。
二、配置管理mailx:
(1)安裝mailx:[root@zabbix-server-center ~]# yum install -y mailx
(2)請求數字證書(這里以qq郵箱為例):
[root@zabbix-server-center ~]# mkdir -p /home/zabbix/.certs [root@zabbix-server-center ~]# echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /home/zabbix/.certs/qq.crt
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA verify return:1 depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018 verify return:1 depth=0 C = CN, ST = Guangdong, L = Shenzhen, O = Tencent Technology (Shenzhen) Company Limited, OU = R&D, CN = pop.qq.com verify return:1 DONE
[root@zabbix-server-center zabbix]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d /home/zabbix/.certs -i /home/zabbix/.certs/qq.crt [root@zabbix-server-center zabbix]# certutil -A -n "GeoTrust Global CA" -t "C,," -d /home/zabbix/.certs -i /home/zabbix/.certs/qq.crt [root@zabbix-server-center zabbix]# cd /home/zabbix/.certs/
[root@zabbix-server-center .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. [root@zabbix-server-center .certs]# certutil -L -d /home/zabbix/.certs Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI GeoTrust SSL CA P,P,P [root@zabbix-server-center .certs]# chown -R zabbix.zabbix /home/zabbix/
(3)修改/etc/mail.rc文件:[root@zabbix-server-center ~]# vim /etc/mail.rc
set from=592296813@qq.com ###用來發送郵件的郵箱賬號,這里例子是qq郵箱 set smtp=smtps://smtp.qq.com:465 ###郵件服務器 set smtp-auth-user=592296813@qq.com ###發送郵件的賬號 set smtp-auth-password=XXXXXXXXX ###這里是qq郵箱系統提供的“授權碼” set smtp-auth=login ###默認login即可 set ssl-verify=ignore ###ssl認證方式,這里選擇忽略 set nss-config-dir=/home/zabbix/.certs ###申請的證書所在目錄
(4)發送郵件進行測試:
[root@zabbix-server-center ~]# echo "這里是郵件正文" | mail -s "這里是郵件主題" XXXXXXX@163.com
************************************************************************************************************************************************************************
【可跳過第三步】
三、編寫郵件發送腳本:
(1)創建shell腳本文件:
[root@zabbix-server-center zabbix]#vim /usr/lib/zabbix/alertscripts/mailx.sh
(2)修改zabbix_server.conf配置文件中alertscripts路徑(也就是存放郵件腳本的路徑):
(3)重啟zabbix服務:
[root@zabbix-server-center /]# systemctl restart zabbix-server.service
(4)設置郵件腳本文件:
#!/bin/bash
to=$1
subject=$2
body=$3
FILE=/tmp/mail.tmp
echo "$body" > $FILE
dos2unix -k $FILE # 解決正文變成附件.bin問題,如果沒有dos2unix就使用yum安裝dos2unix
mail -s "$subject" "$to" < $FILE
注意在進行腳本測試# echo "123 zabbix" |mail -s "test mail" xxx@163.com時,記得刪除/tmp/mail.tmp文件,否則在后面的報警信息正文會一直顯示測試命令時候的信息。
(5)設置權限:
[root@zabbix-server-center alertscripts]#chmod +x /usr/lib/zabbix/alertscripts/mailx.sh [root@zabbix-server-center alertscripts]#chown zabbix:zabbix /usr/lib/zabbix/alertscripts/mailx.sh
(6)進入zabbix的web控制台,設置報警類型:
(7)其余配置和直接設置郵件報警一致。
************************************************************************************************************************************************************************
四、進入zabbix的web控制台:
操作配置:
默認標題: 故障:{TRIGGER.STATUS},服務器:{HOSTNAME1},發生:{TRIGGER.NAME} 消息內容: 告警主機:{HOST.NAME} 告警IP:{HOST.IP} 告警時間:{EVENT.DATE}-{EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME}:{ITEM.VALUE} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE} 事件ID:{EVENT.ID}
五、測試郵件報警:
出現以下信息,表明郵件發送是通的,可以正常發送報警郵件。
進入接受郵箱,發現已經成功接收到測試郵件:
模擬測試關閉httpd服務,不久將會收到郵件報警,如下:
好文:https://blog.whsir.com/post-4385.html
https://blog.csdn.net/qq_42988210/article/details/92050440