zabbix監控之郵件報警sendmail

zabbix監控之郵件報警

在zabbix的使用中,最重要的一點就是完善的報警機制,做爲監控平臺,須要時刻關注機器和服務的運行狀態,更重要的是發現故障以後須要及時的報警給相關人員,早點發現問題,將隱患消除在未然階段。這樣才能保證服務的穩定運行。前端

報警的方式是多種多樣的,微信短信郵件報警是咱們比較常見的方式。並且報警的頻率和策略直接影響着運維人員的重視程度和檢錯效率。若是整個報警列表中都是一些無關痛癢的提示、輕度警告。而他們的發送頻率又特別的高,則很是容易錯過真正關鍵的報警。mysql

報警涉及的觸發器(trigger)通常包括如下幾個方面: 
(1)服務器的基本狀態:磁盤容量、內存大小、cpu的負載; 
(2)基礎服務狀態:web服務器(nginx、apache)的狀態,數據庫的狀態(mysql、oracle、nosql等); 
(3)應用服務器狀態:應用服務器的可用性以及負載狀態;nginx

以本人以前所在的遊戲公司爲例,平常的監控報警中主要集中在服務器的基本狀態的報警:(1)好比隨着服務器的運行,會產生大量的日誌文件,由於來不及轉移致使服務器的磁盤可用空間不足;(2)開啓的應用過多致使cpu和內存的不足;web

第一種磁盤不足的狀況,能夠採用crontab按期清理日誌的方式解決,注意 
爲了防止日誌內容的丟失,須要把日誌及時的備份到遠程的日誌服務器中進行存放;sql

第二種狀況則須要按期對服務器進行升配操做;數據庫

基礎服務狀態應用服務器狀態則須要提升報警級別,畢竟服務的不可用是很是嚴重的事故,另外給出建議是關鍵的服務必定要作到高可用,不能由於節約成本而致使服務故障,不然形成的損失也許更加巨大。apache

郵件報警配置步驟

郵件報警的配置主要劃分爲一下幾個步驟:vim

1.在zabbix服務端配置郵件發送腳本和修改zabbix服務端配置文件; 
2.在zabbix前端控制檯進行相關設置;安全

配置腳本

(1)郵件的發送能夠採用系統自帶的mail發送,可是須要配置mail的配置文件/etc/mail.rc,在該文件的末尾添加以下幾行:bash

set from=********@sina.com
set smtp=smtp://smtp.sina.com
set smtp-auth-user=********@sina.com
set smtp-auth-password=********
set smtp-auth=login
  • 1
  • 2
  • 3
  • 4
  • 5

其中from爲你所指定的郵件發送的發件方名稱,smtp爲所使用的郵件服務器,smtp-auth-usersmtp-auth-password分別進行用戶名和密碼的驗證;

這個smtp的功能須要登陸郵箱進行開通: 
這裏寫圖片描述

注意: 
我這裏採用的是sina的郵箱發送,由於新浪的郵件內容審覈相對比較寬鬆,除了sina以外,還能夠選擇網易郵箱或者qq郵箱,甚至爲了方即可以本身搭建一個smtp服務器。

網易郵箱和qq郵箱的smtp分別以下:

網易 smtp.163.com 
qq smtp.exmail.qq.com

另外須要注意使用網易或者qq郵箱他們的smtp-auth-password密碼會單獨進行設定,不要與郵箱自己的登陸密碼混淆。

(2)測試發送一個郵件給指定的用戶:

[root@localhost conf]# echo "hello" | mail -s "hello" 597****76@qq.com
  • 1

在該用戶的郵箱查看是否收到郵件: 
這裏寫圖片描述

已經收到郵件,說明郵件的發送沒有問題,若是郵件發送失敗,可能會是如下幾個緣由:

1)鏈接的郵件服務器錯誤,或者用戶名、密碼認證失敗,這個是比較好排查的,能夠經過telnet測試是否能夠鏈接郵件服務器(郵件服務器的默認端口是25):

[root@localhost conf]# telnet smtp.sima.com 25
Trying 173.254.89.192...
Connected to smtp.sima.com.
Escape character is '^]'.
220-box1089.bluehost.com ESMTP Exim 4.86_1 #1 Wed, 23 Nov 2016 01:29:33 -0700 
220-We do not authorize the use of this system to transport unsolicited, 
220 and/or bulk e-mail.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

用戶名密碼認證失敗會明確的告訴緣由;

2)發送的郵件內容沒有經過發件方郵箱的審覈;

3)發送的郵件內容沒有經過收件方的白(黑)名單活着郵件內容的審覈;

上述的二、3兩種失敗狀況郵件服務器都會發送給錯誤碼進行查詢,通常qq郵箱和網易郵箱的審覈相對比較嚴格。爲了防止被拒絕,能夠選擇sina或者139等郵箱,審覈相對寬鬆。甚至能夠本身搭建郵件服務器。

(3)編寫zabbix發送郵件的腳本sendmail.sh

建立腳本所在目錄/usr/local/etc/alertscripts

[root@localhost conf]# mkdir /usr/local/etc/alertscripts
  • 1

編寫發送腳本:

[root@localhost conf]# cat /usr/local/etc/alertscripts/sendmail.sh 
#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

改變所屬用戶和組爲zabbix,授予可執行權限:

[root@localhost conf]# chown zabbix.zabbix /usr/local/etc/alertscripts/ -R
[root@localhost conf]# chmod +x /usr/local/etc/alertscripts/sendmail.sh
  • 1
  • 2

建立日誌文件,修改所屬用戶和組:

[root@localhost conf]# chown zabbix.zabbix /tmp/sendmail.log
  • 1

(4)修改zabbix服務端配置文件,而且重啓服務:

[root@localhost conf]# vim /usr/local/etc/zabbix_server.conf
  • 1

添加以下內容,設置腳本目錄爲剛纔建立的目錄:

AlertScriptsPath=/usr/local/etc/alertscripts
  • 1

修改完成後重啓zabbix服務:操做略。

配置zabbix控制檯

1.首先設置報警媒介(指定郵件發送的腳本),點擊「管理」—「報警媒介類型」—「Email」: 
這裏寫圖片描述

2.將類型選定爲腳本,而後指定腳本的名稱。在zabbix3.x以後還須要指定傳遞給郵件發送腳本的參數(郵件接收方{ALERT.SENDTO}、郵件主題{ALERT.SUBJECT}、郵件內容{ALERT.MESSAGE})。 
這裏寫圖片描述

3.在用戶組羣中開啓調試模式,點開啓用: 
這裏寫圖片描述

4.點擊相關組羣設置組羣的權限,由於是對管理員用戶設置郵件,這裏設定對全部組羣具備讀寫權限(*表明全部組羣): 
這裏寫圖片描述

5.而後設置管理菜單下的用戶,這裏對Admin用戶進行設置: 
這裏寫圖片描述

6.在「報警媒介」中點擊編輯設置郵件: 
這裏寫圖片描述

7.指定報警的類型爲Email,指定郵件地址爲接收方的郵件地址,爲了讓郵件能夠準確的到達,須要在接收方的郵件中設置白名單,容許發送方的郵件被接收。 
這裏寫圖片描述

8.配置相關的動做,這個是針對觸發器設定的,當監控的item達到必定的條件(由觸發器Trigger設置),則會使trigger執行設定好的動做,一個動做能夠針對多個觸發器設定,當他們滿則條件時都會執行相應的動做,由於是郵件報警,因此當trigger被觸發時,咱們給相關用戶的郵箱發送郵件,這樣運維人員會根據郵件的報錯提示及時解決問題,當問題結局時還會發送恢復郵件,這樣就能夠把機器及業務的運行狀態及時的監控起來。 
這裏寫圖片描述

條件是針對動做什麼時候執行。能夠多個條件並存或者任意存在,這個能夠編寫相關的邏輯進行判斷。

操做恢復操做分開設置是zabbix3.2.1和以前的版本有所不一樣的,在操做中進行設定: 
這裏寫圖片描述

而後設置恢復操做: 
這裏寫圖片描述

操做示例

咱們這裏設定的條件是當zabbix客戶端5分鐘內沒有鏈接的時候,則會觸發該警報。

1.首先能夠關閉zabbix agent,查看儀表盤的監控信息,五分鐘後顯示以下: 
這裏寫圖片描述

2.郵箱能夠接受到對應的報警信息: 
這裏寫圖片描述

3.當咱們啓動zabbix agent,則會看到故障恢復的報警信息: 
這裏寫圖片描述

小結

上述是關於zabbix郵件報警的信息,正常狀況下的操做很簡單,可是筆者在設置的時候,發現網絡和郵件審查的因素會對郵件的發送有很大的影響(安全和利益使然),因此你們在搭建的時候須要選擇穩定可靠的郵箱,確保郵件的準確發送,還有就是再次基礎上根據不一樣公司的業務和監控指標,須要設定好郵件發送的頻率。祝你們工做順利!

相關文章
相關標籤/搜索