一、首先咱們來分析一個硬件需求,這裏我以400個agent計算,CPU建議是4核,內存不要少於8GB,硬盤只要不是用了好久的主機就行,容量的話建議300GB基本就夠使用好一段時間了,若是agent太多,可使用分佈式監控。前端
二、服務器配置文件說明mysql
#zabbix-server的日誌文件路徑 LogFile=/tmp/zabbix_server.log ##當日志文件達到多大時進行輪詢操做 LogFileSize=100 #數據名稱 DBName=zabbix #數據庫受權用戶 DBUser=zabbix #數據庫受權用戶的密碼 DBPassword=zabbix #通常狀況下默認便可(模式認識5) StartPollers=50 初始的Unreachable主機檢查進程(也就是不可達的進程數) StartPollersUnreachable=30 ##打開的進程數 StartTrappers=5 #同上,意思是同時開多少個ping檢測的進程,不易太大,特別耗cpu和數據庫鏈接數 StartPingers=10 #同上,默認便可 StartDiscoverers=5 #這裏只服務器IP地址,記得必定要添加上服務器的內網ip ListenIP=127.0.0.1,192.168.1.58 #緩存的大小 CacheSize=512M 多少秒更新一次配置緩存 CacheUpdateFrequency=100 #預先foke DB Syncers的數量,1.8.5之前最大值爲64 StartDBSyncers=10 #歷史數據緩存大小 HistoryCacheSize=1024M #3.0.0開始支持,歷史索引大小,一個監控項須要100bytes來存儲 HistoryIndexCacheSize=512M 趨勢圖歷史數據緩存大小 TrendCacheSize=512M #lue緩存大小,當緩存超標了,將會每隔5分鐘往server日誌裏面記錄 ValueCacheSize=512M #處理trapper數據的超時時間 Timeout=2 #間隔多少秒再次檢測主機是否可用 UnavailableDelay=90 間隔多少秒再次檢測主機是否可達。 UnreachableDelay=90 #短信報警模板路徑 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #fping檢測路徑 FpingLocation=/usr/local/sbin/fping 多慢的數據庫查詢將會被記錄,單位:毫秒,0表示不記錄慢查詢。只有在DebugLevel=3時,這個配置纔有效。 LogSlowQueries=3000
參數 | 是否必須 | 範圍 | 默認值 | 描述 |
---|---|---|---|---|
AlertScriptsPath | 否 | /usr/local/share/zabbix/alertscripts | 自定義告警腳本的路徑,取決於編譯時候的datadir參數 | |
AllowRoot | 否 | 0 | 是否容許Zabbix以root用戶啓動,設爲0的時候server默認會用zabbix用戶啓動,1則能夠以root啓動,此參數在2.2.0開始才支持 | |
CacheSize | 否 | 128K-8G | 8M | 用於緩存主機、監控項、觸發器的數據,在2.2.3以前最大值爲2G |
CacheUpdateFrequency | 否 | 1-3600 | 60 | Zabbix更新緩存數據的頻率,單位爲秒 |
DBHost | 否 | localhost | 數據庫的主機地址 | |
DBName | 是 | 數據庫名 | ||
DBPassword | 否 | 數據庫密碼 | ||
DBPort | 否 | 1024-65535 | 3306 | 數據庫端口 |
DBSchema | 否 | DB二、PG的Schema名稱 | ||
DBSocket | 否 | /tmp/mysql.sock | MySQL Socket的路徑 | |
DBUser | 否 | DB用戶名 | ||
DebugLevel | 否 | 0-5 | 3 | Debug級別,0:ZabbixServer啓停信息。1:關鍵信息。2:錯誤信息。3:警告信息;4:調試級別。5:所有日誌信息 |
ExternalScripts | 否 | /usr/local/share/zabbix/externalscripts | 腳本路徑,與編譯的datadir有關 | |
FpingLocation | 否 | /usr/sbin/fping | Fpgin的路徑,確保是root用戶下而且設置了SUID標籤 | |
HistoryCacheSize | 否 | 125K-2G | 16M | 緩存歷史數據的內存大小 |
HistoryIndexCacheSize | 否 | 125k-2G | 4M | 3.0.0開始支持,歷史索引大小,一個監控項須要100bytes來存儲 |
HousekeepingFrequency | 否 | 0-24 | 1 | Housekeeper清理歷史數據的頻率 |
Include | 否 | 用來包含其餘配置文件,例如/absolute/path/to/config/files/*.conf,2.4.0以後纔開始支持 | ||
JavaGateway | 否 | 2.0.0開始支持,Zabbix Java網關地址 | ||
JavaGatewayPort | 否 | 1024-32767 | 10052 | Zabbix Java網關偵聽的端口 |
ListenIP | 否 | 0.0.0.0 | 從1.8.3開始支持多個IP | |
ListenPort | 否 | 1024-32767 | 10051 | 偵聽Trap的端口 |
LoadModule | 否 | 擴展模塊 | ||
LoadModulePath | 否 | 擴展模塊路徑 | ||
LogFile | 是 | 日誌文件的名稱 | ||
LogFileSize | 否 | 0-1024 | 1 | 單位爲MB,每份日誌文件最大的大小,0表示禁用日誌輪轉 |
LogType | 否 | file | 日誌輸出的類型,file:文件日誌,system:寫到syslog,console:控制檯,3.0.0開始支持 | |
LogSlowQueries | 否 | 0-3600000 | 0 | 慢查詢日誌,0:不記錄,1.8.2開始支持 |
MaxHousekeeperDelete | 否 | 0-1000000 | 5000 | 每一個HouseKeeper任務刪除的最大記錄數,1.8.2開始支持 |
PidFile | 否 | /tmp/zabbix_server.pid | PID文件名 | |
ProxyConfigFrequency | 否 | 1-604800 | 3600 | ZabbixServer向Proxy更新配置文件的頻率 |
SenderFrequency | 否 | 5-3600 | 30 | Zabbix發送未發送成功的告警頻率,單位爲秒 |
SNMPTrapperFile | 否 | /tmp/zabbix_traps.tmp | SNMPTrapServer臨時文件,必須和zabbix_trap_receiver.pl的名字相同,2.0.0開始支持 | |
SourceIP | 否 | 出口IP | ||
SSHKeyLocation | 否 | SSH公鑰目錄 | ||
SSLCertLocation否 | SSL客戶端認證文件,2.4開始支持 | |||
SSLKeyLocation | 否 | SSL私鑰文件目錄,2.4開始支持 | ||
SSLCALocation | 否 | SSL CA鑰文件目錄 | ||
StartDBSyncers | 否 | 1-100 | 4 | DB同步進程數量,1.8.3開始支持,1.8.5以前最大爲64 |
StartDiscoverers | 否 | 0-250 | 1 | 自動發現的進程數量,1.8.5以前最大值爲255 |
StartEscalators | 否 | 1-100 | 1 | 檢查escalations的進程,這張表好像是告警事件表喲 |
StartHTTPPollers | 否 | 0-1000 | 1 | 初始的HTTP Poller進程 |
StartIPMIPollers | 否 | 0-1000 | 1 | 初始的IPMI Poller進程 |
StartJavaPollers | 否 | 0-1000 | 1 | 初始的JavaPoller進程 |
StartPingers | 否 | 0-1000 | 1 | ICMP pinger的初始進程 |
StartPollersUnreachable | 否 | 0-1000 | 1 | 初始的Unreachable主機檢查進程 |
StartPollers | 否 | 0-1000 | 5 | Server的初始進程 |
StartProxyPollers | 否 | 0-250 | 1 | 代理Poller的初始進程數 |
StartSNMPTrapper | 否 | 0-1 | 0 | 是否開啓SNMPTrapper進程 |
StartTimers | 否 | 0-1000 | 1 | timers進程的初始數量,它是一個用於處理時間相關的告警進程 |
StartTrappers | 否 | 0-1000 | 5 | ZabbixTraper(sender等功能用)的初始進程數量 |
StartVMwareCollectors | 否 | 0-250 | 0 | 採集VMWare信息的初始進程量 |
Timeout | 否 | 1-30 | 3 | 等待Agent的時間,單位爲秒 |
TLSCAFile | 否 | TLS證書文件 | ||
TLSCertFile | 否 | TLS證書文件 | ||
TLSCRLFile | 否 | TLS證書文件 | ||
TLSKeyFile | 否 | TLS證書文件 | ||
TmpDir | 否 | /tmp | 臨時文件目錄 | |
TrapperTimeout | 否 | 1-300 | 300 | Trapper處理新數據的最長時間 |
TrendCacheSize | 否 | 128K-2G | 4M | 趨勢數據緩存的大小 |
UnavailableDelay | 否 | 1-3600 | 60 | 當主機不可用了,多久檢查一次該主機的可用性,單位爲秒 |
UnreachableDelay | 否 | 1-3600 | 15 | 當主機不可到達了,多久檢查一次該主機的可用性,單位爲秒 |
UnreachablePeriod | 否 | 1-3600 | 45 | 當主機不可達多少秒後,設置爲主機不可用 |
User | 否 | zabbix | 非root運行的帳號 | |
ValueCacheSize | 否 | 0,128k-64G | 8M | 歷史數據緩存大小,0爲不緩存, |
VMwareCacheSize | 否 | 256K-2G | 8M | VMWare檢查可用的緩存大小 |
VMwareFrequency | 否 | 10-86400 | 60 | 獲取VMWare數據之間的間隔 |
VMwarePerfFrequency | 否 | 10-86400 | 60 | 獲取VMWare性能計數器之間的間隔 |
VMwareTimeout | 否 | 1-300 | 10 | 等待VMWare返回數據的最長時間 |
一、首先全部的配置都是在書庫裏面,其實也能夠前端直接導出就行,可是比較麻煩,因此我比較喜歡數據庫備份,簡單粗暴。由於這裏我使用的是mariadb10.3的版本數據庫,因此不能用原來的xtrabackup工具有份數據量,版本10開始就可使用mariabackup工具,用法基本和xtrabackup工具相同。sql
二、作好配置文件的備份。數據庫
三、數據庫的優化,這裏須要提一下,mariadb默認最大鏈接數是151個,若是你上面參數調的太大的話,須要在數據庫裏面增長max_connection參數,不然數據庫會報錯。緩存
四、緩存問題,咱們先看看下面的圖。注意buff/cache這個參數,若是不定時清理緩存的話,這個值就會愈來愈大,最後致使內存溢出,數據庫崩潰。服務器
腳本很簡單以下,每4個小時清除一下緩存。app
* */4 * * * /usr/bin/echo 3 > /proc/sys/vm/drop_caches