3 Zabbix agent (UNIX)

概述

本节列出了Zabbix agent配置文件(zabbix_agentd.conf)支持的参数。

注意事项:

  • 默认值反映守护进程的默认设置,而非随附配置文件中的值;
  • Zabbix仅支持UTF-8编码的配置文件,不包含BOM
  • 以"#"开头的注释仅支持在行首使用。

参数

参数 必选 范围 默认值 描述
Alias no 为监控项键设置alias别名。可用于将复杂冗长的监控项键替换为更简洁的别名。
可配置多个alias参数,但禁止为同一别名键配置多个参数。
不同alias键可引用相同监控项键。
别名可用于HostMetadataItem参数,但不可用于HostnameItem参数。

示例:

1. 获取用户'zabbix'的ID
alias=zabbix.userid:vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1]
现在可使用简写键zabbix.userid获取数据

2. 使用默认及自定义参数获取CPU利用率
alias=cpu.util:system.cpu.util
alias=cpu.util[*]:system.cpu.util[*]
这样既可用cpu.util键获取默认参数的CPU利用率百分比,也可用cpu.util[all, idle, avg15]获取特定CPU数据

3. 运行多个处理相同发现low-level discovery的规则
alias=vfs.fs.discovery[*]:vfs.fs.discovery
现在可为每个规则配置不同参数的vfs.fs.discovery发现规则,例如vfs.fs.discovery[foo]vfs.fs.discovery[bar]
AllowKey no 允许执行匹配模式的监控项键。键模式为支持"*"通配符的表达式,可匹配任意数量字符。
可与DenyKey组合定义多个键匹配规则,按出现顺序逐个处理。
该参数自Zabbix 5.0.0版本支持。
另见:Restricting agent checks
AllowRoot no 0 允许agent以'root'身份运行。若禁用且agent由'root'启动,将尝试切换至'zabbix'用户。普通用户启动时无效。
0 - 不允许
1 - 允许
BufferSend no 1-3600 5 缓冲区数据保留最长时间(秒)
BufferSize no 2-65535 100 内存缓冲区最大值数量。当缓冲区满时,agent会将所有收集数据发送至Zabbix server或proxy
DebugLevel no 0-5 3 指定调试级别:
0 - Zabbix进程启停基本信息
1 - 关键信息
2 - 错误信息
3 - 警告信息
4 - 调试信息(大量输出)
5 - 扩展调试(更详细输出)
DenyKey no 拒绝执行匹配模式的监控项键。键模式为支持"*"通配符的表达式。
可与AllowKey组合定义多个键匹配规则,按出现顺序逐个处理。
该参数自Zabbix 5.0.0版本支持。
另见:Restricting agent checks
EnableRemoteCommands no 0 是否允许来自Zabbix server的远程命令。该参数已弃用,建议改用AllowKey=system.run[*]或DenyKey=system.run[*]
根据值转换为内部alias:
0 - DenyKey=system.run[*]
1 - AllowKey=system.run[*]
HostInterface no 0-255 characters 定义主机接口的可选参数。
主机接口用于主机将-dns-设为默认接口进程。
若值超过255字符限制,agent将问题错误且不启动。
未定义时从HostInterfaceItem获取值。
自Zabbix 4.4.0版本支持
HostInterfaceItem no 定义用于获取主机接口的监控项可选参数。
主机接口用于主机将-dns-设为默认接口进程。
自动注册时若返回值超过255字符限制会记录警告。
无论AllowKey/DenyKey值如何,均支持system.run[]监控项。
仅当HostInterface未定义时生效。
自Zabbix 4.4.0版本支持
HostMetadata no 0-255 characters 定义主机元数据的可选参数。主机元数据仅用于主机自动注册(主动式agent)。
未定义时从HostMetadataItem获取值。
若指定值超限或包含非UTF-8string,agent将问题错误且不启动
HostMetadataItem no 定义用于获取主机元数据的Zabbix agent监控项可选参数。仅当HostMetadata未定义时生效。
支持UserParameters和别名。无论AllowKey/DenyKey值如何,均支持system.run[]
每次自动注册尝试时获取HostMetadataItem值,仅用于主机自动注册(主动式agent)。
自动注册时若返回值超过255字符限制会记录警告。
返回值必须为UTF-8string,否则将被忽略
Hostname no 由HostnameItem设置 逗号分隔的唯一主机名列表(区分大小写)。
主动检查必需,必须与服务器配置的主机名匹配。未定义时从HostnameItem获取值。
允许字符:字母数字、'.'、' '、'_'和'-'。
最大长度:每个主机名128字符,整行2048字符
HostnameItem no system.hostname 定义用于获取主机名称的Zabbix agent监控项可选参数。仅当Hostname未定义时生效。
不支持UserParameters或别名,但无论AllowKey/DenyKey值如何,均支持system.run[]
Include no 可在配置文件中包含单个文件或目录下所有文件。
为仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。例如:/absolute/path/to/config/files/*.conf
关于限制详见special notes
ListenBacklog no 0 - INT_MAX SOMAXCONN TCP队列中待处理连接的最大数量。
默认值为系统相关的硬编码常量。
最大支持值取决于系统,过高值可能被静默截断为"实现指定的最大值"
ListenIP no 0.0.0.0 agent监听的IP地址列表。
1.8.3及以上版本支持多IP地址
ListenPort no 1024-32767 10050 Agent监听此端口以接受服务器连接
LoadModule no agent启动时加载的模块,用于扩展功能。
格式:
LoadModule=<模块.so>
LoadModule=<路径/模块.so>
LoadModule=</绝对路径/模块.so>
模块必须位于LoadModulePath指定目录或路径需前置模块名。若为绝对路径(以'/'开头)则忽略LoadModulePath。
可配置多个LoadModule参数
LoadModulePath no agent模块的完整路径。
默认值取决于编译选项
LogFile yes, if LogType is set to file, otherwise
no
日志文件名
LogFileSize no 0-1024 1 日志文件最大大小(MB)。
0 - 禁用自动日志轮转
注意:当日志文件大小达到限制且轮转失败时,现有日志文件将被截断并重新开始
LogType no file 日志输出类型:
file - 输出到LogFile参数指定的文件
system - 输出到syslog
console - 输出到标准输出
该参数自Zabbix 3.0.0版本支持
LogRemoteCommands no 0 启用以警告级别记录执行的shell命令。
0 - 禁用
1 - 启用
仅记录远程执行的命令。若system.run[]由HostMetadataItem、HostInterfaceItem或HostnameItem参数本地启动,则不会创建日志条目
MaxLinesPerSecond no 1-1000 20 处理'log'、'logrt'或'log.count'主动检查时,agent每秒发送至Zabbix server或proxy的最大新行数。
该值会被'log'、'logrt'或'log
.count'监控项键中的'maxlines'参数覆盖
注意:Zabbix会处理10倍于MaxLinesPerSecond设置的新行数,以在日志监控项中查找所需string
PidFile no /tmp/zabbix_agentd.pid PID文件名
RefreshActiveChecks no 60-3600 120 主动检查列表刷新频率(秒)。
注意:若刷新失败,下次尝试将在60秒后进行
Server yes, if StartAgents is not explicitly set to 0 逗号分隔的IP地址列表(支持CIDR表示法)或Zabbix servers和Zabbix proxies的DNS名称。
仅接受来自此处列出主机的传入连接。
若启用IPv6支持,则'127.0.0.1'、'::127.0.0.1'、'::ffff:127.0.0.1'等效,且'::/0'允许任何IPv4/IPv6地址。
'0.0.0.0/0'允许任何IPv4地址。
注意:RFC4291支持但弃用"IPv4兼容IPv6地址"(0000::/96前缀)。
示例:Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
允许空格
ServerActive no 获取主动检查的Zabbix server/proxy地址或集群配置。
server/proxy地址为IP地址或DNS名称,可选端口用冒号分隔。
集群配置为一个或多个用分号分隔的服务器地址。
可指定多个Zabbix servers/集群和Zabbix proxies,用逗号分隔。
每个Zabbix server/集群不应指定多个Zabbix proxy。
若指定Zabbix proxy,则不应指定该proxy的Zabbix server/集群。
可提供多个逗号分隔地址以并行使用多个独立Zabbix servers。允许空格。
未指定端口时使用默认端口。
若指定IPv6地址端口,必须用方括号括起。
未指定端口时,IPv6地址方括号可选。
未指定此参数时禁用主动检查。
Zabbix proxy示例:
ServerActive=127.0.0.1:10051
多服务器示例:
ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
高可用示例:
ServerActive=zabbix.cluster.node1;zabbix.cluster.node2:20051;zabbix.cluster.node3
双集群加单服务器的高可用示例:
ServerActive=zabbix.cluster.node1;zabbix.cluster.node2:20051,zabbix.cluster2.node1;zabbix.cluster2.node2,zabbix.domain
SourceIP no 用于以下场景的源IP地址:
- 到Zabbix server或Zabbix proxy的出站连接;
- 执行某些监控项(web.page.get、net.tcp.port等)时建立连接
StartAgents no 0-100 3 处理被动检查的zabbix_agentd预派生实例数。
设为0时禁用被动检查,agent不会监听任何TCP端口
Timeout no 1-30 3 处理操作最长耗时(秒)
TLSAccept yes, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no 接受的入站连接类型(用于被动检查)。可指定多个值,用逗号分隔:
unencrypted - 接受未加密连接(默认)
psk - 接受带TLS和预共享密钥(PSK)的连接
cert - 接受带TLS和证书的连接
该参数自Zabbix 3.0.0版本支持
TLSCAFile no 包含用于Zabbix组件间加密通信的Top级CA证书的文件完整路径,用于对等证书验证。
该参数自Zabbix 3.0.0版本支持
TLSCertFile no 包含agent证书或证书链的文件完整路径,用于与Zabbix组件的加密通信。
该参数自Zabbix 3.0.0版本支持
TLSCipherAll no GnuTLS优先级string或OpenSSL(TLS 1.2)密码套件string。覆盖基于证书和PSK加密的默认密码套件选择标准。
示例:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
该参数自Zabbix 4.4.7版本支持
TLSCipherAll13 no OpenSSL 1.1.1或更高版本在TLS 1.3中的密码套件string。覆盖基于证书和PSK加密的默认密码套件选择标准。
GnuTLS示例:NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL::+SIGN-ALL:+CTYPE-X.509
OpenSSL示例:EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128
该参数自Zabbix 4.4.7版本支持
TLSCipherCert no GnuTLS优先级string或OpenSSL(TLS 1.2)密码套件string。覆盖基于证书加密的默认密码套件选择标准。
GnuTLS示例:NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
OpenSSL示例:EECDH+aRSA+AES128:RSA+aRSA+AES128
该参数自Zabbix 4.4.7版本支持
TLSCipherCert13 no OpenSSL 1.1.1或更高版本在TLS 1.3中的密码套件string。覆盖基于证书加密的默认密码套件选择标准。
该参数自Zabbix 4.4.7版本支持
TLSCipherPSK no GnuTLS优先级string或OpenSSL(TLS 1.2)密码套件string。覆盖基于PSK加密的默认密码套件选择标准。
GnuTLS示例:NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL
OpenSSL示例:kECDHEPSK+AES128:kPSK+AES128
该参数自Zabbix 4.4.7版本支持
TLSCipherPSK13 no OpenSSL 1.1.1或更高版本在TLS 1.3中的密码套件string。覆盖基于PSK加密的默认密码套件选择标准。
示例:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
该参数自Zabbix 4.4.7版本支持
TLSConnect yes, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no agent连接Zabbix server或proxy的方式(用于主动检查)。仅可指定一个值:
unencrypted - 无加密连接(默认)
psk - 使用TLS和预共享密钥(PSK)连接
cert - 使用TLS和证书连接
该参数自Zabbix 3.0.0版本支持
TLSCRLFile no 包含吊销证书的文件完整路径,用于与Zabbix组件的加密通信。
该参数自Zabbix 3.0.0版本支持
TLSKeyFile no 包含agent私钥的文件完整路径,用于与Zabbix组件的加密通信。
该参数自Zabbix 3.0.0版本支持
TLSPSKFile no 包含agent预共享密钥的文件完整路径,用于与Zabbix组件的加密通信。
该参数自Zabbix 3.0.0版本支持
TLSPSKIdentity no 预共享密钥标识string,用于与Zabbix server的加密通信。
该参数自Zabbix 3.0.0版本支持
TLSServerCertIssuer no 允许的服务器(proxy)证书颁发者。
该参数自Zabbix 3.0.0版本支持
TLSServerCertSubject no 允许的服务器(proxy)证书主题。
该参数自Zabbix 3.0.0版本支持
UnsafeUserParameters no 0,1 0 允许在用户定义参数参数中传递所有字符。
0 - 不允许
1 - 允许
以下字符不被允许:
\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > \
User no zabbix 降权到系统中特定现有用户。
仅当以'root'运行且AllowRoot禁用时有效
UserParameter no 用户定义的监控参数。可配置多个用户参数。
格式:UserParameter=<键>,<shell命令>
注意shell命令不能返回空string或仅EOL。
若指定UserParameterDir参数,shell命令可使用相对路径。
示例:
UserParameter=system.test,who\
UserParameterDir no UserParameter命令的默认搜索路径。若使用,agent将在执行命令前切换工作目录到此处指定目录。因此UserParameter命令可使用相对路径./前缀而非完整路径。
仅允许一个条目。
示例:UserParameterDir=/opt/myscripts

Zabbix 监控系统

  1. Differences in the Zabbix agent configuration for active and passive checks starting from version 2.0.0