1. 程式人生 > >12.zabbix學習筆記:zabbix監控之郵件報警

12.zabbix學習筆記:zabbix監控之郵件報警

zabbix監控之郵件報警

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

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

報警涉及的觸發器(trigger)一般包括以下幾個方面:
(1)伺服器的基本狀態:磁碟容量、記憶體大小、cpu的負載;
(2)基礎服務狀態

:web伺服器(nginx、apache)的狀態,資料庫的狀態(mysql、oracle、nosql等);
(3)應用伺服器狀態:應用伺服器的可用性以及負載狀態;

以本人之前所在的遊戲公司為例,日常的監控報警中主要集中在伺服器的基本狀態的報警:(1)比如隨著伺服器的執行,會產生大量的日誌檔案,因為來不及轉移導致伺服器的磁碟可用空間不足;(2)開啟的應用過多導致cpu和記憶體的不足;

第一種磁碟不足的情況,可以採用crontab定期清理日誌的方式解決,注意
為了防止日誌內容的丟失,需要把日誌及時的備份到遠端的日誌伺服器中進行存放;

第二種情況則需要定期對伺服器進行升配操作;

基礎服務狀態

應用伺服器狀態則需要提高報警級別,畢竟服務的不可用是非常嚴重的事故,另外給出建議是關鍵的服務一定要做到高可用,不能因為節約成本而導致服務故障,否則造成的損失也許更加巨大。

郵件報警配置步驟

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

1.在zabbix服務端配置郵件傳送指令碼和修改zabbix服務端配置檔案;
2.在zabbix前端控制檯進行相關設定;

配置指令碼

(1)郵件的傳送可以採用系統自帶的mail傳送,但是需要配置mail的配置檔案/etc/mail.rc,在該檔案的末尾新增如下幾行:

set from=********@sina.com
set smtp=smtp://smtp.sina.com
set smtp-auth-user=********@sina.com set smtp-auth-password=******** set smtp-auth=login

其中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)連線的郵件伺服器錯誤,或者使用者名稱、密碼認證失敗,這個是比較好排查的,可以通過telnet測試是否可以連線郵件伺服器(郵件伺服器的預設埠是25):

[[email protected] 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.

使用者名稱密碼認證失敗會明確的告訴原因;

2)傳送的郵件內容沒有通過發件方郵箱的稽核;

3)傳送的郵件內容沒有通過收件方的白(黑)名單活著郵件內容的稽核;

上述的2、3兩種失敗情況郵件伺服器都會發送給錯誤碼進行查詢,一般qq郵箱和網易郵箱的稽核相對比較嚴格。為了防止被拒絕,可以選擇sina或者139等郵箱,稽核相對寬鬆。甚至可以自己搭建郵件伺服器。

(3)編寫zabbix傳送郵件的指令碼sendmail.sh

建立指令碼所在目錄/usr/local/etc/alertscripts

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

編寫傳送指令碼:

[[email protected] 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

改變所屬使用者和組為zabbix,授予可執行許可權:

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

建立日誌檔案,修改所屬使用者和組:

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

(4)修改zabbix服務端配置檔案,並且重啟服務:

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

新增如下內容,設定指令碼目錄為剛才建立的目錄:

AlertScriptsPath=/usr/local/etc/alertscripts

修改完成後重啟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郵件報警的資訊,正常情況下的操作很簡單,但是筆者在設定的時候,發現網路和郵件審查的因素會對郵件的傳送有很大的影響(安全和利益使然),所以大家在搭建的時候需要選擇穩定可靠的郵箱,確保郵件的準確傳送,還有就是再次基礎上根據不同公司的業務和監控指標,需要設定好郵件傳送的頻率。祝大家工作順利!

相關推薦

12.zabbix學習筆記zabbix監控郵件報警

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

11.zabbix學習筆記zabbix監控oracle

zabbix監控oracle 可監控項 使用zabbix監控oracle資料庫需要藉助第三方的外掛,目前使用較多的是orabbix。目前維護到了1.2.3版本。關於oracle自帶的監控專案有以下幾個: DB Version (i.e.

7.zabbix學習筆記zabbix監控nginx

zabbix監控nginx zabbix可以監控nginx的狀態,關於一個服務的狀態可以檢視服務本身的狀態(版本號、是否開啟),還應該關注服務能力(例如以nginx的負載效果:連線數、請求數和控制代碼數)。下面我們使用zabbix監控nginx。

1.zabbix學習筆記zabbix的安裝

zabbix的安裝 為什麼需要監控 隨著網際網路公司業務不斷增長,硬體規模不斷擴大,作為SA我們需要清楚每一臺伺服器的狀態(溫度、CPU使用率、記憶體使用率、磁碟使用率等),如果使用人為的方式將會極大增加工作量而且難免會有所疏露,所以我們需要更加自動

shiro學習筆記整合spring攔截器鏈執行流程

一、環境準備搭建好spring + shiro整合環境(本文環境Spring 4.3.10.RELEASE + Shiro 1.4.0)後,編寫登入頁面如下:<html> <head> <title>登入頁</title> &l

Spring Boot學習筆記JavaMailSender發送郵件

獲取 prop create subject intern dex autowired 需求 see 項目中經常會有這樣的需求,用戶註冊成功,需要給用戶發送一封郵件。郵件需要有一定格式和樣式。本次例子中用freemarker做樣式,其他的模版引擎類似。 首先Spring B

python學習筆記12天 列表推導式和生成器

目錄 1. 迭代器 2. 推導式 1. 迭代器 什麼是生成器呢,其實生成器的本質就是迭代器;在python中有3中方式來獲取生成器(這裡主要介紹前面2種) 通過生成器函式獲取 通過各種推導式來實現生成器 生成器函式 我們來看一個普通的函式: In[2]: def fu

python學習筆記12天 列表推導式和生成器

clas traceback 括號 module recent else 接收 工作 last 目錄 1. 叠代器 2. 推導式 1. 叠代器 什麽是生成器呢,其實生成器的本質就是叠代器;在python中有3中方式來獲取生成器(這裏主要介紹前面2種) 通過生成器函數獲

學習筆記強化學習A3C程式碼詳解

寫在前面:我是根據莫煩的視訊學習的Reinforce learning,具體程式碼實現包括Q-learning,SARSA,DQN,Policy-Gradient,Actor-Critic以及A3C。(莫凡老師的網站:https://morvanzhou.git

學習筆記WKWebViewWKNavigationDelegate (Swift)

//MARK: - WKNavigationDelegate /** 執行層級:① webView發起請求之前呼叫 allow後才會進行後面的代理方法 decisionHandler 必須執行 - parameter webView:

VB.NET學習筆記自定義控制元件擴充套件DataGridViewColumnHeaderCell類增加CheckBox全選複選框

測試環境:windows 7和Microsoft Visual Studio 2015 點選下載本文原始碼 VB.NET雖然提供了大量控制元件供我們使用,但很多控制元件僅提供最基礎的功能。比如用DataGridView控制元件可以非常方便顯示或操作資料庫資料,我們可以在首列新增DataGri

資料科學個人筆記推薦系統推薦演算法(基於內容+標籤+半監督學習模型)

一、基於內容的模型 (一)推薦系統冷啟動問題 使用者冷啟動:給新使用者推薦 物品冷啟動:新物品被推薦 系統冷啟動:為新開發的網站(還沒有使用者和使用者行為,只有一些物品資訊)設計推薦系統 冷啟動問題的一些解決方案:1.推薦熱門;2.用註冊資訊進行粗粒度的個性化;3.

ElasticSearch 6.x 學習筆記12.欄位型別

12.1 欄位型別概述 一級分類 二級分類 具體型別 核心型別 字串型別 string,text,keyword 整數型別 integer,long,

《機器學習實戰》學習筆記(七)預測數值型別資料迴歸

轉載請註明作者和出處:http://blog.csdn.net/john_bh/ 執行平臺: Windows Python版本: Python3.6 IDE: Sublime text3 一、降維技術 1.1 什麼是降維 降維就是

黑馬程式設計師C#程式設計基礎學習筆記不斷要求使用者輸入一個數字,然後列印這個數字的二倍,當用戶輸入q的時候程式退出。

--------------------------------------------------- 2345王牌技術員聯盟、2345王牌技術員聯盟、期待與您交流!-----------------------------------------------------

ElasticSearch 6.x 學習筆記31.Java API詞項查詢

1、term查詢 Find documents which contain the exact term specified in the field specified. package cn.hadron; import cn.hadron.

學習筆記linux檔案空洞

檔案空洞 我們知道lseek()系統呼叫可以改變檔案的偏移量,但如果程式呼叫使得檔案偏移量跨越了檔案結尾,然後再執行I/O操作,將會發生什麼情況? read()呼叫將會返回0,表示檔案結尾。令人驚訝的是,write()函式可以在檔案結尾後的任意位置寫入資料。在這種情況下

《Python學習手冊》學習筆記(4)第4章介紹Python物件型別(關鍵詞程式語言/Python)

第4章 介紹Python物件型別 寫在開頭的讀者筆記 值得一讀的小節 1.“為什麼使用內建型別” - “Python的核心資料型別”,主要學到了: Python是強型別語言,你只能對一個物件進行適合該型別的有效操作。 一旦建立了一個物件,它就和

黑馬程式設計師ADO.NET學習筆記SqlParameter(Sql引數)

-------------------------------------------------2345王牌技術員聯盟、2345王牌技術員聯盟、期待與您交流!--------------------

cam計算機系統學習筆記第二章

十六進位制小技巧:記住A、C、F對應的二進位制        A     1010       C     1100        F     1111 知識點:32位的虛擬記憶體為4G 小端法:最低有效位元組在最前面(大多數intel相容機