Zabbix 主被動模式解析

富士康質檢員張全蛋發表於2020-07-14

Zabbix Agent的工作模式


工作模式概述:

Zabbix-Agent的工作模式可以分為主動模式(Active)和被動模式(Passive)。

主動模式是指: Zabbix-Agent將採集到的資料主動推送給 Zabbix-Server,其行為是Agent向Zabbix-Server主動發起的資料連線過程,Zabbix-Server不必等待Zabbix-Agent 的採集行為,Zabbix-Agent能夠一次批量傳送多條資料給Zabbix-Server,屬於一對多的響模式,對Zabbix-Server的效能開銷較少,適合大規模環境使用。

被動模式是指:Zabbix-Server向Zabbix-Agent請求資料,Zabbix-Agent被動接受資料請求後回應,屬於一對一的響應模式。比如有100個監控項,Zabbix-Server需要向Zabbix-Agent 請求100次,同時,Zabbix-Agent在響應Zabbix-Server時,對監控項資料採集也需要消耗時間,Zabbix-Server 只能耗著時間安靜地等待Zabbix-Agent。

相對於主動模式的高效,被動模觀時間開銷和傳送資料量上都處於劣勢,對Zabbix-Server的效能開銷較大,適合小規模環境使用。

 

主動模式和被動模式在同一個Zabbix-Agent上,是可以共存的,比如讓一部分被動模式,另一部分處於主動模式,處於主動模式的監控項由Zabbix-Agent週期性採集資料傳輸給 Zabbix-Server,處於被動模式的監控項,則由Zabbix-Server週期性地從Zabbix-Agent獲取資料。

在 Zabbix-Ageet的配置檔案中,有3個引數和工作模式有緊密關係,分別是Server,ServerActive和Hostname,如下所示:

egrep -v "(^$|^#)" /etc/zabbix/zabbix_agentd.conf

server=127.0.0.1,10.0.2.50 #被動模式連線的Zabbix-Server的IP地址

ServerActive=127.0.0.1,10.0.2.50 #主動模式連線的zabbix-server的IP地址, 開啟此項引數將會自動開啟主動模式,將其註釋掉,則會關閉主動模式

Hostname=Host-001       #在主動模式中,Hostname作為zabbix-Server處理資料的唯一依據,要求Hostname在Zabbix-Server具有唯一性,當有多個zabbix-Agent的主機名相同時會造成該主機名下的主動模式監控項資料儲存錯亂,因為在不同的時間週期內,其儲存的是不同Zabbix-Agent的資料

StartAgents=3           #Agent的程式個數,用於被動模式,如果大於0,會監聽10050埠,如果只需要主動模式,則可以將其設定為0,將被動模式關閉

詳細解釋如下:

Server被動模式:允許目標Zabbix-Server伺服器連線Zabbx-Agent,此處允許127.0.0.1和10.0.2.50訪問10050埠,多個IP地址之間用逗號分隔。

ServerActive主動模式:向目標 ZabbixServer伺服器傳送資料。 需要確保zabbix_agentd.conf 配置的主機名(Hostname)和Zabbix-Web管理介面中的主機名保持一致。

當 Zabbix-Agent 配置的主機名和 Zabbix-Web 配置的主機名不同時,Zabbix-Agent,Zabbix-Server 日誌均會報錯如下所示:

[root@localhost ~]# tail -f /var/log/zabbixsrv/zabbix_server.log
7687:20200714:212633.987 cannot send list of active checks to "192.168.179.104": host [Host-001] not found

#Zabbix-Agent向zabbix-Server發起資料請求,查詢主機名字為"Host-001"的監控項列表,而Zabbix-Serve經過查詢後,發現不存在"Host-001"因此將此錯誤記錄到日誌當中

[root@localhost ~]# tail -f /var/log/zabbix/zabbix_agentd.log 
2830:20200714:092633.925 no active checks on server [192.168.179.103:10051]: host [Host-001] not found

在 Zabbix-web管理介面上的主機列表中並不存在主機名為"Host-001"的主機

在Zabbix-Web管理介面中並不存在這個主機名的主機,需要新增 Host-001這個主機名的主機

[root@localhost ~]# tail -f /var/log/zabbix/zabbix_agentd.log  
 2842:20200714:094401.804 Got signal [signal:15(SIGTERM),sender_pid:1,sender_uid:0,reason:0]. Exiting ...
  2842:20200714:094401.808 Zabbix Agent stopped. Zabbix 4.0.17 (revision a528a0a4bc).
  2911:20200714:094401.833 Starting Zabbix Agent [Host-001]. Zabbix 4.0.17 (revision a528a0a4bc).
  2911:20200714:094401.833 **** Enabled features ****
  2911:20200714:094401.833 IPv6 support:          YES
  2911:20200714:094401.833 TLS support:           YES
  2911:20200714:094401.833 **************************
  2911:20200714:094401.833 using configuration file: /etc/zabbix_agentd.conf
  2911:20200714:094401.834 agent #0 started [main process]
  2913:20200714:094401.835 agent #1 started [collector]
  2914:20200714:094401.836 agent #2 started [active checks #1]

 

相關文章