Zabbix系統數據採集方法總結


在Zabbix系統中有多達十三種數據採集方法,每種方法所使用的原理和場景也不一樣。下表列出了這十三種數據採集方法的原理及適合的場景。

序號

方法名稱

描述

1

通過Zabbix被監控設備代理(agent)採集數據

在被監控設置安裝並運行zabbix被監控設備代理進程(Zabbix系統自帶的一個組件。在編譯配置選項帶--enable-agent選項。)通過該進程收集監控項目的數據,並與Zabbix服務器或監控服務器代理(Proxy)通信,主動發送或被動接受服務器或服務器代理查詢的數據採集方式。這種方法只適用於採集服務器或工作站上的監控數據,不適合採集路由器、交換機、防火牆等網絡設備的監控數據。

2

簡單檢查

這種數據採集方法是指Zabbix服務器(也包括服務器代理)自身通過檢查被監控設備的tcp端口狀態或ICMP的信息來獲取監控數據的數據採集方法。不需要在被監控設備上安裝任何第三方軟件。但是,這種方法只適合收集像服務的端口狀態等狀態數據,不適合採集性能方面的數據。

3

通過SNMP協議採集數據

即通過SNMP的查詢和陷入進行監控數據的採集。適合對網絡設備,如防火牆、交換機、路由器等的監控數據的採集。目前Zabbix系統支持SNMP v1 SNMP v2c和SNMP v3版本的協議。通過SNMP協議採集數據不需要在被監控設備上安裝任何第三方軟件,但是需要配置和開啓SNMP服務,並允許監控服務器查詢。這個是我們目前使用比較多的數據採集方法。缺點是,其通信協議走的UDP協議,傳輸爲不可靠傳輸,所以存在丟數據的現象。同時,MIB庫一般是跟被監控設備有關,不適合監控自定義的項目。

4

Zabbix系統內部數據採集

Zabbix系統內部數據採集方法就是採集和監控Zabbix系統自身狀態和性能數據的方法。Zabbix系統內部數據採集方法是由Zabbix服務器端通過計算獲取的,所以這種數據採集方法不需要安裝任何的客戶端。這個數據採集方法只適用於Zabbix服務器自身的監控,不適用其它設備和主機。主要用於監控Zabbix系統自身的問題。

5

Zabbix陷入

Zabbix陷入是指在被監控主機上定時的執行特定的程序或命令,主動向Zabbix系統的服務器端或服務器代理端發送被監控項目的數據的數據採集方法。因此,Zabbix陷入是一種主動模式的數據採集方法,即由被監控主機定時或週期的向Zabbix系統的服務器端或服務器代理端發送所採集到的數據。這個數據採集方法一般只適用於服務器、工作站等我們可以在其上安裝和部署腳本程序的設備。這個數據採集方法可以採集我們自己定義的個性化的監控項目。缺點是需要自己編寫腳本和程序,所以對編程能力有一定的要求。

6

數據聚合

所謂數據聚合(在Zabbix前臺的數據採集型中稱之爲Aggregate Checks)是指並不直接從被監控主機上採集監控數據,而是指根據已定義的監控項目上採集的數據通過一定的計算方法複合出新的監控項目的數據。適合於跨多個被監控設備的數據彙總計算,以生成新監控項目。

7

通過腳本採集數據

這種數據採集方法其實很簡單,即由Zabbix服務器端進程根據配置信息,按計劃地執行指定的腳本程序或命令,然後俘獲腳本程序或命令的輸出內容爲對應監控項目的值。這種方法也要求有一定的編程能力。同時,因爲腳本是在Zabbix服務器端執行的,所以要求被監控設備要給Zabbix服務器端一定的授權,存在一定的安全風險。

8

數據庫監控

數據庫監控採集方法的原理就是,Zabbix服務器進程直接通過ODBC接口技術,查詢各種不同類型的數據庫裏的數據,以採集需要的數據內容。由此我們可以看出,數據庫監控是一種通過直接操作被監控系統數據庫的方法來採集數據的。因此,這種數據採集方法可以採集應用層面的性能數據,可以監控個性化的項目。同時,因爲這個方法是使用了ODBC技術,所以它可以支持的數據庫種類非常多,幾乎支持市場上主流的數據庫。缺點是,Zabbix系統中只能支持的SQL語句,不能嵌套。

9

通過IPMI代理採集數據

智能平臺管理接口(IPMI,Intelligent Platform Management Interface),是管理基於Intel架構的企業系統中所使用的外圍設備所採用的一種工業標準。通過這種方法採集數據的優點是:它可以採集到其它方法無法採集到的硬件狀態信息,例如CPU溫度、風扇轉數等等。缺點是,需要被監控硬件能夠支持。而這個一般在購買服務器(這種方法一般只適用於服務器)時是需要單獨購買控制卡的。

10

通過SSH協議採集數據

通過SSH協議採集的原理很簡單,zabbix服務器端或服務器代理端根據配置,使用SSH協議連接到被監控主機上,然後在被監控主機上執行用戶配置的命令序列或者指定的腳本,Zabbix服務器端或服務器代理端捕獲被執行的命令序列或腳本程序所返回的結果作爲被監控項目所採集的數據。所以,這種方法可以採集到我們所需要的個性化的數據。缺點是需要有一定的編程能力,以及被監控設備和Zabbix服務器之間需要通過公鑰私鑰驗證。

11

通過TELNET協議採集數據

與“通過SSH協議採集數據方法是類似的,只是這種方法走的是TELNET協議,所以安全要更低。

12

通過JMX協議採集數據

Java管理擴展(JMX,Java Management Extensions)是一個可作爲應用程序、設備和系統等植入管理功能的框架。簡單地說,JMX框架在不對現有的應用做修改的情況下植入到現有的應用中,以對現有的應用的運行情況進行管理。這種方法一般只適用於採集JAVA應用的數據,而不太適合採集系統級的甚至硬件級的監控數據。要求被監控設備上必須安裝JAVA環境,同是啓動相應的服務。

13

通過計算的方法採集監控數據

通過計算的方法獲取監控數據,顧名思義就是將現有的多個被監控項目上所採集的數據進行一定的計算,從而獲取新的數據的數據採集方法。這種數據採集方法與“數據聚合”有相同之處也有不同之處,相同之處是這兩個方法本質上都是對現有的監控項目所採集到的數據進行復合計算,以獲得新的需要監控的數據。不同之處是,這個方法一般只針對單臺被監控設備內部不同項目的數據進行計算,不跨主機計算。這種方法我們目前有少量在使用。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章