十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
zabbix 服务器端优化
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的昌江网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
zabbix的参数除了保证服务正常运行以外,还会影响到服务器的性能,如果设置的不合理可能会导致服务器的性能严重下降,经常CPU占用过高或者是IO占用过高,最近我们的监控系统就出现了类似的情况,数据库负载以及IO读写特别的高,所以这里我对zabbix_server的配置文件再次进行一次详细的理解,并且修改和优化了配置的参数。具体如下:
### Option: ListenPort
# Listen port for trapper.
//该参数用于指定服务端的监听端口,用于监听Proxy或Agent的连接请求。
# ListenPort=10051
### Option: SourceIP
# Source IP address for outgoing connections.
//该参数用于指定服务端的IP地址。
# 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=/var/log/zabbix/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,3.X前最大支持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=