Zabbix 監控系統之進程詳解

Zabbix 監控系統之進程詳解

在這裏插入圖片描述

1.5.1 Server

Zabbix server 是整個 Zabbix 軟件的核心程序。

Zabbix Server 負責執行數據的主動輪詢和被動獲取,計算觸發器條件,向用戶發送通知。它是 Zabbix Agent 和 Proxy 報告系統可用性和完整性數據的核心組件。Server 自身可以通過簡單服務遠程檢查網絡服務(如Web服務器和郵件服務器)。

Zabbix Server是所有配置、統計和操作數據的中央存儲中心,也是Zabbix監控系統的告警中心。在監控的系統中出現任何異常,將被髮出通知給管理員。

基本的 Zabbix Server 的功能分解成爲三個不同的組件。他們是:Zabbix server、Web前端和數據庫。

Zabbix 的所有配置信息都存儲在 Server 和Web前端進行交互的數據庫中。例如,當你通過Web前端(或者API)新增一個監控項時,它會被添加到數據庫的監控項表裏。然後,Zabbix server 以每分鐘一次的頻率查詢監控項表中的有效項,接着將它存儲在 Zabbix server 中的緩存裏。這就是爲什麼 Zabbix 前端所做的任何更改需要花費兩分鐘左右才能顯示在最新的數據段的原因。

服務進程

通過二進制包安裝的組件

Zabbix server 進程以守護進程(Deamon)運行。Zabbix server 的啓動可以通過執行以下命令來完成:

shell> service zabbix-server start
shell> service zabbix-server stop
shell> service zabbix-server restart
shell> service zabbix-server status

上述命令在大多數的 GNU/Linux 系統下都可以正常完成。如果是其他系統,你可能要嘗試以下命令來運行:

shell> /etc/init.d/zabbix-server start
類似的,停止、重啓、查看狀態,則需要執行以下命令:

shell> systemctl start zabbix-server.service
shell> systemctl enable zabbix-server.service

Zabbix server 的配置文件:

shell> vim /usr/local/etc/zabbix_server.conf

1.5.2 Agent

Zabbix agent 部署在被監控目標上,以主動監控本地資源和應用程序(硬盤、內存、處理器統計信息等)。

Zabbix agent 收集本地的操作信息並將數據報告給 Zabbix server 用於進一步處理。一旦出現異常 (例如硬盤空間已滿或者有崩潰的服務進程),Zabbix server 會主動警告管理員指定機器上的異常。

Zabbix agents 的極高效率緣於它可以利用本地系統調用來完成統計數據的採集。

被動和主動檢查

Zabbix agent 可以運行被動檢查和主動檢查。

被動檢查 模式中 agent 應答數據請求。Zabbix server(或 proxy)詢求數據,例如 CPU load,然後 Zabbix agent 返還結果。

主動檢查 處理過程將相對複雜。Agent 必須首先從 Zabbix sever 索取監控項列表以進行獨立處理,然後會定期發送採集到的新值給 Zabbix server。

是否執行被動或主動檢查是通過選擇相應的監控項類型來配置的。 Zabbix agent 處理“Zabbix agent”或“Zabbix agent(active)”類型的監控項。

通過二進制包安裝的組件

Zabbix agent 進程以守護進程(Deamon)運行。Zabbix agent 的啓動可以通過執行以下命令來完成:

shell> service zabbix-agent start
shell> service zabbix-agent stop
shell> service zabbix-agent restart
shell> service zabbix-agent status

上述命令在大多數的 GNU/Linux 系統下都可以正常完成。如果是其他系統,你可能要嘗試以下命令來運行:

shell> /etc/init.d/zabbix-agent start

類似的,停止、重啓、查看狀態,則需要執行以下命令:

shell> systemctl status zabbix-agent.service
shell> systemctl enable zabbix-agent.service

1.5.3 Proxy

Zabbix proxy 是一個可以從一個或多個受監控設備採集監控數據並將信息發送到 Zabbix server 的進程,主要是代表 Zabbix server 工作。 所有收集的數據都在本地緩存,然後傳輸到 proxy 所屬的 Zabbix server。

部署Zabbix proxy 是可選的,但可能非常有利於分擔單個 Zabbix server 的負載。 如果只有代理採集數據,則 Zabbix server 上會減少 CPU 和磁盤 I/O 的開銷。

Zabbix proxy 是無需本地管理員即可集中監控遠程位置、分支機構和網絡的理想解決方案。

Zabbix proxy 需要使用獨立的數據庫。

通過二進制包安裝的組件

Zabbix proxy 進程以守護進程(Deamon)運行。Zabbix proxy 的啓動可以通過執行以下命令來完成:

shell> service zabbix-proxy start
shell> service zabbix-proxy stop
shell> service zabbix-proxy restart
shell> service zabbix-proxy status

上述命令在大多數的 GNU/Linux 系統下都可以正常完成。如果是其他系統,你可能要嘗試以下命令來運行:

shell> /etc/init.d/zabbix-proxy start

zabbix_proxyd的配置文件:

shell> vim /usr/local/etc/zabbix_proxy.conf

1.5.4 Java gateway

從 Zabbix 2.0 開始,以 Zabbix 守護進程方式原生支持監控 JMX 應用程序就存在了,稱之爲“Zabbix Java gateway”。Zabbix Java gateway 的守護進程是用 Java 編寫。爲了在特定主機上找到 JMX 計數器的值,Zabbix server 向 Zabbix Java gateway 發送請求,後者使用 JMX 管理 API 來遠程查詢相關的應用。該應用不需要安裝額外的軟件。只需要在啓動時,命令行添加-Dcom.sun.management.jmxremote選項即可。

Java gateway 接受來自 Zabbix server 或 Zabbix proxy 的傳入連接,並且只能用作“被動 proxy”。與 Zabbix proxy 相反,它也可以從 Zabbix proxy (Zabbix proxy 不能被鏈接)調用。在 Zabbix server 或 Zabbix proxy 配置文件中,可以直接配置每個 Java gateway 的訪問,因此每個 Zabbix pserver 或 Zabbix proxy 只能配置一個 Java gateway。如果主機將有 JMX agent 或其他類型的監控項,則只將 JMX agent 監控項傳遞給 Java gateway 進行檢索。

當必須通過 Java gateway 更新監控項時,Zabbix server 或 proxy 將連接到 Java gateway 並請求該值,Java gateway 將檢索該值並將其傳遞迴 Zabbix server 或 Zabbix proxy。 因此,Java gateway 不會緩存任何值。

Zabbix server 或 Zabbix proxy 具有連接到 Java gateway 的特定類型的進程,由 StartJavaPollers 選項控制。在內部,Java gateway 啓動多個線程,由 START_POLLERS 選項控制。 在服務器端,如果連接超過 Timeout 選項配置的秒數,它將被終止,但 Java gateway 可能仍在忙於從 JMX 計數器檢索值。 爲了解決這個問題,從 Zabbix 2.0.15、Zabbix 2.2.10 和 Zabbix 2.4.5 開始,Java gateway 中有 TIMEOUT 選項,允許爲 JMX 網絡操作設置超時。

Zabbix server 或 proxy 嘗試儘可能地將請求彙集到單個 JMX 目標(受監控項取值間隔影響),並在單個連接中將它們發送到 Java Gateway 以獲得更好的性能。

此外,建議讓 StartJavaPollers 選項的值小於或等於 START_POLLERS,否則可能會出現 Java gateway 中沒有可用線程來爲傳入請求提供服務的情況。

以下部分描述瞭如何獲取和運行Zabbix Java gateway,如何配置 Zabbix server(或 Zabbix proxy)來使用 Zabbix Java gateway 進行 JMX 監控,以及如何在 Zabbix GUI 中配置與特定 JMX 計數器對應的 Zabbix 監控項。

1.5.5 Sender

Zabbix sender 是一個命令行應用程序,可用於將性能數據發送到 Zabbix server 進行處理。

該實用程序通常用於長時間運行的用戶腳本,用於定期發送可用性和性能數據。

要將結果直接發送到 Zabbix server 或 proxy,必須配置 trapper 監控項 類型。

運行 Zabbix sender

一個運行 Zabbix UNIX sender 的例子:

shell> cd bin
shell> ./zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43

其中:

  • z - Zabbix server 主機(也可以使用 IP 地址)
  • s - 被監控主機的名稱(在前端註冊)
  • k - 監控項鍵值
  • o - 要發送的值

1.5.6 Get

Zabbix get 是一個命令行應用,它可以用於與 Zabbix agent 進行通信,並從 Zabbix agent 那裏獲取所需的信息。

該應用通常被用於 Zabbix agent 故障排錯。

運行 Zabbix get

一個在 UNIX 下運行 Zabbix get 以從 Zabbix agent 獲取 processor load 的值的例子。

shell> cd bin
shell> ./zabbix_get -s 127.0.0.1 -p 10050 -k system.cpu.load[all,avg1]

另一個運行 Zabbix get 以從網站捕獲一個字符串的例子:

shell> cd bin
shell> ./zabbix_get -s 192.168.1.1 -p 10050 -k "web.page.regexp[www.zabbix.com,,,\"USA: ([a-zA-Z0-9.-]+)\",,\1]"

請注意,此處的監控項鍵值包含空格,因此引號用於將監控項鍵值標記爲 shell。 引號不是監控項鍵值的一部分;它們將被 shell 修剪,不會被傳遞給Zabbix agent。

Zabbix get 接受以下命令行參數:

  -s --host <host name or IP>      指定目標主機名或IP地址
  -p --port <port number>          指定主機上運行 Zabbix agent 的端口號。默認端口10050
  -I --source-address <IP address> 指定源 IP 地址
  -k --key <item key>              指定要從監控項鍵值檢索的值
  -h --help                        獲得幫助
  -V --version                     顯示版本號
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章