zabbix官網的操作指南:https://www.zabbix.com/documentation/4.0/zh/manual
首先我們需要創建一個需要被監控的主機,並設置相應的監控項。當監控項收集了數據后,觸發器會根據異常狀態觸發報警。根據一些報警機制,它也會通知我們一些重要的事件,而不需要我們直接在Zabbix前端進行查看。
這就是通知(Notifications)的功能。E-mail是最常用的異常通知發送方式。我們將會學習如何配置e-mail通知。
一、新建主機
Zabbix中的主機(Host)是一個你想要監控的網絡實體(物理的,或者虛擬的)。Zabbix中,對於主機的定義非常靈活。它可以時一台物理服務器,一個網絡交換機,一個虛擬機或者一些應用。
Zabbix中,可以通過配置(Configuration) → 主機(Hosts)菜單,查看已配置的主機信息。默認已有一個名為'Zabbix server'的預先定義好的主機。
點擊創建主機(Create host)以添加新的主機:
至少需要填寫下列字段:
主機名稱(Host name)
-
輸入一個主機名稱,可以使用字母數字、空格、點”.“、中划線”-“、下划線”_“。
組
-
從右邊的選擇框中,選擇一個或者多個組,然后點擊 « 移動它們到'所在組(In groups)'選擇框。
IP地址
-
輸入主機的IP地址。注意如果這是Zabbix server的IP地址,它必須是Zabbix agent配置文件中‘Server’參數的值。
暫時保持其他選項的默認值。
當完成后,點擊添加(Add)。你可以在主機列表中看到你新添加的主機。
二、新建監控項(選擇模板后可不需要此步驟)
概要
監控項是Zabbix中獲得數據的基礎。沒有監控項,就沒有數據——因為一個主機中只有監控項定義了單一的指標或者需要獲得的數據。
添加監控項
主機包含了所有的監控項。如果需要配置一個監控項的示例,我們需要前往配置(Configuration) → 主機(Hosts) 並找到我們已創建的'新主機(New host)'。
在'新主機(New host)'行中,監控項(Items)的鏈接旁的數量會顯示為'0'。點擊這個鏈接,然后點擊創建監控項(Create item),將會顯示一個監控項定義表格。
這里就配置剛才我已經創建的主機,直接點擊items即可,然后點擊左上角的create item
對於監控項的示例,需要輸入以下必要的信息:
名稱(Name)
-
輸入 CPU Load 作為值。在列表中和其他地方,都會顯示這個值作為監控項名稱。
值(Key)
-
點擊select選擇你要監控的內容。這是監控項的一個技術上的名稱,用於識別獲取信息的類型。這個特定值需要是Zabbix Agent預定義值中的一種。我選擇監控我10.220.5.137的80 端口。
信息類型(Type of information)
-
在此處選擇 Numeric (float)。這個屬性定義了想獲得數據的格式。
我們暫時保持其他選項的默認值。
當完成后,點擊添加(Add)。新的監控項將出現在監控項列表中。點擊列表中的詳細(Details)以查看具體細節。
查看數據
當一個監控項定義完成后,你可能好奇它具體獲得了什么值。前往監控(Monitoring) → 最新數據(Latest data),點擊- other -前面的 + ,然后查看你之前定義的監控項和獲得的值。
同時,第一次獲得的監控項值最多需要60秒才能到達。默認情況下,這是服務器讀取變化后的配置文件,獲取並執行新的監控項的頻率。
如果你在‘變化(Change)’列中沒有看到值,可能到目前為止只獲得了一次值。等待30秒以獲得新的監控項值。
如果你在當前界面中沒有看到監控項的信息,請確認:
-
你輸入的監控項'值(Key)' 和 '信息類型(Type of information)' 同截圖中的一致
-
agent和server都在運行狀態
-
主機狀態為'監控(Monitored)'並且它的可用性圖標是綠色的
-
監控項處於啟用狀態
圖表
當監控項運行了一段時間后,可以查看可視化圖表。 簡單圖表 適用於任何被監控的數值型(numeric)監控項,且不需要額外的配置。這些圖表會在運行時生成。
前往監控(Monitoring) → 最新數據(Latest data),然后點擊監控項后的'圖表(Graph)'鏈接以查看圖表。
三、新建觸發器(選擇模板后可不需要此步驟)
概述
監控項只是用於收集數據。如果需要自動評估收到的數據,我們則需要定義觸發器。觸發器包含了一個表達式,這個表達式定義了數據的可接受的閾值級別。
如果收到的數據超過了這個定義好的級別,觸發器將被“觸發”,或者進入“異常(Problem)”狀態——從而引起我們的注意,讓我們知道有問題發生。如果數據再次恢復到合理的范圍,觸發器將會到“正常(Ok)”狀態。
添加觸發器
為監控項配置觸發器,前往配置(Configuration) → 主機(Hosts),找到'新增主機(New host)',點擊旁邊的觸發器(Triggers) ,然后點擊創建觸發器(Create trigger)。這將會向我們展現一個觸發器定義表單。
對於觸發器,有下列必填項:
名稱(Name)
-
輸入 check_80_triger 作為值。這個值會作為觸發器的名稱被現實在列表和其他地方。
表達式(Expression)
-
輸入:{ken1:net.tcp.listen[80].last()}=0
值時觸發器的表達式。確認這個表達式輸入正確,包括所有的符號。這個特定的表達式大致是說如果80端口返回值是0時,那么就觸發了問題的閾值。
完成后,點擊添加(Add)。新的觸發器將會顯示在觸發器列表中。
顯示觸發器狀態
當一個觸發器定義完畢后,你可能想查看它的狀態。
前往監控(Monitoring) → 觸發器(Triggers)以查看。3分鍾后(我們需要等待3分鍾以評估這個觸發器的3分鍾平均值),觸發器會在這里顯示。應該會有一個綠色的'OK'在'狀態(Status)'列中閃爍。
閃爍意味着這個觸發器狀態最近30分鍾內發生過變化。
如果此處出現一個閃爍的紅色'PROBLEM',顯然,這說明了80端口已經在你在觸發器里定義的閾值級別。
四、郵件報警
概述
當監控項收集了數據后,觸發器會根據異常狀態觸發報警。根據一些報警機制,它也會通知我們一些重要的事件,而不需要我們直接在Zabbix前端進行查看。
這就是通知(Notifications)的功能。E-mail是最常用的異常通知發送方式。我們將會學習如何配置e-mail通知。
配置zabbix服務端E-mail報警設置
Zabbix中最初內置了一些預定義的通知發送方式,email通知是其中的一種。
前往管理(Administration) → 媒體類型(Media types),點擊預定義媒體類型列表中的Email,以配置E-mail。
這將向我們展現e-mail設置定義表單。
根據你的環境,設置SMTP服務器,SMTP HELO, SMTP e-mail的值。

一切就緒后,點擊 更新(Update)。
現在你已經配置了'Email'作為一種可用的媒體類型。一個媒體類型必須通過發送地址來關聯用戶。為了建立一個通知,前往配置(Configuration) → 動作(Actions),然后點擊創建動作(Create action)。
在這個表單中,輸入這個動作的名稱。
主題:
Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障! 內容: 告警主機:{HOSTNAME1} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
恢復主題: 恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復! 恢復信息: 告警主機:{HOSTNAME1} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
{TRIGGER.STATUS} 和 {TRIGGER.NAME} 是宏(macros)或者變量,可以在Default subject 和 Default message 區域查看。會以實際的觸發器狀態和觸發器名稱的值替代。
在大多數簡單的例子中,如果我們不添加更多的指定條件,這個動作會在觸發器從 'Ok' 變為 'Problem'是發生。
我們還需要定義這個動作具體做了什么 —— 即在 操作(Operations) 標簽頁中執行的操作。點擊新建(New),將會打開一個操作表單。
這里,在發送給用戶(Send to Users)塊中點擊添加(Add),然后選擇我們之前定義的用戶('user')。選擇'Email'作為Send only to的值。完成后,在操作明細區域中,點擊添加(Add)。
這是一個簡單的動作配置步驟,即點擊動作表單中的添加(Add)。
如果通知功能沒有正常工作:
-
再次驗證e-mail設置和動作設置已經被正確配置
-
確認你創建的用戶對生成事件的主機至少擁有讀(read)權限。正如添加用戶步驟中提到的,'Zabbix administrators'用戶組中的用戶必須對'Linux servers'主機組(該主機所屬組)至少擁有讀(read)權限。
-
另外,你可以在報告(Reports) → 動作日志(Action log)中檢查動作日志。