Zabbix 安裝好就放在那無論了,覺得不須要調優。直到最近出現了以下一堆告警。mysql
描述下咱們的環境sql
硬件:8核 32G 數據庫
軟件:Centos7.6 Zabbix4.0、Httpd2.四、PHP7.三、MySQL5.6緩存
出現告警時,查看系統資源使用率並不高。猜想是 Zabbix-Server 的配置問題,修改以下配置,已去掉不相關安全
# 本機經過socket鏈接更快 DBSocket=/home/work/mysqldata/data/mysql.sock # 輪詢進程的初始實例數量。默認5 StartPollers=30 # 不可達主機 (包括IPMI 和 Java)的輪詢進程的初始實例數量。默認1 StartPollersUnreachable=20 # trappers進程實例數量。Trappers接受來自Zabbix發送者、主動agents和主動proxies的傳入鏈接。默認5 StartTrappers=15 # 自動發現子進程實例個數。默認1 StartDiscoverers=5 # HTTP 輪詢器子進程實例個數。默認1 StartHTTPPollers=5 #Zabbix 執行 housekeeping 的頻率 (單位爲小時)。housekeeping負責從數據庫中刪除過時的信息。默認1 HousekeepingFrequency=24 #Zabbix 緩存更新頻率, 單位秒。默認60 CacheUpdateFrequency=180 # 歷史緩存數據大小, 單位字節.存儲歷史數據。默認8 HistoryCacheSize=64M # 歷史索引緩存大小, 單位字節. # 用於索引歷史緩存中歷史數據的共享內存大小. #緩存一個item大概須要索引的大小爲100字節.item表明一個監控項,按照100000個監控項來算:100000*100/1024/1024=9.6M HistoryIndexCacheSize=10M # 歷史數據緩存大小, 單位bytes. # 緩存item歷史數據請求的共享內存大小. # 0即禁止緩存 (不建議). # 當緩存大小超過共享內存時,每5分鐘會向服務器日誌寫入一條警告信息. ValueCacheSize=128M
以上是Zabbix層面的優化,若是是系統資源不足,則要考慮以下幾個層面。性能優化
服務器硬件 服務器
想經過幾個簡單的配置讓服務器提升成倍的性能,想法很好,可是基本不太現實。簡單的說,你須要搭配更好的CPU、更大的內存,更快的硬盤:條件容許的花,能夠考慮購買SSD,它比更大的cpu和更大的內存帶來的效果更好,或者考慮使用SAS 15K硬盤,組raid等等,總之一句話,配置優化不動的狀況,增長硬件投入,別絞盡腦汁搜索:zabbix如何優化之類的文章,你在浪費時間。app
操做系統socket
使用最新的操做系統,優化、定製化操做系統內核。應該會有些做用,可是確定不大。tcp
數據庫優化
DBsock優化
若是MySQL和zabbix server在同一臺服務器上,socket鏈接要比tcp鏈接要更快。
數據庫分離
將數據庫服務器獨立,數據庫和zabbix資源互相獨立,例如:能夠購買一臺RDS
數據庫引擎
使用MySQL5.6或者更高版本,自從MySQL被Oracle收購了,它的性能確實有很多的提高。請必定選擇innodb,別選擇myisam,由於zabbix在innodb的性能比在myisam快1.5倍,並且myisam不安全,zabbix監控數據量很大,一旦表壞了,那就是一個悲劇。
mysql分區,history等等表數據量較大,能夠試着分區替身性能。
其餘優化
一、減小history保存時間
二、減小item獲取間隔時間
三、減小沒必要要的監控項