Zabbix是一款高性能的分佈式監控報警系統。比如現在常見的家用臺式機配置處理器I5-3470、內存4GB1600MHz、硬盤7200rpm就能夠監控1000臺左右的HOST,是的沒錯Zabbix就是可以達到這樣的高性能。Zabbix運行時間長了會出現小小的瓶頸,小小瓶頸中最大的瓶頸是數據庫。怎樣解決瓶頸,提供一些可能的方法。
首先在zabbix-server上也裝上zabbix-agent,並啓用Template App Zabbix Server模板,監控zabbix-server服務內部的各項參數。啓用模板後會新增加相應的監控項item、圖形graph、觸發器trigger。
然後當Zabbix Server出現性能瓶頸的時候就會發出報警,根據觸發器的報警項,來更改zabbix-server的配置參數來適應當前工作環境環境。
下面分析可能出現的情景
1、關於 Zabbix data gathering process busy 問題(server收集數據時zabbix-server各個進程的性能監控)
監控項如下:
比如discoverer監控項報警:“Zabbix discoverer processes 75% busy”其實這時候查看這項的監控圖或監控值可能達到了100%。
解決方法。編輯配置文件/usr/local/zabbix/etc/zabbix-server.conf,將StartDiscoverers參數增大,默認爲1,將該參數增大到合適的數值,比如5.然後重啓zabbix-server就好了,如果開啓discoverer服務進程的利用率還繼續飆高則繼續增大discoverer啓動進程數。
[root@Zabbix-Server ~] #vim /usr/local/zabbix/etc/zabbix-server.conf StartDiscoverers=5 [root@Zabbix-Server ~] #/etc/init.d/zabbix_server restart |
比如 ipmi pinger監控項報警:“Zabbix icmp pinger processes more than 75% busy”,同樣更改server的配置文件,增大參數StartPingers,由默認的1改爲合適的數值,比如5。然後重啓zabbix-server就好了。
[root@Zabbix-Server ~] #vim /usr/local/zabbix/etc/zabbix-server.conf StartPingers=5 [root@Zabbix-Server ~] #/etc/init.d/zabbix_server restart |
這個進程負載監控圖各個監控項對應配置文件的參數和默認值如下,當某個進程負載過高時調整相應的值:
Zabbix busy trapper processes, in % StartTrappers=5 Zabbix busy poller processes, in % StartPollers=5 Zabbix busy ipmi poller processes, in % StartIPMIPollers=0 Zabbix busy discoverer processes, in % StartDiscoverers=1 Zabbix busy icmp pinger processes, in % StartPingers=1 Zabbix busy http poller processes, in % StartHTTPPollers=1 Zabbix busy proxy poller processes, in % StartProxyPollers=1 Zabbix busy unreachable poller processes, in % StartPollersUnreachable=1 Zabbix busy java poller processes, in % StartJavaPollers=0 Zabbix busy snmp trapper processes, in % StartSNMPTrapper=0 Zabbix busy vmware collector processes, in % StartVMwareCollectors=0 |
2、關於 Zabbix cache usage 問題(server各種緩存數據空閒值的監控)
監控項如下:
這個緩存監控圖各個監控項對應配置文件的參數和默認值如下,當某項buffer不夠時增大容量到合適的值:
Zabbix-server: Zabbix trend write cache, % free TrendCacheSize=4M Zabbix-server: Zabbix configuration cache, % free CacheSize=8M Zabbix-server: Zabbix text write cache, % free HistoryTextCacheSize=16M Zabbix-server: Zabbix history write cache, % free HistoryCacheSize=8M Zabbix-server: Zabbix value cache, % free ValueCacheSize=8M Zabbix-server: Zabbix vmware cache, % free VMwareCacheSize=8M |
3、監控項Item得設置合適的數據採樣間隔interval,一般不要小於1分鐘,對於長時間不變的量如內存總大小、磁盤總大小等應該儘量間隔時間大點比如一天(1d)或一週(1w)。
4、實在Host太多,還能怎樣只能拆分架構,採用分佈式架構減輕zabbix server 的壓力,將這些壓力分擔到proxy上去。
5、歷史數據是數據庫爆滿的主要原因。減少歷史數據的保存時間,默認是90天,可以調成7天或更少,放心zabbix還保存着趨勢數據,宏觀上歷史數據不會丟。
6、對history類型的(history、history_uint等)大表進行拆分操作,關閉housekeeper禁止自動定期清除歷史記錄數據,因爲對於數據庫特別是對於InnoDB引擎大數據刪除貌似很蛋疼。
轉載請註明出處:http://www.xiaomastack.com/2014/10/10/zabbix02/ 謝謝!