Zabbix調優不徹底指南(https://www.jianshu.com/p/2d911d55448f)

從學習搭建zabbix到完成各種監控、調優、二次開發已通過去了兩年,期間經過QQ學習羣、zabbix官方社區、各個技術博客整理學習了很多關於各類報錯的處理方法,如今將常見的一些報錯處理方法整理出來分享給你們。
在這先貼幾個連接,給本身過去的簡書增長些流量:
Centos7安裝Zabbix server3.4
zabbix經過SNMP監控路由器,交換機
zabbix經過IPMI監控服務器硬件
zabbix agent部署及自定義SQL server監控模版
Zabbix+Raspberry pi監控機房溫溼度
Zabbix監控服務器系統時間
zabbix監控Vmware運行
好了,廣告打完,如今開始介紹常見報錯處理方法:
問題1、Zabbix server內存溢出,沒法啓動
問題緣由:
這是因爲zabbix默認的緩存配置只有8M,當你zabbix正常運行一段時間後,大批量添加一些被監控設備就會出現這種狀況。
解決方法:
打開zabbix_server.conf文件,將CacheSize改一個較大的值,我如今給本身配的是1024M。java

vim /etc/zabbix/zabbix_server.conf
CacheSize=1024M  #第385行 

問題2、Zabbix housekeeper processes more than 75% busy
問題緣由:
因爲zabbix天天都會產生大量數據(好比我如今監控項有20K+,每30s-5min每一個監控項會產生一條數據,一天會產生很是多數據),爲了防止數據庫爆炸,zabbix會自動按期清理歷史數據(這個歷史數據保留時間值你能夠在監控項中本身配置),但清理歷史數據會影響mysql性能,就會出現上面的報錯。
解決方法:
這裏須要調整兩個參數,一個是清理時間間隔、一個是清理的最大刪除量。mysql

vim /etc/zabbix/zabbix_server.conf
HousekeepingFrequency=12  #原值是每一小時清理一次,建議改成12或24小時清理一次。第363行 MaxHousekeeperDelete=100000 #原值爲每次清理5000條,建議改成上限100000條。 第376行 

問題3、Zabbix poller processes more than 75% busy
問題緣由:
這裏可能有以下兩個緣由:
一、經過Zabbix agent採集數據的設備死機或其餘緣由致使zabbix agent死掉server獲取不到數據。
二、server向agent獲取數據時時間過長,超過了server設置的timeout時間。
解決方法:
一、增長zabbix server啓動時初始化的進程數量:sql

vim /etc/zabbix/zabbix_server.conf
StartPollers=12  #第165行,視本身服務器性能改,上限是1000,若是改完發現啓不起來能夠改小一點。 

二、修改模板自動發現規則中的保留失去的資源期間爲0。
問題四:Zabbix discoverer processes more than 75% busy
問題緣由:
看問題報警字面意思是自動發現進程忙碌數超過75%,這是由於咱們用的監控模版中帶着大量自動發現項,每個自動發現項都會產生一個進程,因此通常咱們添加多臺被監控設備時就會出現這樣的報錯。
解決辦法:
修改自動發現進程數。數據庫

vim /etc/zabbix/zabbix_server.conf
StartDiscoverers=10  #第219行,取掉#號,默認爲1,改成10,上限爲250請視本身的需求和服務器配置而定 

其次還能夠經過執行按期重啓server腳原本清理進程,釋放內存。vim

[root@m01 ~]# grep 'StartDiscoverers' /etc/zabbix/zabbix_server.conf2 3 ### Option: StartDiscoverers4 5 StartDiscoverers=56 7 [root@m01 ~]# systemctl restart zabbix-server.service [root@m01 ~]# crontab -e2 3 @daily service zabbix-server restart > /dev/null 2>&14 5 

問題五:Zabbix alerter processes more than 75% busy
問題緣由:
這個問題一般是由於郵件告警進程過於繁忙致使的,若是郵件動做間隔設置太短,在一些極端狀況下(好比核心網絡宕了)會發生大量郵件(好比上萬條郵件)告警,則會致使郵件進程繁忙或者郵件進程直接掛了。
解決方法:
修改郵件腳本,將郵件的動做改成打印時間,等待郵件徹底釋放再改回來,以下:緩存

[root@m01 ~]# cat /usr/lib/zabbix/alertscripts/sms 2 3 #!/bin/bash 4 5 echo `date` >>/tmp/sms.txt 

問題六:Zabbix poller processes more than 75% busy
問題緣由:
一、zabbix消耗的內存過多。
二、某個進程卡住了。
三、殭屍進程太多、出錯、致使慢了。
四、網絡延時。
解決方案:
這裏有兩個解決方案,第一是修改zabbix_server.conf文件調優性能,第二是簡單粗暴按期重啓server釋放進程。ruby

vim /etc/zabbix/zabbix_server.conf
StartPollers=12 #第165行,我如今設置爲12,若是你服務器性可以強能夠繼續增長,上限是1000 

其次是簡單粗暴按期重啓bash

service zabbix-server restart
crontab -e 調出Cron編輯器中增長一個計劃:
@daily service zabbix-server restart > /dev/null 2>&1 

問題七:server端日誌中出現大量first network error, wait for 15 seconds
問題緣由:
產生這個問題的主要緣由是你的監控項執行時間過長,超過了默認配置的timeout=15s時間,這裏只要將你的server、proxy和agent的conf文件中的timeout時間改長一點便可,上限是30s,若是30s還不夠那就要改系統源碼來突破這個上限了。
解決方法:服務器

vim /etc/zabbix/zabbix_server.conf #這裏以修改server端conf文件爲例,其餘兩個相似的就不列舉了 Timeout=30 #第448行 

問題八:More than 100 items having missing data for more than 10 minutes和Zabbix poller processes more than 75% busy
問題緣由:
這兩個問題的主要緣由是你配置的緩存或者進程數太少,致使監控項不少時服務器來不及處理。
解決方法:
直接增長server端進程數和緩存便可。網絡

vim /etc/zabbix/zabbix_server.conf
StartPollers=500
StartPollersUnreachable=50
StartTrappers=30
StartDiscoverers=6
CacheSize=1G
CacheUpdateFrequency=300
StartDBSyncers=20
HistoryCacheSize=512M
TrendCacheSize=256M
HistoryTextCacheSize=80M
ValueCacheSize=1G  #這裏把關於該問題的可能性能項配置一塊兒給到你們 

問題九:connection to database 'zabbix' failed: [1040] Too many connections
問題緣由:
從字面意思上能夠看出數據庫的鏈接數已經超出最大限制。
解決方法:
直接修改mysql的最大鏈接數便可。

vim /etc/my.cnf
max_connections=1000  #將最大連接數調整爲1000 systemctl restart mariadb.service #重啓SQL 

問題十:批量添加大量被監控設備後出現服務端直接宕機,報警提示Zabbix value cache working in low memory mode Less than 25% free in the configuration cache。
問題緣由:
因爲大量添加被監控設備,致使服務器內存溢出。
解決方案:

vim /etc/zabbix/zabbix_server.conf
CacheSize=1024M  #第385行 

問題十一:Zabbix alerter processes more than 75% busy
問題緣由:
從字面意思能夠看出當你產生大量告警是即會出現這個報錯,告警進程過多。
解決方案:
調整conf文件中的最大告警進程數便可。

vim /etc/zabbix/zabbix_server.conf
StartAlerters=3  #第254行,去掉#註釋,修改成10,上限爲100。 

問題十二:zabbix unreachable poller processes more than 75 busy
問題緣由:
產生這個問題的主要緣由是zabbix server端輪詢的不可達設備(被監控設備處於死機狀態、agent與server數據傳輸超過timeout時間、mysql或zabbix server的io卡住了)過多致使。
解決方案:

vim /etc/zabbix/zabbix_server.conf
StartPingers=12  #第165行,修改成12,上限是1000 

以上這些基本都是由於zabbix的zabbix_server.conf文件中的默認性能配置太低致使的錯誤,在平常使用中常常會遇到,只要進行簡單配置後從新啓動zabbix server便可解決。該貼會持續不按期更新我平常工做中遇到的各類問題。

做者:max的vlog 連接:https://www.jianshu.com/p/2d911d55448f 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。
相關文章
相關標籤/搜索