Zabbix之進程(1)
版本:3.4
一、進程
1)服務器
Zabbix server是整個Zabbix軟件的核心程序。Zabbix服務器進程是以守護進程(Deamon)運行的。
2)Agent
Zabbix agent部署在監控的目標上,主動監測本地的資源和應用(硬件驅動,內存,處理器統計等)。
被動(passive)和主動(active)檢查
Zabbix agents可以執行被動和主動兩種檢查方式。
在passive check 模式中agent應答數據請求,Zabbix server(或者proxy)詢問agent數據,如CPU 的負載情況,然後Zabbix agent回送結果。
Active checks 處理過程將相對復雜。 Agent必須首先從Zabbix sever索取監控項列表以進行獨立處理,然後周期性地發送新的值給server。
執行被動或主動檢查是通過選擇相應的監測項目類型來配置的。item type. Zabbix agent處理監控項類型有’Zabbix agent’和’Zabbix agent (active)’。
3)Proxy
Zabbix Proxy是一個可以從一個或多個受監控設備收集監控數據,並將信息發送到Zabbix sever的進程,基本上是代表sever工作的。 所有收集的數據都在本地進行緩存,然後傳送到proxy所屬的Zabbix sever。
部署Proxy是可選的,,但是可能非常有益於分散單個Zabbix sever的負載。 如果只有proxy收集數據,sever上的進程就會減少CPU消耗和磁盤I / O負載。
Zabbix proxy是完成遠程區域、分支機構、沒有本地管理員的網絡的集中監控的理想解決方案。
Zabbix proxy需要使用獨立的數據庫。
Zabbix proxy數據庫可以使用SQLite, MySQL, PostgreSQL. 使用Oracle或IBM DB2數據庫時會有一定風險和限制(例如在低等級發現規則中的 返回值 ) return values of low-level discovery rules.
Zabbix proxy以守護進程的方式運行。
進程用戶
Zabbix proxy是設計在非root賬戶下的。它會以其他任何非root用戶啟動的進程一樣的方式運行。 所以,您可以使用任意非root用戶運行agent,且不會產生任何問題。
如果您在’root’賬戶下運行,它將切換到硬編碼的“zabbix”用戶,該用戶必須存在於您的系統上。如果您只想以’root’方式運行proxy,您必須在proxy配額文件裏修改‘AllowRoot‘參數。
4)Java gateway
概述
.從Zabbix 2.0版本開始,以Zabbix守護進程的形式原生支持監控JMX程序出現了,它被稱為Zabbix Java gateway。Zabbix gateway 是用Java語言寫成。要查得一臺主機特定的JMX計數器值,Zabbix server向Zabbix Java gateway發送請求,後者使用JMX管理API 去請求遠程的有關應用。應用不需要額外安裝軟件,只需要啟動時在命令行指定-Dcom.sun.management.jmxremote
即可。
Java gateway接受來自Zabbix Server或Agent的傳入連接,且只能用作“被動proxy”。 與Zabbix proxy相反,它也可以從Zabbix agent調用(Zabbix agent不能被鏈接)。 每個Java gateway的訪問都直接在Zabbix sever或 proxy配置文件中配置,因此每個Zabbix sever或Zabbix agent只能配置一個Java gateway。 如果一臺主機具 JMX agent 類型的監控項和和其他類型的監控項,則只將JMX agent監控項傳遞到Java gateway進行檢索。
當在Java gateway上的一個監控項值更新了,Zabbix server或agent將連接Java gateway請求查詢該值,Java gateway會依次retrieves並傳回到server或proxy。 同樣的,Java gateway不會緩存任何值.
Zabbix sever或proxy具有連接到Java gateway特定類型的進程,由 START_POLLERS 選項控制。 在內部,Java gateway啟動多個由該選項控制的線程。 在sever端,如果連接超過 Timeout 秒,則將終止,但Java gateway可能仍忙於從JMX計數器檢索值。 為了解決這個問題,由於Zabbix 2.0.15,Zabbix 2.2.10和Zabbix 2.4.5在Java gateway中有TIMEOUT選項,允許為JMX網絡操作設置超時。
Zabbix server或agent將盡可能地將請求集中到一個JMX目標(受監控項間隔影響),並將它們發送到單一連接中的Java gateway,以獲得更好的性能。 建議 StartJavaPollers 小於或等於 START_POLLERS ,否則可能導致當連接Java gateway時而Java gateway沒有多余的線程進行處理
以下內容將詳細講描述如何獲得和運行Zabbix Java gateway,如何配置Zabbix server(或proxy)利用Zabbix Java gateway完成JMX監控,以及如何配置Zabbix GUI裏的監控項,以匹配特殊JMX計數器。
4.1 獲取Java gateway
有兩種方式得到Java gateway,一種是通過Zabbix網站下載Java gateway包,另一種是通過源碼編譯Java gateway。
4.1.1 通過Zabbix網站下載
Zabbix Java gateway包 (RHEL, Debian, Ubuntu)可在 http://www.zabbix.com/download.php下載。.
4.1.2 通過源碼編譯
為了編譯Java gateway,您需要在運行./configure時加上–enable-java選項. 建議在安裝時指定–prefix選項而非使用默認的/usr/local, 因為在安裝Java gateway時將創建整個目錄樹,而並非單一的可執行文件
$ ./configure --enable-java --prefix=$PREFIX
使用make完成Java gateway編譯並打包成一個JAR文件。需要註意的是:這一步將會需要javac和jar,因此您需要保證它們在路徑中
$ make
現在您將在src/zabbix_java/bin下得到zabbix-java-gateway-$VERSION.jar文件. 如果您對在指定的目錄下使用Java gateway滿意,那麽您可以完成配置和運行Java gateway,否則,請確保有足夠的權限運行make install.
$ make install
5)命令行應用
Sender、Get
Zabbix之進程(1)