1. 數(shù)據(jù)庫(kù)優(yōu)化
1.設(shè)置數(shù)據(jù)庫(kù)分區(qū)優(yōu)化,buffer優(yōu)化,hash優(yōu)化,
說(shuō)明:數(shù)據(jù)庫(kù)分區(qū)優(yōu)化的優(yōu)點(diǎn):
數(shù)據(jù)庫(kù)history設(shè)置是保存7天。然后如果你沒(méi)有分區(qū)。雖然數(shù)據(jù)在減少但是表空間不會(huì)減少。浪費(fèi)硬盤(pán)空間的同事,緩存內(nèi)的cache部分也沒(méi)有被釋放。
分區(qū)后可以遷移分區(qū),合并分區(qū),刪除已經(jīng)沒(méi)有數(shù)據(jù)的分區(qū),優(yōu)化表空間優(yōu)化buffer內(nèi)存。
https://yq.aliyun.com/articles/434770
2.清空數(shù)據(jù)庫(kù)中的history, history_uint表;
3、監(jiān)控項(xiàng)Item得設(shè)置合適的數(shù)據(jù)采樣間隔interval,一般不要小于1分鐘,對(duì)于長(zhǎng)時(shí)間不變的量如內(nèi)存總大小、磁盤(pán)總大小等應(yīng)該盡量間隔時(shí)間大點(diǎn)比如一天(1d)或一周(1w)。
4、實(shí)在Host太多,還能怎樣只能拆分架構(gòu),采用分布式架構(gòu)減輕zabbix server 的壓力,將這些壓力分擔(dān)到proxy上去。
5、歷史數(shù)據(jù)是數(shù)據(jù)庫(kù)爆滿的主要原因。減少歷史數(shù)據(jù)的保存時(shí)間,默認(rèn)是90天,可以調(diào)成7天或更少,放心zabbix還保存著趨勢(shì)數(shù)據(jù),宏觀上歷史數(shù)據(jù)不會(huì)丟。
6、對(duì)history類(lèi)型的(history、history_uint等)大表進(jìn)行拆分操作,關(guān)閉housekeeper禁止自動(dòng)定期清除歷史記錄數(shù)據(jù),
總結(jié)
主要壓力來(lái)源數(shù)據(jù)庫(kù),history,history_unit這些數(shù)據(jù)表的數(shù)據(jù)冗余,可以定時(shí)刪除以及做一些數(shù)據(jù)庫(kù)的分區(qū),減少歷史數(shù)據(jù)的保存時(shí)間。
如果history,history_unit表,公司不需要可以直接清空
2.zabbix優(yōu)化之zabbix server優(yōu)化
StartPollers
一般規(guī)則 - 保持此參數(shù)的值盡可能低。 zabbix_server的每個(gè)附加實(shí)例都會(huì)添加已知的開(kāi)銷(xiāo), 同時(shí), 并行性增加。當(dāng)隊(duì)列平均包含最小參數(shù)數(shù)量(理想情況下,在任何給定時(shí)刻為0)時(shí),實(shí)現(xiàn)最佳實(shí)例數(shù)??梢酝ㄟ^(guò)使用內(nèi)部檢查zabbix [queue]來(lái)監(jiān)視此值。
DebugLevel 最佳值為3。
DBSocket 僅限MySQL. 建議使用DBSocket連接數(shù)據(jù)庫(kù)。 那是最快和最安全的方式。
2.配置優(yōu)化
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=1024
DebugLevel=3 #日志級(jí)別
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
StartPollers=100 #poller進(jìn)程 100
StartPollersUnreachable=30 #無(wú)法訪問(wèn)的主機(jī)輪詢(xún)進(jìn)程30
StartPingers=30 #ping輪詢(xún)數(shù)量
StartDiscoverers=30
StartTimers=10
SenderFrequency=30 #發(fā)送報(bào)警超時(shí)
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=4096M #存儲(chǔ)主機(jī),項(xiàng)目和觸發(fā)器數(shù)據(jù)的共享內(nèi)存
CacheUpdateFrequency=120 #執(zhí)行配置緩存的更新頻率
StartDBSyncers=24 #數(shù)據(jù)庫(kù)同步進(jìn)程
HistoryCacheSize=2048M
HistoryIndexCacheSize=2048M
TrendCacheSize=2048M #趨勢(shì)數(shù)據(jù)最大2G
ValueCacheSize=2048M #緩存項(xiàng)歷史數(shù)據(jù)請(qǐng)求,歷史值緩存
Timeout=30
UnreachablePeriod=120 #幾秒鐘的不可達(dá)性將主機(jī)視為不可用。 不可用
UnavailableDelay=60 #主機(jī)在不可用期間內(nèi)檢查可用性的頻率(秒)。 不可用
UnreachableDelay=5 #不可達(dá)檢測(cè)頻率 解決wait for 3 seconds
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=2000 #記錄慢查詢(xún)
HousekeepingFrequency=1 #從歷史記錄,警報(bào)和警報(bào)表中刪除不必要的信息 不超過(guò)4個(gè)小時(shí) 每隔1小時(shí)啟動(dòng)一次,刪除過(guò)期數(shù)據(jù)
MaxHousekeeperDelete=1000000 #清除過(guò)期數(shù)據(jù),超過(guò)這個(gè)閥值的行都會(huì)被清理。