Zabbix優化


參考

zabbix默認的配置即使機器128核心,256內存,只能抗住10-20台的監控,如果再多就需要修改配置了。

一.配置文件

server端配置文件添加如下

StartPollers=160

StartPollersUnreacheable=80

StartTrappers=20

StartPingers=100

StartDiscoverers=120

Cachesize=1024M

startDBSyncers=16

HistoryCacheSize=1024M

TrendCacheSize=1024M

HIstoryTextCacheSize-512M

二.數據庫

如果數據庫和zabbix在一台機器,可以使用socket連接,速度會提高。
數據庫zabbix來說,選擇InnoDB引擎,效率是其它引擎的1.5倍

對history類型的(history、history_uint等)大表進行拆分操作,關閉housekeeper禁止自動定期清除歷史記錄數據,因為對於數據庫特別是對於InnoDB引擎大數據刪除貌似很蛋疼。

可以對數據庫配置文件調優,因為都要提交到數據庫中,當機器很多時,數據庫壓力會很大

如果還是太多,可以考慮將mysql單獨一台,並設置讀寫分離,可以用中間件實現。

三.服務端配置

#####1.關閉服務端的housekeep
housekeep是清理歷史的機制,配置文件中,默認是每小時啟動一次,然后清除監控項設置之外的多余歷史記錄。比如mysql監控項默認保存90天,他會清除90天以外的,這會導致經常去清理,有時會報錯:Zabbix housekeeper processes more than 75% busy

2種方法
A:
編輯server端的配置文件,修改或添加如下2行,一天清理一次,並每次清理最多500行

HousekeepingFrequency=24 zabbix執行Housekeeping的頻率,單位為hours MaxHousekeeperDelete=500 每次最多刪除歷史數據的行

B:
關閉housekeep,並手動清理日志
2.2版本以下,server端配置文件添加

DisableHousekeeping=1 設置為1

2.2以上,到web界面修改

"Administration" -> "General" ,選擇"Housekeeping" ,確保history和trends欄的"Enable internal housekeeping"的對勾去掉。

或者

2.調整監控項

很多監控項都是無用的或者目前用不到的,像redis監控模板中的調閱/發布監控項應該去掉。

監控項的類型最好使用數字,盡量避免使用字符。字符在數據庫中的存儲空間使用較大,在設置trigger時也相對麻煩,並且zabbix本身處理數字的效率要相對高。如果業務需要字符類型的監控項,可以適當的降低數據采集的時間間隔以提高處理效率

Trigger中,正則表達式函數last(),nodata()的速度最快,min()、max()、avg()的速度最慢。在使用過程中,盡量選擇速度較快的函數。配置Trigger時,也應注意使用正確的邏輯,錯誤的邏輯可能導致數據庫查詢較慢的現象。

item監控性默認大部分都是保留90d(天)或者1w(周)的歷史數據,趨勢圖數據保留365天。

其實有趨勢圖數據即可,歷史數據保留7天足夠了,采集頻率,像磁盤,文件大小等很久才變化的,采集頻率可以加大,以達到緩解壓力和節省空間的作用

3.如果主機數量太多,采用代理

如果主機數量太多,可以考慮分機房,分業務,分組的方式來用代理中轉。zabbix_proxy可以代替服務端收集數據和監控,但是監控結果還是發送到服務端匯總,代理是沒有web界面的。

如果機器太多,可以用主動模式,當前所有默認都是被動模式的,客戶端啟動10051端口,服務端需要去10051取數據。

a) 減少 history 保存時間
b) 減少 item 獲取間隔時間
c) 減少不必要的監控項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM