Zabbix的配置文件一般有三種:
- zabbix_server.conf:zabbix server的配置文件
- zabbix_proxy.conf:zabbix proxy的配置文件
- zabbix_agentd.conf:zabbix agentd的配置文件
Zabbix安裝完成后,服務端默認的配置文件存在安裝文件夾中的etc目錄中,假設編譯的參數是“--prefix=/usr/local/zabbix”,那么服務端的配置文件則保存在“/usr/loca/zabbix/etc/”目錄下。zabbix_server.conf參數除了保證服務正常運行外,還會影響服務器的性能。如果參數設定不合理可能會導致zabbix添加主機不正常、代理端數據無法正常收集或是zabbix服務器性能嚴重下降,經常報告CPU占用過高或是IO占用過高等問題。本文說明了zabbix server的配置文件中的通用參數和大部分高級參數的具體用法,內容如下:
############ GENERAL PARAMETERS ################# ### Option: ListenPort # Listen port for trapper. //該參數用於指定服務端的監聽端口,用於監聽Proxy或Agent的連接請求。 # # Mandatory: no # Range: 1024-32767 # Default: # ListenPort=10051 ### Option: SourceIP # Source IP address for outgoing connections. //該參數用於指定服務端的IP地址。 # # Mandatory: no # Default: # SourceIP= ### Option: LogType # Specifies where log messages are written to://zabbix的日志類型 # system - syslog //寫入到系統日志 # file - file specified with LogFile parameter //寫入到指定文件 # console - standard output //寫入到標准輸出 # # Mandatory: no # Default: # LogType=file ### Option: LogFile # Log file name for LogType 'file' parameter. //日志文件的存儲路徑 # # Mandatory: no # Default: # LogFile= LogFile=/tmp/zabbix_server.log ### Option: LogFileSize # Maximum size of log file in MB. # 0 - disable automatic log rotation. //指定日志文件的大小,單位MB。0表示禁用日志輪轉 # # Mandatory: no # Range: 0-1024 # Default: # LogFileSize=1 ### Option: DebugLevel # Specifies debug level: //指定debug級別 # 0 - basic information about starting and stopping of Zabbix processes //關於進程啟動和停止的基本信息 # 1 - critical information //關鍵信息 # 2 - error information //錯誤信息 # 3 - warnings //警告 # 4 - for debugging (produces lots of information) //調試信息 # 5 - extended debugging (produces even more information) # # Mandatory: no # Range: 0-5 # Default: # DebugLevel=3 ### Option: PidFile # Name of PID file. //pid文件名 # # Mandatory: no # Default: # PidFile=/tmp/zabbix_server.pid ### Option: DBHost # Database host name. # If set to localhost, socket is used for MySQL. # If set to empty string, socket is used for PostgreSQL. //數據庫主機名,如果設置為localhost,mysql必須用socket來連接,否則用ip來連接。若該參數為空,默認連接PostgreSQL # # Mandatory: no # Default: # DBHost=localhost ### Option: DBName # Database name. # For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored. //數據庫名。對SQLite3來說,必須提供數據文件的路徑,DBUser和DBPassword參數可忽略 # # Mandatory: yes # Default: # DBName= ### Option: DBSchema # Schema name. Used for IBM DB2 and PostgreSQL. //模式名。用於DB2或PostgreSQL數據庫 # # Mandatory: no # Default: # DBSchema= ### Option: DBUser # Database user. Ignored for SQLite. //連接數據庫的用戶名,SQLite忽略該參數 # # Mandatory: no # Default: # DBUser= ### Option: DBPassword # Database password. Ignored for SQLite. # Comment this line if no password is used. //連接數據庫的密碼,SQLite忽略該參數 # # Mandatory: no # Default: # DBPassword= ### Option: DBSocket # Path to MySQL socket. //socket文件的路徑 # # Mandatory: no # Default: # DBSocket=/tmp/mysql.sock ### Option: DBPort # Database port when not using local socket. Ignored for SQLite. //數據庫監聽端口,SQLite忽略該參數 # # Mandatory: no # Range: 1024-65535 # Default (for MySQL): # DBPort=3306 ############ ADVANCED PARAMETERS ################ ### Option: StartPollers # Number of pre-forked instances of pollers. //系統初始化時,預分配子進程數量。數量越多,則服務端吞吐能力越強,對系統資源消耗越大。 # # Mandatory: no # Range: 0-1000 # Default: # StartPollers=5 ### Option: StartIPMIPollers # Number of pre-forked instances of IPMI pollers. //系統初始化時,預分配的使用ipmi協議獲取主機硬件狀態的進程數量。 # # Mandatory: no # Range: 0-1000 # Default: # StartIPMIPollers=0 ### Option: StartPollersUnreachable # Number of pre-forked instances of pollers for unreachable hosts (including IPMI and Java). # At least one poller for unreachable hosts must be running if regular, IPMI or Java pollers # are started. //系統初始化時,預分配用於探測某些不可達主機的(含IPMI、JAVA)的進程數量;若使用場景中含有代理端,建議保持默認;若Agent較多,可視具體情況調整。 # # Mandatory: no # Range: 0-1000 # Default: # StartPollersUnreachable=1 ### Option: StartTrappers # Number of pre-forked instances of trappers. # Trappers accept incoming connections from Zabbix sender, active agents and active proxies. # At least one trapper process must be running to display server availability and view queue # in the frontend. //系統初始化時,預分配的用於接收zabbix sender提交來數據的進程。 # # Mandatory: no # Range: 0-1000 # Default: # StartTrappers=5 ### Option: StartPingers # Number of pre-forked instances of ICMP pingers. //系統初始化時,預分配的icmp ping進程的數量。若單台代理所管理機器超過500台,建議加大此數值 # # Mandatory: no # Range: 0-1000 # Default: # StartPingers=1 ### Option: StartDiscoverers # Number of pre-forked instances of discoverers. //系統初始化時,預分配的自動發現主機的線程數量。若單台代理所管理機器超過500台,可以考慮加大此數值(僅適用於AGENT場景) # # Mandatory: no # Range: 0-250 # Default: # StartDiscoverers=1 ### Option: StartHTTPPollers # Number of pre-forked instances of HTTP pollers. //系統預分配的用於設置WEB監控進程數,可視具體情況增加或減少此數值。 # # Mandatory: no # Range: 0-1000 # Default: # StartHTTPPollers=1 ### Option: StartTimers # Number of pre-forked instances of timers. # Timers process time-based trigger functions and maintenance periods. # Only the first timer process handles the maintenance periods. //各實例計時器數量 # # Mandatory: no # Range: 1-1000 # Default: # StartTimers=1 ### Option: StartEscalators # Number of pre-forked instances of escalators. # # Mandatory: no # Range: 0-100 # Default: # StartEscalators=1 ### Option: StartVMwareCollectors # Number of pre-forked vmware collector instances. //用於監控VMWARE Esxi主機實例的進程數量,為0則不啟用,若要監控ESXI主機,此值最少為1 ;視監控ESXI數量設置對應數值 # # Mandatory: no # Range: 0-250 # Default: # StartVMwareCollectors=0 ### Option: VMwareFrequency # How often Zabbix will connect to VMware service to obtain a new data. //Zabbix連接WMware service獲取新數據的頻率 # # Mandatory: no # Range: 10-86400 # Default: # VMwareFrequency=60 ### Option: VMwarePerfFrequency # How often Zabbix will connect to VMware service to obtain performance data. # # Mandatory: no # Range: 10-86400 # Default: # VMwarePerfFrequency=60 ### Option: VMwareCacheSize # Size of VMware cache, in bytes. # Shared memory size for storing VMware data. # Only used if VMware collectors are started. //用於緩存VMware數據的共享內存 # # Mandatory: no # Range: 256K-2G # Default: # VMwareCacheSize=8M ### Option: VMwareTimeout # Specifies how many seconds vmware collector waits for response from VMware service. # # Mandatory: no # Range: 1-300 # Default: # VMwareTimeout=10 ### Option: SNMPTrapperFile # Temporary file used for passing data from SNMP trap daemon to the server. # Must be the same as in zabbix_trap_receiver.pl or SNMPTT configuration file. # # Mandatory: no # Default: # SNMPTrapperFile=/tmp/zabbix_traps.tmp ### Option: StartSNMPTrapper # If 1, SNMP trapper process is started. //是否啟用snmptrapper功能 ,默認不啟用=0,啟用=1 # # Mandatory: no # Range: 0-1 # Default: # StartSNMPTrapper=0 ### Option: ListenIP # List of comma delimited IP addresses that the trapper should listen on. # Trapper will listen on all network interfaces if this parameter is missing. # # Mandatory: no # Default: # ListenIP=0.0.0.0 # ListenIP=127.0.0.1 ### Option: HousekeepingFrequency # How often Zabbix will perform housekeeping procedure (in hours). # Housekeeping is removing outdated information from the database. # To prevent Housekeeper from being overloaded, no more than 4 times HousekeepingFrequency # hours of outdated information are deleted in one housekeeping cycle, for each item. # To lower load on server startup housekeeping is postponed for 30 minutes after server start. # With HousekeepingFrequency=0 the housekeeper can be only executed using the runtime control option. # In this case the period of outdated information deleted in one housekeeping cycle is 4 times the # period since the last housekeeping cycle, but not less than 4 hours and not greater than 4 days. //多少小時清理一次數據庫的 history, alert, and alarms數據 # # Mandatory: no # Range: 0-24 # Default: # HousekeepingFrequency=1 ### Option: MaxHousekeeperDelete # The table "housekeeper" contains "tasks" for housekeeping procedure in the format: # [housekeeperid], [tablename], [field], [value]. # No more than 'MaxHousekeeperDelete' rows (corresponding to [tablename], [field], [value]) # will be deleted per one task in one housekeeping cycle. # SQLite3 does not use this parameter, deletes all corresponding rows without a limit. # If set to 0 then no limit is used at all. In this case you must know what you are doing! //housekeeping一次刪除的數據不能大於MaxHousekeeperDelete # # Mandatory: no # Range: 0-1000000 # Default: # MaxHousekeeperDelete=5000 ### Option: SenderFrequency # How often Zabbix will try to send unsent alerts (in seconds). //指定間隔多少秒后,再嘗試發送為發送的報警 # # Mandatory: no # Range: 5-3600 # Default: # SenderFrequency=30 ### Option: CacheSize # Size of configuration cache, in bytes. # Shared memory size for storing host, item and trigger data. //分配多少共享內存用於存儲配置信息,HOST,ITEM,TRIGGER數據,視監控主機數量和監控項調整,建議調整到32M或者更大,2.2.3版本之前最大支持2G,目前最大支持8G,一般用不了多少。 # # Mandatory: no # Range: 128K-8G # Default: # CacheSize=8M ### Option: CacheUpdateFrequency # How often Zabbix will perform update of configuration cache, in seconds. //更新系統CACHE頻率,若管理頁面操作不頻繁,可以考慮加大參數值 # # Mandatory: no # Range: 1-3600 # Default: # CacheUpdateFrequency=60 ### Option: StartDBSyncers # Number of pre-forked instances of DB Syncers. //將采集數據從CACHE同步到數據庫線程數量,視數據庫服務器I/O繁忙情況,和數據庫寫能力調整。數值越大,寫能力越強。對數據庫服務器I/O壓力越大。 # # Mandatory: no # Range: 1-100 # Default: # StartDBSyncers=4 ### Option: HistoryCacheSize # Size of history cache, in bytes. # Shared memory size for storing history data. //設置划分多少共享內存用於存儲采集的歷史數據,此數值越大,數據庫讀壓力越小 # # Mandatory: no # Range: 128K-2G # Default: # HistoryCacheSize=16M ### Option: HistoryIndexCacheSize # Size of history index cache, in bytes. # Shared memory size for indexing history cache. //歷史數據索引緩存 # # Mandatory: no # Range: 128K-2G # Default: # HistoryIndexCacheSize=4M ### Option: TrendCacheSize # Size of trend cache, in bytes. # Shared memory size for storing trends data. //用於設置划分多少共享內存用於存儲計算出來的趨勢數據,此參數值從一定程度上可影響數據庫讀壓力 # # Mandatory: no # Range: 128K-2G # Default: # TrendCacheSize=4M ### Option: ValueCacheSize # Size of history value cache, in bytes. # Shared memory size for caching item history data requests. # Setting to 0 disables value cache. //0表示禁用,history value緩存大小,當緩存超標了,將會每隔5分鍾往server日志里面記錄。 # # Mandatory: no # Range: 0,128K-64G # Default: # ValueCacheSize=8M ### Option: Timeout # Specifies how long we wait for agent, SNMP device or external check (in seconds).
//與AGNET、SNMP設備和其它外部設備通信超時設置,單位為秒;若采集數據不完整或網絡繁忙,或從管理頁面發現客戶端狀態變化頻繁,可以考慮加大此數值。注意若此數值加大,應該考慮參數StartPollers 是否有相應加大的必要。 # # Mandatory: no # Range: 1-30 # Default: # Timeout=3 ### Option: TrapperTimeout # Specifies how many seconds trapper may spend processing new data. //啟用trapper功能,用於進程等待超時設置。 # # Mandatory: no # Range: 1-300 # Default: # TrapperTimeout=300 ### Option: UnreachablePeriod # After how many seconds of unreachability treat a host as unavailable. //當Agent端處於不可用狀態下,間隔多少秒后,嘗試重新連接。建議根據具體情況設置。注意,若此數值過小,若Agent端業務系統繁忙時,有可能造成報警誤報 # # Mandatory: no # Range: 1-3600 # Default: # UnreachablePeriod=45 ### Option: UnavailableDelay # How often host is checked for availability during the unavailability period, in seconds.
//當Agent端處於不可用狀態下,間隔多少秒后,進行狀態檢查。若出現可正常采集數據,但管理頁面AGENT狀態不正常、或在網絡,端口等均通暢情況下,AGENT狀態仍不正常,可以考慮加大此數值 # # Mandatory: no # Range: 1-3600 # Default: # UnavailableDelay=60 ### Option: UnreachableDelay # How often host is checked for availability during the unreachability period, in seconds. //當Agent端處於不可達狀態下,延遲多少秒后,進行重新嘗試,建議保持默認,在AGENT接入調試階段,可考慮減少此數值 # # Mandatory: no # Range: 1-3600 # Default: # UnreachableDelay=15 ### Option: AlertScriptsPath # Full path to location of custom alert scripts. # Default depends on compilation options. //自定義告警腳本存放全路徑 # # Mandatory: no # Default: # AlertScriptsPath=${datadir}/zabbix/alertscripts ### Option: LogSlowQueries # How long a database query may take before being logged (in milliseconds). # Only works if DebugLevel set to 3, 4 or 5. # 0 - don't log slow queries. //用於服務端數據庫慢查詢功能,單位是毫秒。若有服務端數據庫監控慢查詢的需求,可以視具體情況調整此數。 # # Mandatory: no # Range: 1-3600000 # Default: # LogSlowQueries=0 ### Option: TmpDir # Temporary directory. //指定臨時目錄路徑 # # Mandatory: no # Default: # TmpDir=/tmp ### Option: StartProxyPollers # Number of pre-forked instances of pollers for passive proxies. //啟用多少子進程與代理端通信,若代理端較多可考慮加大此數值 # # Mandatory: no # Range: 0-250 # Default: # StartProxyPollers=1 ### Option: ProxyConfigFrequency # How often Zabbix Server sends configuration data to a Zabbix Proxy in seconds. # This parameter is used only for proxies in the passive mode. //Zabbix服務端將配置文件數據同步到代理端的頻率,僅適用於代理端為被動模式情況 # # Mandatory: no # Range: 1-3600*24*7 # Default: # ProxyConfigFrequency=3600 ### Option: ProxyDataFrequency # How often Zabbix Server requests history data from a Zabbix Proxy in seconds. # This parameter is used only for proxies in the passive mode. //Zabbix服務端請求代理端采集的數據的頻率,僅適用代理端為被動模式情況 # # Mandatory: no # Range: 1-3600 # Default: # ProxyDataFrequency=1 ### Option: AllowRoot # Allow the server to run as 'root'. If disabled and the server is started by 'root', the server # will try to switch to the user specified by the User configuration option instead. # Has no effect if started under a regular user. # 0 - do not allow # 1 - allow //是否允許以root身份運行服務端 # # Mandatory: no # Default: # AllowRoot=0 ### Option: User # Drop privileges to a specific, existing user on the system. # Only has effect if run as 'root' and AllowRoot is disabled. //啟動zabbix server的用戶,在配置禁止root啟動,並且當前shell用戶是root得情況下有效。如果當前用戶是abc,那么zabbix server的運行用戶是abc # # Mandatory: no # Default: # User=zabbix ### Option: Include # You may include individual files or all files in a directory in the configuration file. # Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time. //某些情況下,軟件的參數配置文件很長,為了方便管理,將配置文件切割成N個配置文件,但為了主配置參數文件的簡潔,便會啟用INCLUDE參數,以方便程序讀取指定目錄下的所有配置文件 # # Mandatory: no # Default: # Include= # Include=/usr/local/etc/zabbix_server.general.conf # Include=/usr/local/etc/zabbix_server.conf.d/ # Include=/usr/local/etc/zabbix_server.conf.d/*.conf