zabbix 的主動模式與被動模式
默認情況下,zabbix server 會直接去每個 agent 上抓取數據,這對於 zabbix agent 來說,是被動模式,也是默認的一種獲取數據的方式,但是,當 zabbix server 監控主機數量過多的時候,由 Zabbix Server 端去抓取 agent 上的數據,Zabbix server 會出現嚴重的性能問題,主要表現如下:
1.Web 操作界面很卡,容易出現 502 錯誤
2.監控圖形中圖層斷裂
3.監控告警不及時
所以下面只要從兩個方面進行優化:
1.通過部署多個 zabbix Proxy 模式做分佈式監控
2.調整 Zabbix Agentd 爲只動模式
Zabbix Agentd 主動模式的含義是 Agentd 端主動彙報自己收集到的數據給 Zabbix Server,這樣,Zabbix Server 就會空閒很多
下面介紹下如何開啓 agent 的主動模式
1、Zabbix Agentd 配置調整
修改zabbix_agentd.conf配置文件,主要是如下三個參數:
ServerActive=192.168.80.155(zabbix server 端 IP 地址)
Hostname=192.168.80.144(zabbix web 端添加主機的主機名)
StartAgents=1
ServerActive 是指定 Agentd 收集的數據往哪裏發送,Hostname 必須要和 zabbix web 端添加主機時的主機名對應起來,這樣 zabbix Server 端接收到數據才能找到對應關係,StartAgents 默認爲 3,要關閉被動模式,可設置StartAgents 爲 0 即可,關閉被動模式後,agent 端的 10050 端口也關閉了,這裏爲了兼容被動模式,沒有把 StartAgents 設爲 0,如果一開始就是使用主動模式的話,建議把 StartAgents 設爲 0,關閉被動模式
2、Zabbix Server 端配置調整
如果開啓了agent端的主動發送數據模式,還需要在zabbix Server端修改如下兩個參數,保證性能。
StartPollers=10 #把這個zabbix Server主動收集數據進程減少一些。
StartTrappers=200 #把這個負責處理Agentd推送過來數據的進程開大一些。
3、調整模板
因爲收集數據的模式發生了變化,因此還需要把所有的監控項的監控類型由原來的“zabbix 客戶端”改成“zabbix 客戶端(主動式)”
這樣經過三個步驟的操作,就完成了主動模式的切換,調整之後,可以觀察 zabbix server 的負載,應該會降低不少,在操作上,服務器也不卡了,圖層也不裂了,zabbix的性能問題解決了。