1- zabbix server
1.1- zabbix_server.conf配置文件
#cat /etc/zabbix/zabbix_server.conf
# ListenPort=10051 #trapper的監聽端口,端口范圍1024-32767,默認是10051
#SourceIP= #出站連接的源IP地址。默認為空
# LogType=file #指定日志消息寫入的位置:system是寫到syslog里面,file是寫到本地指定的位置,console是標准輸出到屏幕,這里默認是file
LogFile=/var/zabbix/zabbix_server.log #這里一般要修改到我們指定位置的
# LogFileSize=1 #日志文件的最大大小(MB)就輪詢日志。0 - 禁用自動日志旋轉。范圍是0-1024,默認是1M大小就輪詢。
# DebugLevel=3 #日志調試級別,0-有關Zabbix進程啟動和停止的基本信息,1-關鍵信息,2是錯誤信息,3是warnings級別,4是debug信息,5是擴展調試信息
# PidFile=/tmp/zabbix_server.pid #pid文件的保存位置,也可以寫到指定目錄下
# DBHost=localhost #連接數據庫的主機地址,默認是localhost
DBName=zabbix #連接數據庫的庫名稱
# DBSchema= #模式名稱。用於IBM DB2和PostgreSQL。
DBUser=zabbix #連接指定數據庫的用戶名
DBPassword=zabbix #連接指定數據庫用戶名的密碼
# DBSocket=/tmp/mysql.sock #MySQL套接字的路徑。
# DBPort=3306 #數據庫的端口號
############高級參數############
#StartPollers=5 #初始化時,啟動子進程數量,數量越多,則服務端吞吐能力越強,對系統資源消耗越大。范圍是0-1000如非特殊默認即可
# StartIPMIPollers=0 #主要用於IPMI技術用於獲取硬件狀態場景。若無相關監控項,建議設置為0
# StartPollersUnreachable=1 #默認情況下,ZABBIX會啟用指定進程用於探測某些不可達主機的(含IPMI場景);若使用場景中含有代理端,建議保持默認;若直接agent較多,可視具體情況調整
# StartTrappers=5 #Trappers初始子進程數
# StartPingers=1 #用於設置啟用icmp協議PING主機方式啟動子進程數量,若單台代理所管理機器超過500台,建議加大此數值
StartDiscoverers=1 #用於設置自動發現主機的子進程數量,若單台代理所管理機器超過500台,可以考慮加大此數值(僅適用於直接AGENT場景)
# StartHTTPPollers=1 #HTTP主動監測的進程數
# StartTimers=1 #計時器的預分支實例數。定時器處理基於時間的觸發功能和維護期。 只有第一個定時器進程處理維護期。
# StartEscalators=1 #用於處理動作中的步驟的進程的數量
# JavaGateway= #Zabbix Java網關的IP地址(或主機名).僅在Java輪詢器啟動時才需要。
# JavaGatewayPort=10052 #Zabbix Java網關偵聽的端口。
# StartJavaPollers=0 #Java輪詢器的預分支實例數。
# StartVMwareCollectors=0 #用於設置監控VMWARE Esxi主機實例時使用,若為0則不啟用,若要監控ESXI主機,此值最少為1 ;視監控ESXI數量設置對應數值
# VMwareFrequency=60 #Zabbix將連接到VMware服務以獲取新數據的頻率。默認是60秒
# VMwarePerfFrequency=60 #Zabbix將連接到VMware服務以獲取性能數據的頻率。默認是60秒
# VMwareCacheSize=8M #划出多少共享內存用於存儲VMWARE數據,范圍是256K-2G
# VMwareTimeout=10 #指定vmware收集器等待VMware服務響應的秒數。
# SNMPTrapperFile=/tmp/zabbix_traps.tmp #指定SNMP TRAPPER時的臨時文件,用於代理端啟用SNMP TRAPPER功能時使用,必須與zabbix_trap_receiver.pl或SNMPTT配置文件中的相同。
# StartSNMPTrapper=0 #是否啟用 snmptrapper功能 ,默認不啟用=0,啟用=1(配合參數SNMPTrapperFile使用)
ListenIP=127.0.0.1 #監聽地址,留空則會在所有的地址上監聽,可以監聽多個IP地址,ip之間使用逗號分隔,默認是0.0.0.0
# HousekeepingFrequency=1 #多少小時清理一次代理端數據庫的 history, alert, and alarms,以保持代理端數據庫輕便,范圍是0-24
# MaxHousekeeperDelete=5000 #每次最多刪除歷史數據的行數,范圍是0-1000000
# SenderFrequency=30 #多少秒后重試發送失敗的報警信息,范圍是5-3600
# CacheSize=8M #配置緩存的大小(以字節為單位)。用於存儲主機,項目和觸發器數據的共享內存大小。范圍是128K-8G
# CacheUpdateFrequency=60 #Zabbix更新緩存數據的頻率,單位為秒,范圍是1-3600
# StartDBSyncers=4 #DB同步進程數量
# HistoryCacheSize=16M #歷史緩存的大小(以字節為單位)。用於存儲歷史數據的共享內存大小。范圍是128K-2G
# HistoryIndexCacheSize=4M #歷史索引緩存的大小(以字節為單位)。用於索引歷史緩存的共享內存大小。范圍是128K-2G
# TrendCacheSize=4M #用於設置划分多少系統共享內存用於存儲計算出來的趨勢數據,此參數值從一定程度上可影響數據庫讀壓力,范圍是128K-2G
# ValueCacheSize=8M #歷史值緩存的大小,以字節為單位。 用於緩存項歷史數據請求的共享內存大小。 設置為0將禁用值緩存。范圍是0,128K-64G
Timeout=4 #指定等待代理,SNMP設備或外部檢查的時間(以秒為單位)。
# TrapperTimeout=300 #Trapper處理新數據的最長時間,單位是秒,范圍是1-300
# UnreachablePeriod=45 #當主機不可達多少秒后,設置為主機不可用,單位是秒,范圍是1-3600
# UnavailableDelay=60 #當主機不可用了,多久檢查一次該主機的可用性,單位為秒,范圍是1-3600
# UnreachableDelay=15 #當主機不可到達了,多久檢查一次該主機的可用性,單位為秒,范圍是1-3600
# AlertScriptsPath=${datadir}/zabbix/alertscripts #監控報警腳本路徑,取決於編譯時候的datadir參數
# ExternalScripts=${datadir}/zabbix/externalscripts #自定義腳本存儲路徑
# FpingLocation=/usr/sbin/fping #fping的位置 確保fping二進制有root權限和SUID標志設置。
# Fping6Location=/usr/sbin/fping6 #fping6的位置 確保fping6二進制有root權限和SUID標志設置。
# SSHKeyLocation= #用於SSH檢查和操作的公鑰和私鑰的位置。
LogSlowQueries=3000 #數據庫查詢在記錄之前可能需要多長時間(以毫秒為單位)。僅當DebugLevel設置為3,4或5時才可用。0 - 不記錄慢查詢。范圍是1-3600000
# TmpDir=/tmp #臨時目錄
# StartProxyPollers=1 #啟用多少子進程與代理端通信,若代理端較多可考慮加大此數值,范圍是0-250
# ProxyConfigFrequency=3600 #proxy被動模式下,server多少秒同步配置文件至proxy。該參數僅用於被動模式下的代理。范圍是1-3600*24*7
# ProxyDataFrequency=1 #被動模式下,zabbix server間隔多少秒向proxy請求歷史數據
# AllowRoot=0 #是否允許以root身份運行服務端,0是不允許如果禁用並且服務器由“root”啟動,服務器將嘗試切換到用戶配置選項指定的用戶。,1是允許。
# User=zabbix #運行使用的用戶
# Include= #可以將單個文件或所有文件包含在配置文件中的目錄中。安裝Zabbix將在/usr/local/etc中創建include目錄,除非在編譯期間進行修改。
# SSLCertLocation=${datadir}/zabbix/ssl/certs #SSL客戶端證書的位置。 此參數僅用於Web監控。
# SSLKeyLocation=${datadir}/zabbix/ssl/keys #SSL客戶端證書的私鑰位置。此參數僅用於Web監控。
# SSLCALocation= #SSL CA鑰文件目錄
# LoadModulePath=${libdir}/modules #服務器模塊位置的完整路徑。 默認值取決於編譯選項。
# LoadModule= #<br><div id="inner-editor"></div>260/5000在服務器啟動時加載模塊。 模塊用於擴展服務器的功能。 格式:LoadModule = <module.so>模塊必須位於LoadModulePath指定的目錄中。 允許包含多個LoadModule參數。
# TLSCAFile= #包含用於對等證書驗證的頂級CA證書的文件的完整路徑名。
# TLSCRLFile= #包含撤銷證書的文件的完整路徑名。
# TLSCertFile= #包含服務器證書或證書鏈的文件的完整路徑名。
# TLSKeyFile= #包含服務器私鑰的文件的完整路徑名。
1.2- zabbix server進程
如上進程,詳細作用如下:
報警器(alerter)——該類型的進程是用來發送報警通知的;
配置同步器(configuration syncer)——用於將配置文件中的配置信息同步到內存中緩存;
數據發送器(data sender)——服務器代理節點用於發送數據的進程(服務器端沒有這類進程);
數據庫看門狗(db watchdog)——該進程用於監視zabbix系統的數據庫狀態,當數據庫狀態變為不可用時,發送警告信息(服務器代理端不支持這類型進程)。
自動發現器(discoverer)——用於自動發現設備的進程;
步驟(escalator)——用於處理動作中的步驟的進程;
心跳發送器(heartbeat sender)——服務器代理端用於發送心跳信息(服務器端沒有這類型的進程);
歷史數據同步器(history syncer)——用於寫歷史數據表;
管家(housekeeper)——用於清理過期的歷史數據的進程;
HTTP 輪詢器(http poller)——用於輪詢web類的監控項目;
Ping檢查器(icmp pinger)——用於定期的進行ICMP PING檢查;
ipmi 輪詢器(ipmi poller)——用於定期進行ipmi監控項目的檢查;
java 輪詢器(java poller)——用於輪詢java 監控項目;
分布式節點看守器(node watcher)——用於在不同的分布式節點發送歷史數據和配置信息更新的進程;
輪詢器(poller)——用於普通的被動監控項目的輪詢;
服務器代理輪詢(proxy poller)——用於服務器代理的被動輪詢;
自我監控(self-monitoring)——用於收集Zabbix系統內部的監控信息;
定時器(timer)——用於處理觸發器中也時間相關的函數和維護模式的進程;
陷入器(trapper)——用於處理主動采集、陷入以及分布式節點間或服務器代理的通信;
不可到達輪詢器(unreachable poller)——用於輪詢不可到達到的設備;
vmware 收集器(vmware collector)——負責從vmware服務進程中收集數據(服務器代理端不支持這種類型的進程);
1.3- zabbix sever 優化案例
StartPollers=160
StartPollersUnreacheable=80
StartTrappers=20
StartPingers=100
StartDiscoverers=120
Cachesize=1024M
startDBSyncers=16
HistoryCacheSize=1024M
TrendCacheSize=1024M
HIstoryTextCacheSize-512M
2- zabbix agent
2.1- zabbix_agentd.conf配置文件
#cat /etc/zabbix/zabbix_agentd.conf
# PidFile=/tmp/zabbix_agentd.pid #pid文件位置
LogFile=/tmp/zabbix_agentd.log #log文件的位置,如果不設置則使用syslog也就是寫入/var/log/message
# LogFileSize=1 #日志輪詢大小默認是1MB
# DebugLevel=3 #日志級別
# SourceIP= #出站連接的源IP地址,當系統有多個IP的時候需要制定哪個IP與代理或服務端通信
# EnableRemoteCommands=0 #是否允許來自Zabbix服務器的遠程命令。0為不允許,1為允許。
# LogRemoteCommands=0 #是否開啟日志記錄shell命令作為警告,0表示不允許,1表示允許。
#####被動檢查相關(被動模式:被動模式下,由代理或服務端主動請求AGENT,去獲取所采集到的監控數據)
Server=127.0.0.1 #在有代理情況下,此IP地址應該填寫代理服務器的IP,反之,若無代理服務器,則此IP應設置為服務端,多IP用逗號隔開
# ListenPort=10050 #agent的監聽服務端或者代理的連接端口,范圍是1024-32767,默認是10050
# ListenIP=0.0.0.0 #監聽IP
# StartAgents=3 #在被動模式下,agent啟動時啟動的子進程數量,范圍是0-100, 如果設置為0,則禁用被動檢查,並且代理將不會在任何TCP端口上偵聽。
#####主動檢查相關(主動模式:在主動模式下,AGENT端(即采集客戶端)將所采集的結果,主動提交給代理服務器或服務器,而此種情況下,代理服務器或服務器將被動接收采集信息)
# ServerActive= #主動模式下,代理端口的IP,如果沒有指定端口則默認為10051端口,若需要更改端口,則為IP:port的形式
# Hostname= #唯一,區分大小寫的主機名。需要活動檢查,並且必須與服務器上配置的主機名匹配。 如果未定義,則從HostnameItem獲取值。手工自定義一個主機名,可以和系統的主機名一樣,也可以不一樣
# HostnameItem=system.hostname #這里的優先級低於上面的Hostname。system.hostname是ZABBIX內置的一個自動獲取主機名的方法
# HostMetadata= #用於定義當前主機唯一標識符,范圍是0-255,僅適用於自動發現情況下,默認不定義。如果未定義,則將從HostMetadataItem獲取值。
# HostMetadataItem= #定義用於獲取主機元數據的項目的可選參數。主機自動注冊過程使用主要的元數據。 在自動注冊請求期間,如果指定項目返回的值超過255個字符,代理將記錄一條警告消息。 僅當未定義HostMetadata時才使用此選項。
# RefreshActiveChecks=120 #被監控的主機多久(秒)重新請求代理或服務端刷新一監控列表。范圍為60-3600秒。ZABBIX運行原理為:,zabbix客戶端啟動后,在等待RefreshActiveChecks秒后,
#開始從代理或服務端請求並下載監控項信息,保存在本地專門的buffersend中,再過RefreshActiveChecks秒后,重新獲取監控項信息。這就是為什么當配置監控項,要過一會才能生效的原因。這個數值,就是等待時間。建議,不要將此數值設置過小,以免加大AGENT端和服務端及數據庫的壓力,建議為120秒。
# BufferSend=5 #多少秒后,將BUFFER中的數據提交到代理或服務端。范圍(1-3600)此數值的大小決定了采集后,提交數據的及時性,數值越小,則提交得越頻繁,
#對服務器壓力越大,同時對AGENT端系統資源消耗越大,則表現出來的現象是報警非常及時,建議根據實際情況自行考慮,也可保持默認,若發現ZABBIX消耗資源較多,建議加大此數值。
# BufferSize=100 #此參數作用設置保存采集數據在內存中的容量大小。若此agent端監控項較多,建議加大此數值。BufferSize與BufferSend之間有聯系的。當達到bUFFERSEND或Buffersize已滿時,都會觸發數據提交動作。范圍是2-65535
# MaxLinesPerSecond=100 #代理將每秒發送到Zabbix服務器或代理處理的最大新行數,范圍是1-1000
############高級參數############
# Default: #設置項目鍵的別名。 它可以用來代替較長和更簡單的長而復雜的項目密鑰。可能存在多個別名參數。 不允許具有相同別名鍵的多個參數。 不同的別名鍵可以引用相同的項目鍵。例如:Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
# Timeout=3 #gant采集一個數據的超時時間,但是是秒,范圍是1-30
# AllowRoot=0 #是否允許ROOT帳號運行此客戶端。0:不允許,1:允許
# User=zabbix #運行agent的用戶
# Include= #加載目錄路徑或擴展配置文件路徑
#######用戶定義的監控參數#######
# UnsafeUserParameters=0 #是否啟用用戶自定義監控腳本,1啟用,0不啟用。由於ZABBIX實現監控方法的多樣性,一般都采用腳本來實現監控數據的采集,所以,建議開啟,否則功能將受限。
# UserParameter= #用戶定義的參數進行監控。 可以有幾個用戶定義的參數。格式:UserParameter = <key>,<shell命令>請參見“zabbix_agentd”目錄中的示例。
#######擴展模塊#######
# LoadModulePath=${libdir}/modules #擴展模塊路徑
# LoadModule= #擴展模塊路徑
2.2- zabbix agentd優化案例
LogFile=/tmp/zabbix_agentd.log
Server=14.18.xxx.xxx
ServerActive=14.18.xxx.xx
Hostname=119.146.xxx.xx
RefreshActiveChecks=60
BufferSize=10000
MaxLinesPerSecond=200
Timeout=30
3- zabbix_proxy
3.1- zabbix_proxy.conf配置文件
#cat /etc/zabbix/zabbix_proxy.conf
# ProxyMode=0 #代理操作模式。 0 - 代理在主動模式,1 - 代理在被動模式
# Server= #Zabbix服務器的IP地址(或主機名)。Active Proxy將從服務器獲取配置數據。當 Proxy 處於被動模式時,該參數將被忽略。
# ServerPort=10051 #Zabbix Server 監聽端口,同上只在 Proxy 為主動模式時生效
Hostname=Zabbix proxy #手工設置zabbix獲取的主機名稱
# HostnameItem=system.hostname #如果上面沒設置就按這里通過zabbix的內置函數獲取
# ListenPort=10051 #自己本地的監聽端口
# SourceIP= #多IP下要設置
# LogType=file #日志的存儲類型
LogFile=/tmp/zabbix_proxy.log #日志的存儲位置
# LogFileSize=1 #日志輪詢大小
# DebugLevel=3 #日志級別
# PidFile=/tmp/zabbix_proxy.pid #pid位置
# DBHost=localhost #連接哪個主機庫
DBName=zabbix_proxy #數據庫名稱
# DBSchema=
DBUser=zabbix #數據庫用戶名
# DBPassword= #數據庫密碼
# DBSocket=/tmp/mysql.sock #數據庫sock位置
# DBPort=3306 #數據庫端口
#########代理特定參數#########
# ProxyLocalBuffer=0 #即使數據已經與服務器同步,代理將在本地保留數據N小時。如果本地數據將被第三方應用程序使用,則可以使用此參數。范圍是0-720
# ProxyOfflineBuffer=1 #如果與Zabbix Server無連接,代理將保留數據N小時。 較舊的數據將丟失。范圍是1-720
# HeartbeatFrequency=60 #心跳消息的頻率(秒)用於監視服務器端的代理服務器的可用性。 0 - 心跳消息被禁用。 對於被動模式下的代理,該參數將被忽略。范圍是0-3600
# ConfigFrequency=3600 #代理在幾秒鍾內從Zabbix Server檢索配置數據的頻率。 對於被動模式下的代理,該參數將被忽略。范圍是1-3600*24*7
# DataSenderFrequency=1 #代理將每N秒將收集的數據發送到服務器。 對於被動模式下的代理,該參數將被忽略。范圍是1-3600
3.2- proxy 優化案例
Server=192.168.X.X #zabbix-server的ip
ServerPort=10051
Hostname=zabbix_proxy_192.168.X.X # 一定要和web界面的主機名一致
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=XXXXXX
ProxyLocalBuffer=720
ProxyOfflineBuffer=1
ConfigFrequency=60
DataSenderFrequency=1
StartPollers=1000
StartPollersUnreachable=500
StartTrappers=200
StartPingers=500
StartDiscoverers=120
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=3G
StartDBSyncers=100
HistoryCacheSize=1G
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000