斷圖現象
今天看到zabbix發送screen的郵件顯示所有服務器system的圖表出現了一部分的斷點,主要時間集中在14:57--15:01;15:32-15:39之間以下是截取的zabbix圖形:
貌似提示連接中斷
可能出現的原因
1.同時這種問題也有可能是zabbix-server監控的主機太多了,並且監控方式為被動
2、當主機數量過多的時候,由Server端去收集數據,Zabbix會出現嚴重的性能問題,主要表現如下:
1、Web操作很卡,容易出現502
2、圖層斷裂
3、開啟的進程(Pollar)太多,即使減少item數量,以后加入一定量的機器也會有問題
所以下面主要往兩個優化方向考慮:
1、用Proxy或者Node模式做分布式監控
2、調整Agentd為主動模式
由於第一個方案需要增加物理機器,所以先嘗試第二方案
一、Agentd的配置調整:
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,關閉被動模式
二、Server的配置調整:
StartPollers=100
首先把這個主動收集數據進程減少,原來開到700多
StartTrappers=200
然后把這個負責處理Agentd推送過來的數據的進程開大一些,就可以了
三、調整模板
建議完整克隆一個Template OS Linux 模板來改,需要調整的地方就是:
把所有的item的類型由原來的“zabbix代理”改成“zabbix端點代理程序(主動式)”
只需要簡單的幾步,就完成了主動模式的切換,調整之后服務器不卡了,圖層不裂了,進程也少了。
2、主動模式跟被動模式模糊
玩過zabbix的童鞋都知道在關於zabbix_agent客戶端監控主要有倆種模式,一種是主動模式,一種是被動模式。
主動模式:zabbix_agent主動收集主機上面的信息,將它提交給server端
被動模式:zabbix_server主動去zabbix_agent上面抓取數據信息
今天中午我們公司的agent.ping這個監控項發生報警,在這個監控項我們采用的是zabbix_agent(active)模式,即由客戶端自己收集數據發送給server端,因為之前我們一直是zabbix_agent的模式,中午將它更改未主動模式,結果就有20多台服務器報警zabbix agent on #### unreachable for 5 minute,當看到這個信息之后,我立馬就去觀察zabbix_agent端的日志,在日志中全部顯示的是
1800:20150902:191605.465 active check configuration update from [:10051] started to fail (cannot connect to [[10.10.251.5]:10051]: [0x0000274D] 由於目標計算機積極拒絕,無法連接。) 1800:20150902:192312.403 active check configuration update from [:10051] is working again 1800:20150907:111627.125 active check configuration update from [:10051] started to fail (cannot connect to [[10.10.251.5]:10051]: [0x0000274D] 由於目標計算機積極拒絕,無法連接。) 1800:20150907:120350.378 active check configuration update from [:10051] is working again 1800:20150909:094456.703 active check configuration update from [:10051] started to fail (ZBX_TCP_READ() failed: [0x0000274C] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。) 1800:20150909:094717.398 active check configuration update from [:10051] is working again
全部是如上的這種錯誤,但是打開任意一台主機的圖形數據,發現圖形數據還是連續的,並沒有出現昨天的那種產生圖形中斷的情況,就在這個時候我想到在百度上面開啟zabbix_agent(active)模式,上面特意強調了倆個參數,一個是ServerActive和Hostname這倆個參數,ServerActive這個參數指的是客戶端將自己收集到的數據發送給誰,Hostname則是顯示這個數據是由誰發送的。然后我就隨意打開幾台主機,果然發現它們的配置文件里面Hostname這個參數未空,並且在zabbix WEB界面上的Hostname填寫的都是主機的主機名,然后我把配置文件里面的Hostname和WEB界面端的Hostname全部更改未主機的IP,過了一段時間之后,報警就消失了。
最后我總結了一下,在zabbix添加和安裝的時候就有強調web界面和配置文件中Hostname主機名必須保持一致,否則zabbix WEB界面有可能接收不到數據,估計當初zabbix的添加人員或許注意到了這個問題,但是由於使用的是zabbix_agent模式,再加上zabbix並沒有產生報警,所以將這個問題給忽視不計了,結果等到我們由於zabbix壓力增大進行優化之后才會導致這種事情發生。