zabbix_server端當主機數量過多的時候,由Server端去收集數據,Zabbix會出現嚴重的性能問題,主要表現以下:bash
一、當被監控端到達一個量級的時候,Web操做很卡,容易出現502服務器
二、圖層斷裂app
三、開啓的進程(Pollar)太多,即便減小item數量,之後加入必定量的機器也會有問題tcp
因此下面主要往兩個優化方向考慮:分佈式
一、添加Proxy節點或者Node模式作分佈式監控ide
二、調整Agentd爲主動模式性能
因爲第一個方案須要增長物理機器,因此首先嚐試第二方案。測試
1、被監控端 zabbix_Agentd.conf 的配置調整:優化
LogFile=/tmp/zabbix_agentd.log StartAgents=0 #客戶端agent模式,僅爲主動模式,值爲0的時候,被監控端的zabbix_agentd 不監聽本地端口,因此沒法在 netstat -tunpl 中查看到zabbix_agentd進程 ServerActive=**.**.**.** #zabbix_server的ip Hostname=test_host #重要:主機名 RefreshActiveChecks=1800 #被監控端到服務器獲取監控項的週期 BufferSize=200 #被監控端存儲監控信息的空間大小 Timeout=10 #超時時間
比較重要的參數是ServerActive和Hostname,ServerActive是指定Agentd收集的數據往哪裏發送,Hostname是必需要和Server端添加主機時的主機名同樣,這樣Server端接收到數據才能找到對應關係。spa
2、Server端的zabbix_server.conf 配置調整:
StartPollers=100
首先把這個主動收集數據進程減小,原來開到700多,囧
StartTrappers=200
而後把這個負責處理Agentd推送過來的數據的進程開大一些,就能夠了
3、調整模板
建議完整克隆一個Template OS Linux 模板來改,須要調整的地方就是:
而後修改克隆的模板名稱
而後修改每個 item 的監控模式
所有勾選
而後選擇 Mass update 批量修改
修改這裏
而後選擇 自動發現策略
點擊items
這個模板就作好了
四,添加一臺主動模式的主機
建立一臺新的主機
這裏的hostname必須填入被監控端zabbix_agentd.conf中配置的主機名 ,agent類型,IP地址填入0.0.0.0 ,端口填入0 保存
第二頁關聯監控模板
最後,啓動被監控端的zabbix_agentd服務。
而後就查看 zabbix_server.log 看是主動監控主機是否可以正常監控
若是不能正常監控,那麼使用tcpdump抓下被監控端的數據包,若是不能抓取數據包,請檢查防火牆配置。
還能夠查看 latest data 來查看是否可以正常獲取被監控端發來的監控值。
在host主機列表中,好像沒法顯示被監控端的監控類型。可是並不影響監控。
好了,測試完畢了。