當主機數量過多的時候,由Server端去收集數據,Zabbix會出現嚴重的性能問題,主要表現以下:bash
一、Web操做很卡,容易出現502服務器
二、圖層斷裂app
三、開啓的進程(Pollar)太多,即便減小item數量,之後加入必定量的機器也會有問題運維
因此下面主要往兩個優化方向考慮:分佈式
一、用Proxy或者Node模式作分佈式監控ide
二、調整Agentd爲主動模式性能
因爲第一個方案須要增長物理機器,因此先嚐試第二方案優化
1、Agentd的配置調整:ui
1
2
3
4
5
6
7
8
|
LogFile=
/tmp/zabbix_agentd
.log
Server=14.18.xxx.xxx
ServerActive=14.18.xxx.xx
Hostname=119.146.xxx.xx
RefreshActiveChecks=60
BufferSize=10000
MaxLinesPerSecond=200
Timeout=30
|
比較重要的參數是ServerActive和Hostname,ServerActive是指定Agentd收集的數據往哪裏發送,Hostname是必需要和Server端添加主機時的主機名對應起來,這樣Server端接收到數據才能找到對應關係,我這裏爲了兼容被動模式,沒有把StartAgents設爲0,若是一開始就是使用主動模式的話建議把StartAgents設爲0,關閉被動模式spa
2、Server的配置調整:
StartPollers=100
首先把這個主動收集數據進程減小,原來開到700多,囧
StartTrappers=200
而後把這個負責處理Agentd推送過來的數據的進程開大一些,就能夠了
3、調整模板
建議完整克隆一個Template OS Linux 模板來改,須要調整的地方就是:
把全部的item的類型由原來的「zabbix代理」改爲「zabbix端點代理程序(主動式)」
只須要簡單的幾步,就完成了主動模式的切換,調整以後服務器不卡了,圖層不裂了,進程也少了。
本文出自 「運維筆記」 博客,請務必保留此出處http://lihuipeng.blog.51cto.com/3064864/1562603