基於rhel7.2的Zabbix平臺搭建和部署(五)
zabbix3.2.1郵件報警設置
說明:zabbix監控服務端、客戶端都已經部署完成,被監控主機已經添加,zabiix監控運行正常。
在zabbix服務端設置郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動發送報警郵件到指定郵箱。
一、zabbix報警部署步驟(操作在Zabbix監控服務端進行):
安裝sendmail兩個依賴包
[root@zabbix ~]# yum install -y perl-Net-SSLeay perl-IO-Socket-SSL
解壓sendmail,然後將sendemail複製到/usr/local/bin/目錄下,並加上可執行權限,然後修改用戶和羣組。
[root@zabbix ~]# tar -zxvf sendEmail-v1.56.tar.gz
[root@zabbix ~]# cd sendEmail-v1.56
[root@zabbix sendEmail-v1.56]# cp sendEmail /usr/local/bin/sendEmail
[root@zabbix sendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail
[root@zabbix sendEmail-v1.56]# ll /usr/local/bin/sendEmail
-rwxr-xr-x 1 zabbix zabbix 80213 Jun 16 23:13 /usr/local/bin/sendEmail
執行# /usr/local/bin/sendEmail -h可查看sendEmail的幫助
郵箱設置
說明:先去申請一個郵箱,這裏以163郵箱爲例。
郵箱測試
[root@zabbix sendEmail-v1.56]# sendEmail -f [email protected] -t [email protected] -s smtp.163.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp 428xxxwtf -m "測試郵件!"
說明:
/usr/local/bin/sendEmail #命令主程序
-f [email protected] #發件人郵箱
[email protected] #收件人郵箱
-ssmtp.163.com #發件人郵箱的smtp服務器
-u"我是郵件主題" #郵件的標題
-omessage-content-type=html #郵件內容的格式,html表示它是html格式
-omessage-charset=utf8 #郵件內容編碼
[email protected] #發件人郵箱的用戶名
-xp428xxxwtf #發件人郵箱密碼或授權碼
-m"我是郵件內容" #郵件的具體內容
原因是:sendemail軟件和perl5裏面的ssl版本不兼容導致的,通過修改sendemail裏面的內容可以解決這個問題。
解決辦法如下:
[root@zabbix ~]# vim /usr/local/bin/sendEmail
將1906行改爲如下內容:
1906 if (! IO::Socket::SSL->start_SSL($SERVER)) {
再次驗證
登入郵箱查看
創建報警腳本
[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@zabbix alertscripts]# vim mail.sh
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -o tls=auto -f [email protected] -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp 428xxxwtf -m "$body"
執行腳本並測試發郵件
[root@zabbix alertscripts]# chmod +x mail.sh
[root@zabbix alertscripts]# ll mail.sh
-rwxr-xr-x 1 root root 239 Jun 17 00:39 mail.sh
[root@zabbix alertscripts]# sh mail.sh [email protected] test 第二次測試
再次查看郵箱
三、zabbix web端配置
上面的郵件腳本配置好後,就要在web端添加報警媒介,在web頁面的管理,報警媒介類型頁面,點擊右邊的創建媒體類型
進入創建頁面,然後輸入名稱“郵件報警腳本”,類型選擇腳本,名稱選擇mail.sh,點擊添加按鈕,添加三個腳本參數,分別是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE},分別對於mail.sh中的to、subject和body。添加完成後點下面的添加按鈕,我們的報警媒介就創建完成了。
發現上面步驟完成後報警!從報錯內容上分析,應該是名稱“郵件報警”無法使用中文。
解決方法:
將名稱那一項改爲:“youjianbaojing”
創建好報警媒介後,就需要將報警媒介關聯到我們的用戶。點擊管理,用戶,然後選擇我們的用戶admin也可新建一個用戶,點擊用戶名就進入到用戶配置界面。點擊報警媒介,然後點添加,選擇我們上一步創建的郵件報警腳本,輸入收件人,選擇報警時間和類型,然後點擊添加,就將創建好的報警媒介關聯到我們的用戶上面了。
現在需要做的是,創建一個觸發動作,即系統出現故障時,觸發這個動作,然後給我們的郵箱發送報警郵件。點擊配置,選擇動作,然後點擊右邊的創建動作。
在動作這一頁名稱中寫入我們定義的動作名以及觸發條件。
說明:步驟是1-3,也即是從1開始到3結束。一旦故障發生,就是執行Email.sh腳本發生報警郵件給zabbix用戶。
假如故障持續了1個小時,它也只發送3次,第1-3次(即前3次)郵箱發送給zabbix用戶,時間間隔爲0秒。
如果改成1-0,0是表示不限制.無限發送
接着設置“恢復操作”:
將192.168.100.120服務器的zabbix_agent進程關閉,然後等待郵件。
[root@mysql ~]# systemctl stop zabbix_agentd
[root@mysql ~]# systemctl status zabbix_agentd
查看163郵箱
最後,點擊”報表“->”動作日誌“,可以看到觸發動作的次數(右邊還看查看到郵件發送狀態“已發送”)。