zabbix_server端當主機數量過多的時候,由Server端去收集數據,Zabbix會出現嚴重的性能問題,主要表現如下:
1、當被監控端到達一個量級的時候,Web操作很卡,容易出現502
2、圖層斷裂
3、開啓的進程(Pollar)太多,即使減少item數量,以後加入一定量的機器也會有問題所以下面主要往兩個優化方向考慮:
1、添加Proxy節點或者Node模式做分佈式監控
2、調整Agentd爲主動模式
由於第一個方案需要增加物理機器,所以首先嚐試第二方案。
一、被監控端 zabbix_Agentd.conf 的配置調整:
LogFile=/tmp/zabbix_agentd.log
StartAgents=0 #客戶端agent模式,設置爲0表示關閉被動模式,被監控端的 zabbix_agentd 不監聽本地端口,所以無法在 netstat -tunpl 中查看到zabbix_agentd進程
#Server=10.10.10.201 如果設置爲純被動模式,則應該註釋掉這一條指令
ServerActive=**.**.**.** #主動模式的server IP地址
Hostname=test_host #重要:客戶端的hostname,不配置則使用主機名
RefreshActiveChecks=120 #被監控端到服務器獲取監控項的週期,默認120s即可
BufferSize=200 #被監控端存儲監控信息的空間大小
Timeout=10 #超時時間
注:純主動模式下的zabbix agent,只能支持Zabbix Agent (Active)類型的監控項。
二、調整監控模板
建議完整克隆一個Template OS Linux 模板來改:
1.點擊Template OS Linux 模板名稱
2.點擊最下方的Full clone(全克隆)
3.修改模板名稱
4.點擊添加
5.進入模板列表找到剛纔添加的模板 並點擊監控項
6.全選
7.最下方找到批量更新
8.類型打勾 選擇主動式
9.更新
10.更新自動發現規則的監控項
11.按照剛纔的方法更新監控項
12.把不支持主動式的監控項暫停
三、添加主機
1.配置主機
2.配置模板完成
添加完成後,你會發先zabbix的Z燈亮不亮:
因爲服務器是基於被動模式的,如果服務端無法直接連接到客戶端被動模式端口這個燈是不綠的,就算是使用主被模式數據上來,這個燈也不綠
四、測試數據
因爲有延遲,這是我之前用同樣方式添加的主機數據視圖:
說明監控到了數據。