Zabbix Agent active主動模式監控

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 模板來改,須要調整的地方就是:

wKiom1W8oYKAq6gFAAONLJzL4AU178.jpg

而後修改克隆的模板名稱

wKioL1W8o8PDh8i2AAFY_WGL-cg888.jpg


而後修改每個 item 的監控模式

wKiom1W8oguC6WnaAAHXMJGjFmo886.jpg

所有勾選

wKioL1W8pFfgoM2HAAPuVXKS8_I874.jpg

而後選擇 Mass update 批量修改


修改這裏

wKiom1W8oqLBesG-AAGvL17Lkug178.jpg修改成 active 模式,保存


而後選擇 自動發現策略 

wKioL1W8pNPhdtndAAMmiFozGA0714.jpg一樣將裏面的監控項修改成 active 模式並保存。


點擊items 

wKioL1W8pX6wBMaHAAJfchGLacY152.jpg一樣將裏面的監控項修改成 active 模式並保存。


這個模板就作好了



四,添加一臺主動模式的主機

建立一臺新的主機

wKioL1W8pfqhWaAfAAQglmDX52E071.jpg這裏的hostname必須填入被監控端zabbix_agentd.conf中配置的主機名 ,agent類型,IP地址填入0.0.0.0 ,端口填入0   保存


第二頁關聯監控模板

wKiom1W8pEiC80aYAAJjE1JrhZc358.jpg保存



最後,啓動被監控端的zabbix_agentd服務。

而後就查看 zabbix_server.log 看是主動監控主機是否可以正常監控

若是不能正常監控,那麼使用tcpdump抓下被監控端的數據包,若是不能抓取數據包,請檢查防火牆配置。

還能夠查看 latest data 來查看是否可以正常獲取被監控端發來的監控值。

wKiom1W8pV-Ac8ATAAYGoLOqilw239.jpg


在host主機列表中,好像沒法顯示被監控端的監控類型。可是並不影響監控。

wKioL1W8p6-jO4ZRAALzvpXbbk0008.jpg


好了,測試完畢了。