您好,登錄后才能下訂單哦!
zabbix監控服務端、客戶端都已經部署完成,被監控主機已經添加,Zabiix監控運行正常。
在Zabbix服務端設置郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動發送報警郵件到指定郵箱。
具體操作:
以下操作在Zabbix監控服務端進行
然后安裝那兩個依賴包,命令是:
yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
解壓軟件,然后將sendemail復制到/usr/local/bin/目錄下,并加上可執行權限,然后修改用戶和群組。
[root@mysqla ~]# tar zxf sendEmail-v1.56.tar.gz
[root@mysqla ~]# cd sendEmail-v1.56/
[root@mysqla sendEmail-v1.56]# cp sendEmail /usr/local/bin/sendEmail
[root@mysqla sendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail
[root@mysqla sendEmail-v1.56]# ll /usr/local/bin/sendEmail
-rwxr-xr-x. 1 zabbix zabbix 80213 Nov 21 21:26 /usr/local/bin/sendEmail
執行# /usr/local/bin/sendEmail -h查看sendEmail的幫助
#/usr/local/bin/sendEmail -f bpcyh2@126.com -t bpcyh2@126.com -s smtp.126.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu bpcyh2@126.com -xp 123abc -m "abcfdd"
命令主要選項說明:
/usr/local/bin/sendEmail
#命令主程序
-f from@126.com
#發件人郵箱
-t to@126.com #收件人郵箱
-s smtp.126.com
#發件人郵箱的smtp服務器
-u "我是郵件主題"
#郵件的標題
-o message-content-type=html
#郵件內容的格式,html表示它是html格式
-o message-charset=utf8
#郵件內容編碼
-xu from@126.com #發件人郵箱的用戶名
-xp WEE78@12l$
#發件人郵箱密碼
-m "我是郵件內容"
#郵件的具體內容
進入/usr/local/zabbix/share/zabbix/alertscripts/目錄
然后在這個目錄下創建報警腳本sendmail.sh
[root@mysqla alertscripts]# vi mail.sh
下面是腳本內容(涂顏色部分是你的郵箱和密碼,-f和-xu參數后面跟郵箱,-xp后面跟授權碼)
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -o tls=auto -f bpcyh2@126.com -t "$to" -s smtp.126.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu bpcyh2@126.com -xp 123abc -m "$body"
[root@mysqla alertscripts]# chmod +x mail.sh
執行腳本測試發郵件
[root@mysqla alertscripts]# ./mail.sh bpcyh2@126.com test 123
*******************************************************************
Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
together with SSL_ca_file|SSL_ca_path for verification.
If you really don't want to verify the certificate and keep the
connection open to Man-In-The-Middle attacks please set
SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
at /usr/local/bin/sendEmail line 1906.
invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415
注:進行發送郵件測試時,出現了第一個報錯
原因是sendemail軟件和perl5里面的ssl版本不兼容導致的,通過修改sendemail里面的內容可以解決這個問題。
解決方法:
在sendemail中1906行的內容,從
if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {
修改為
if (! IO::Socket::SSL->start_SSL($SERVER)) {
即不指定SSL的版本,讓程序來自己選擇
不管你使用的是163/126郵箱還是qq郵箱,你都必須開通pop3服務,而且126/qq郵箱還要求使用第三方客戶端發送郵件是必須使用授權碼登錄,使用賬號密碼驗證時,會出現下面圖片中的錯誤。
sendEmail[5102]: ERROR => ERROR => SMTP-AUTH: Authentication to smtp.126.com:25 failed.
至于郵箱的授權碼,自己登錄126郵箱去設置就好。
經過上面兩個問題的處理后就可以正常發送郵件如下所示顯示成功提示
[root@mysqla alertscripts]# ./mail.sh bpcyh2@126.com test 123
Nov 21 22:50:47 mysqla sendEmail[5195]: Email was sent successfully!
zabbix web端配置
上面的郵件腳本配置好后,就要在web端添加報警媒介,在web頁面的管理,報警媒介類型頁面,點擊右邊的創建媒體類型
進入創建頁面,然后輸入名稱“郵件報警腳本”,類型選擇腳本,名稱選擇mail.sh,點擊添加按鈕,添加三個腳本參數,分別是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分別對于mail.sh中的to、subject和body。添加完成后點下面的添加按鈕,我們的報警媒介就創建完成了
創建好報警媒介后,就需要將報警媒介關聯到我們的用戶。點擊管理,用戶,然后選擇我們的用戶admin也可新建一個用戶,點擊用戶名就進入到用戶配置界面。點擊報警媒介,然后點添加,選擇我們上一步創建的郵件報警腳本,輸入收件人,選擇報警時間和類型,然后點擊添加,就將創建好的報警媒介關聯到我們的用戶上面了。
現在需要做的是,創建一個觸發動作,即系統出現故障時,觸發這個動作,然后給我們的郵箱發送報警郵件。點擊配置,選擇動作,然后點擊右邊的創建動作。
在動作這一頁名稱中寫入我們定義的動作名以及觸發條件
設置“操作”
步驟是1-3,也即是從1開始到3結束。一旦故障發生,就是執行Email.sh腳本發生報警郵件給zabbix用戶。
假如故障持續了1個小時,它也只發送3次,第1-3次(即前3次)郵箱發送給zabbix用戶,時間間隔為0秒。
如果改成1-0,0是表示不限制.無限發送
設置“恢復操作”
添加好以后就可以看到我們添加的動作名,以及該動作已啟用的狀態。
查看狀態是否顯示以啟用
在動作日志里可以看到發送狀況,顯示已送達,就可以了。
報警測試
將192.168.129.88服務器的zabbix_agent進程關閉。
發現可以正常收到故障報警郵件
最后,點擊”報表“->”動作日志“,可以看到觸發動作的次數(右邊還看查看到郵件發送狀態“已發送”)。
----------------------------------------------------------------------------------------------
今日推薦電影《教父Ⅰ Ⅱ Ⅲ》
偉大的人不是生下來就偉大的,而是在成長過程中顯示其偉大的
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。