zabbix_server端當主機數量過多的時候,由Server端去收集資料,Zabbix會出現嚴重的效能問題,主要表現如下:
1、當被監控端到達一個量級的時候,Web操作很卡,容易出現502
2、圖層斷裂
3、開啟的程式(Pollar)太多,即使減少item數量,以後加入一定量的機器也會有問題
所以下面主要往兩個優化方向考慮:
1、新增Proxy節點或者Node模式做分散式監控
2、調整Agentd為主動模式
由於第一個方案需要增加物理機器,所以首先嚐試第二方案。
一、被監控端 zabbix_Agentd.conf 的配置調整:
StartAgents=0 #客戶端agent模式,僅為主動模式,值為0的時候,被監控端的zabbix_agentd 不監聽本地埠,所以無法在 netstat -tunpl 中檢視到zabbix_agentd程式
ServerActive=*.*.*.* #zabbix_server的ip
Hostname=agent_host_name #重要:主機名
RefreshActiveChecks=1800 #被監控端到伺服器獲取監控項的週期
BufferSize=200 #被監控端儲存監控資訊的空間大小
Timeout=10 #超時時間
比較重要的引數是ServerActive和Hostname,ServerActive是指定Agentd收集的資料往哪裡傳送,Hostname是必須要和Server端新增主機時的主機名一樣,這樣Server端接收到資料才能找到對應關係。
二、Server端的zabbix_server.conf 配置調整:
StartPollers=100
首先把這個主動收集資料程式減少,原來開到700多,囧
StartTrappers=200
然後把這個負責處理Agentd推送過來的資料的程式開大一些,就可以了
三、調整模板
建議完整克隆一個Template OS Linux 模板來改,需要調整的地方就是:
然後修改克隆的模板名稱為 Template OS Linux Active Mode
然後修改每一個 item 的監控模式
全部勾選
然後選擇 Mass update 批量修改
修改type這裡為Zabbix agent(active)
然後選擇 自動發現策略同樣將裡面的監控項修改為 active 模式並儲存。
點選Item prototypes同樣將裡面的監控項修改為 active 模式並儲存這個模板就做好了
後面新增主機關聯Template OS Linux Active Mode 模板即可
新增active模板的items專案,這樣就可以定製監控了(如監控某個叢集的指定程式)