一文說透Zabbix的主動模式與被動模式

潇湘隐者發表於2024-12-02

在Zabbix中,主動模式(active mode)和被動模式(passive mode)是Zabbix代理(Zabbix Agent)的兩種工作模式。Zabbix的主動模式與被動模式是其在資料收集與監控方面的兩種不同工作方式,這兩種模式都是針對Zabbix Agent而言的。本文要細說一些Zabbix主動模式與被動模式的下相關知識點。這裡對各個細節問題進行一下歸納總結。如有疏漏或不對的地方,敬請指正!

被動模式:

被動模式就是Zabbix server向Zabbix agent發出指令獲取資料,即Zabbix agent被動的去獲取資料並返回給Zabbix server, Zabbix server週期性的向agent索取資料的指令, 這種模式的最大問題就是會加大Zabbix server的工作量, 成百上千臺伺服器的環境下,Zabbix server可能不能及時獲取到最新資料,這個也是預設的工作方式。

Zabbix被動模式的特點:

  • 在被動模式下,Zabbix Server主動向Zabbix Agent傳送請求來獲取相關的監控指標資料。Zabbix Server是從Zabbix Agent拉取資料的方式(pull方式)。
  • Zabbix Agent在TCP埠10050上監聽、等待Zabbix Server的請求。
  • 必須在引數zabbix_agentd.conf檔案中設定引數Server的值

主動模式:

在主動模式下,Zabbix Agent主動採集資料並返回給Zabbix Server。從原理上來說,就是Zabbix Agent自動獲取監控項資料,並將這些資料推送給Zabbix Server。在一定程度上,主動模式可以減輕Zabbix Server的壓力。主動模式下,Zabbix Agent每隔N秒(N值由引數RefreshActiveChecks決定,預設值為RefreshActiveChecks=120)推送一次資料。

Zabbix主動模式的特點:

  • Zabbix Agent不再監聽任何埠,而是定期向Zabbix Server的TCP埠10051(預設埠)傳送資料 。
  • 要配置主動模式,需要在Zabbix Agent的配置檔案zabbix_agentd.conf中設定ServerActive引數為Zabbix Server的地址,並確保Hostname引數正確設定 。
  • 主動模式下,Zabbix Agent主動向Zabbix Server推送資料。

注意:這裡所謂的主動模式和被動模式是指Zabbix Agent是主動推送資料還是被動接受指令去獲取資料。如果你這樣理解的話,就能很容易理解主動模式和被動模式了。

優缺點對比:

被動模式優點:

  • 配置簡單,安裝後即可使用,因此也成為 Zabbix 的預設工作模式。
  • 可以減少被監控裝置的負擔/負載。
  • 適合小規模環境使用。
  • 適合客戶端資源有限的情況,如低配置的監控裝置。

被動模式缺點:

  • 會增加 Zabbix Server 的負荷,尤其是在有大量 Agent 節點時。
  • 可能會出現資料延遲的情況。 從時間開銷和傳送資料量上都處於劣勢,對 Zabbix-Server 的效能開銷較大

主動模式優點:

  • 可以減輕 Zabbix Server 的壓力,特別是在監控大量主機時。

  • 可以監控不可達的遠端裝置。

  • 監控本地網路不穩定區域。

  • 簡化 Zabbix 分散式監控的維護。

  • 主動模式下,客戶端會定期主動傳送資料,可以更快地獲取到監控資訊

主動模式缺點:

  • 對於客戶端的資源佔用相對較高。
  • 每個代理只能有一個主動檢查程序,且不能增加檢查的程序數量。可能導致一些監控項沒有收到資料而被計算到佇列中。

注意,每個代理可以同時以兩種模式執行。可以讓一臺機器在被動模式下執行一些監控項,在主動模式下執行一些監控項。這是使用相同的Agent完成的,不同之處在於配置檔案。

埠要求:

不管主動模式還是被動模式,你都可能要找網路管理員在防火牆上開通相關埠。那麼你對主動模式和被動模式需要開啟哪些埠熟知嗎?

被動模式:需要確保Zabbix Server可以連線到Zabbix Agent的TCP埠10050。也就是說只需開通Zabbix Server訪問Zabbix Agent所在伺服器的10050埠即可。

主動模式:需要確保Zabbix Agent可以訪問Zabbix Server的TCP埠10051。通常不需要開啟任何入站埠,因為Agent是向外傳送資料的。

那麼在這裡就有一個很很意思的問題,如下所示:

  1. 被動模式下,Agent的埠設定10050, 那麼主動模式下,埠是否需要設定10051? 答案是主動模式下,不需要設定埠10051,因為這裡是設定Zabbix Agent的埠,主動模式下,只需要Zabbix Agent能訪問Zabbix Server的10051埠。
  2. 主動模式下,需要設定下面Agent的資訊嗎?這條資訊可以移除嗎? 答案,如果使用主動模式下,可以不用設定介面資訊。可以。當然前提是除了模板,你沒有設定任何監控項。

相關文章