4 Zabbix agent 2 (UNIX)
概述
Zabbix agent 2 是新一代 Zabbix agent,可用于替代 Zabbix agent。
本节列出了 Zabbix agent 2 配置文件 (zabbix_agent2.conf) 支持的参数。
参数仅列出,不附加其他信息。 单击参数可查看完整详情。 单击参数可查看完整详情。
| Parameter | Description |
|---|---|
| Alias | 为监控项键设置别名。 |
| AllowKey | 允许执行与模式匹配的监控项键。 |
| BufferSend | 缓冲区中的数据保留时间不超过 N 秒。 |
| BufferSize | 内存缓冲区中的最大值数量。 |
| ControlSocket | 控制套接字,用于通过 -R 选项发送运行时命令。 |
| DebugLevel | 调试级别。 |
| DenyKey | 拒绝执行与模式匹配的监控项键。 |
| EnablePersistentBuffer | 启用对主动监控项使用本地持久存储。 |
| ForceActiveChecksOnStart | 在重启后立即对首次接收到的配置执行主动检查。 |
| HeartbeatFrequency | 心跳消息的频率,单位为秒。 |
| HostInterface | 定义主机接口的可选参数。 |
| HostInterfaceItem | 定义用于获取主机接口的监控项的可选参数。 |
| HostMetadata | 定义主机元数据的可选参数。 |
| HostMetadataItem | 定义用于获取主机元数据的 Zabbix agent 监控项的可选参数。 |
| Hostname | 定义主机名的可选参数。 |
| HostnameItem | 定义用于获取主机名的 Zabbix agent 监控项的可选参数。 |
| Include | 可在配置文件中包含单个文件或目录中的所有文件。 |
| ListenIP | 以逗号分隔的 IP 地址列表,agent 应监听这些地址。 |
| ListenPort | agent 将在此端口上监听来自服务器的连接。 |
| LogFile | 日志文件名。 |
| LogFileSize | 日志文件的最大大小。 |
| LogType | 日志输出类型。 |
| PersistentBufferFile | Zabbix agent 2 应在其中保存 SQLite 数据库的文件。 |
| PersistentBufferPeriod | 当无法连接到服务器或 proxy 时,数据应保存的时间段。 |
| PidFile | PID 文件名。 |
| Plugins.<PluginName>.System.Capacity | 每个插件可同时执行的检查数量上限。 |
| Plugins.Log.MaxLinesPerSecond | 在处理 'log' 和 'logrt' 主动检查时,agent 每秒向 Zabbix 服务器或 proxy 发送的新行最大数量。 |
| Plugins.SystemRun.LogRemoteCommands | 将已执行的 shell 命令记录为警告。 |
| PluginSocket | 用于可加载插件通信的 UNIX 套接字路径。 |
| PluginTimeout | 与可加载插件建立连接的超时时间,单位为秒。 |
| RefreshActiveChecks | 刷新主动检查列表的频率。 |
| Server | 以逗号分隔的 Zabbix 服务器和 Zabbix proxy 的 IP 地址列表,可选使用 CIDR 表示法,或 DNS 名称。 |
| ServerActive | 用于获取主动检查的 Zabbix 服务器/proxy 地址或集群配置。 |
| SourceIP | 源 IP 地址。 |
| StatusPort | 如果设置,agent 将在此端口上监听 HTTP 状态请求(http://localhost:<port>/status)。 |
| Timeout | 指定与 Zabbix proxy 或服务器建立连接并交换数据时的等待时间(秒)。 |
| TLSAccept | 入站连接所需的加密级别。 |
| TLSCAFile | 包含用于对等证书验证的顶级 CA 证书的文件完整路径名,用于 Zabbix 组件之间的加密通信。 |
| TLSCertFile | 包含 agent 证书或证书链的文件完整路径名,用于 Zabbix 组件之间的加密通信。 |
| TLSCipherAll | OpenSSL 密码字符串(TLS 1.2)。覆盖基于证书和 PSK 的加密的默认密码套件选择标准。 |
| TLSCipherAll13 | 适用于 OpenSSL 1.1.1 或更新版本的 OpenSSL 密码字符串(TLS 1.3)。覆盖基于证书和 PSK 的加密的默认密码套件选择标准。 |
| TLSCipherCert | OpenSSL 密码字符串(TLS 1.2)。覆盖基于证书的加密的默认密码套件选择标准。 |
| TLSCipherCert13 | 适用于 OpenSSL 1.1.1 或更新版本的 OpenSSL 密码字符串(TLS 1.3)。覆盖基于证书的加密的默认密码套件选择标准。 |
| TLSCipherPSK | OpenSSL 密码字符串(TLS 1.2)。覆盖基于 PSK 的加密的默认密码套件选择标准。 |
| TLSCipherPSK13 | 适用于 OpenSSL 1.1.1 或更新版本的 OpenSSL 密码字符串(TLS 1.3)。覆盖基于 PSK 的加密的默认密码套件选择标准。 |
| TLSConnect | agent 连接到 Zabbix 服务器或 proxy 时所需的加密级别。 |
| TLSCRLFile | 包含已吊销证书的文件完整路径名。此参数用于 Zabbix 组件之间的加密通信。 |
| TLSKeyFile | 包含 agent 私钥的文件完整路径名,用于 Zabbix 组件之间的加密通信。 |
| TLSPSKFile | 包含 agent 预共享密钥的文件完整路径名,用于与 Zabbix 服务器的加密通信。 |
| TLSPSKIdentity | 预共享密钥标识字符串,用于与 Zabbix 服务器的加密通信。 |
| TLSServerCertIssuer | 允许的服务器(proxy)证书颁发者。 |
| TLSServerCertSubject | 允许的服务器(proxy)证书主题。 |
| UnsafeUserParameters | 允许将所有字符传递给用户自定义参数的参数。 |
| UserParameter | 要监控的用户自定义参数。 |
| UserParameterDir | UserParameter 命令的默认搜索路径。 |
除非明确说明某个参数为必填,否则所有参数均为非必填。
请注意:
- 默认值反映的是进程默认值,而不是随软件包提供的配置文件中的值。
- Zabbix 仅支持 UTF-8 编码且不带 BOM 的配置文件。
- 以
#开头的注释仅支持出现在行首。
参数详情
别名
为监控项键设置一个别名。
它可用于用更短、更简单的键替代较长且复杂的监控项键。
可以存在多个 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:运行多个处理相同发现项的 低级别发现 规则。
Alias=vfs.fs.discovery[*]:vfs.fs.discovery
现在可以使用 vfs.fs.discovery 并为每条规则设置不同参数来配置多个发现规则,例如 vfs.fs.discovery[foo]、vfs.fs.discovery[bar] 等。
AllowKey
允许执行与模式匹配的监控项键。
键模式是一个通配符表达式,支持使用 * 字符匹配任意数量的任意字符。
可与 DenyKey 结合定义多个键匹配规则。
参数会按照其出现顺序逐一处理。
另请参见:限制 agent 检查。
BufferSend
该时间间隔(以秒为单位)决定了数值从缓冲区发送到Zabbix server的频率。 请注意,如果缓冲区已满,数据将会提前发送。
默认值:5
范围:1-3600
BufferSize
内存缓冲区中的最大值数量。
如果缓冲区已满,agent 将把所有已收集的数据发送到 Zabbix 服务器或 proxy。
仅当持久缓冲区被禁用时才应使用此参数(EnablePersistentBuffer=0)。
默认值:1000
范围:2-65535
ControlSocket
控制套接字,用于通过 -R 选项发送运行时命令。
默认值:/tmp/agent.sock
DebugLevel
指定调试级别:
- 0 - 关于 Zabbix 进程启动和停止的基本信息;
- 1 - 关键信息;
- 2 - 错误信息;
- 3 - 警告;
- 4 - 用于调试(会产生大量信息);
- 5 - 扩展调试(会产生更多信息)。
默认值:3
范围:0-5
DenyKey
拒绝执行与某个模式匹配的监控项键。
该键模式是一个通配符表达式,支持使用 * 字符匹配任意数量的任意字符。
可与 AllowKey 结合定义多个键匹配规则。
参数会按照其出现顺序逐个处理。
另请参见:限制 agent 检查。
EnablePersistentBuffer
启用本地持久化存储以支持主动式监控项。 若禁用持久化存储,将使用memory缓冲区。
默认值:0
可选值:0 - 禁用,1 - 启用
ForceActiveChecksOnStart
在重启后立即对首次接收到的配置执行主动检查。
也可作为每个插件的配置参数使用,例如:Plugins.Uptime.System.ForceActiveChecksOnStart=1
默认值:0
取值:0 - 禁用,1 - 启用
HeartbeatFrequency
心跳消息的频率(以秒为单位)。
用于监控主动检查的可用性。
0 - 禁用心跳消息。
默认值:60
范围:0-3600
HostInterface
一个可选参数,用于定义在主机 自动注册 过程中使用的主机接口(IP 地址或 DNS 名称)。 该值将用于填充新创建主机中的接口,并允许显式配置 IP 或 DNS 地址。 更多详情,请参见 将 DNS 用作默认接口。
如果未定义,该值将从 HostInterfaceItem 获取。
如果该值超过 255 个字符的限制,agent 将报错且不会启动。
范围:0-255 个字符
HostInterfaceItem
一个可选参数,用于定义在主机 自动注册 过程中,用来确定主机接口(IP 地址或 DNS 名称)的监控项。
仅当未定义 HostInterface 时,才会使用此值。
有关更多详细信息,请参见 将 DNS 用作默认接口。
在自动注册请求期间,如果指定监控项返回的值超过 255 个字符的限制,agent 将记录一条警告消息。
无论 AllowKey/DenyKey 设置如何,都会支持 system.run[] 监控项。
HostMetadata
一个可选参数,用于定义在主机 自动注册 过程中用于识别或区分主机的 元数据。
HostMetadata 允许在主机名之外进一步区分不同的主机。
如果未定义,该值将从 HostMetadataItem 获取。
如果指定的值超过 2034 字节限制,或为非 UTF-8 字符串,agent 将报错且不会启动。 当某个参数期望的是 IP 地址或 DNS 名称时,虽然值可能是有效的 UTF-8,但如果不是有效的 IP 或 DNS 名称,也会被拒绝并报告为无效。
不支持多行元数据 — 输出将在第一个换行处被截断。
范围:0-2034 字节
HostMetadataItem
一个可选参数,用于定义一个 Zabbix agent 监控项,该监控项用于获取主机元数据。
仅当未定义 HostMetadata 时,才会使用此选项。
HostMetadataItem 的值会在每次自动注册尝试时获取,并且仅在主机自动注册过程中使用。
HostMetadataItem 允许在主机名之外进一步区分不同的主机。
支持用户参数和别名。
无论 AllowKey/DenyKey 设置如何,均支持 system.run[] 监控项。
在自动注册请求期间,如果指定监控项返回的值超过 65535 个 UTF-8 码点,agent 将记录一条警告消息。 监控项返回的值必须是 UTF-8 字符串,否则将被忽略。 当某个参数期望的是 IP 地址或 DNS 名称时,虽然值可能是有效的 UTF-8,但如果不是有效的 IP 或 DNS 名称,也会被拒绝并报告为无效。
不支持多行元数据 — 输出将在第一个换行处被截断。
主机名
以逗号分隔的唯一、区分大小写的主机名列表。
主动检查必填,且必须与服务器上配置的主机名一致。
如果未定义,则从 HostnameItem 获取该值。
允许的字符:字母数字、'.'、' '、'_' 和 '-'。
每个主机名的最大长度为 128 个字符,整行最大长度为 2048 个字符。
默认值:由 HostnameItem 设置
主机名监控项
一个可选参数,用于定义一个用于获取主机名的监控项。
仅当未定义 Hostname 时才会使用此选项。
不支持用户参数或别名,但无论 AllowKey/DenyKey 的值如何,system.run[] 监控项都受支持。
默认值:system.hostname
包含
您可以在配置文件中包含单个文件或目录中的所有文件。
在安装过程中,Zabbix 会在 /usr/local/etc 中创建 include 目录,除非在编译时进行了修改。
该路径可以相对于 zabbix_agent2.conf 文件的位置。
为了只包含指定目录中相关的文件,支持使用星号通配符进行模式匹配。
有关限制,请参见 特殊说明。
示例:
Include=/absolute/path/to/config/files/*.conf
ListenIP
一个逗号分隔的IP地址列表,agent应监听的地址。 第一个IP地址会被发送到Zabbix server(当连接到它时)以获取活动检查列表。
默认值:0.0.0.0
ListenPort
agent将在此端口监听来自服务器的连接。
默认值: 10050
范围: 1024-32767
LogFile
日志文件的名称。
默认值:/tmp/zabbix_agent2.log
必填:是,如果 LogType 设置为 file;否则不是
LogFileSize
日志file的最大大小,单位为MB。
0 - 禁用自动日志轮转。
注意:如果日志file大小达到限制且file轮转失败(无论何种原因),现有日志file将被截断并重新开始记录。
默认值:1
范围:0-1024
LogType
日志输出类型:
- file - 将日志写入
LogFile参数指定的文件; - system - 将日志写入 syslog;
- console - 将日志写入标准输出。
默认值:file
PersistentBufferFile
Zabbix agent 2 应保存 SQLite 数据库的文件。
必须是完整文件名。
仅在启用持久缓冲区时使用此参数(EnablePersistentBuffer=1)。
PersistentBufferPeriod
在无法连接到服务器或 proxy 时,数据应被存储的时间段。
较旧的数据将会丢失。
日志数据将被保留。
仅在启用持久缓冲区时使用此参数(EnablePersistentBuffer=1)。
默认值:1h
范围:1m-365d
PidFile
PID名称file.
默认值: /tmp/zabbix_agent2.pid
Plugins.<PluginName>.System.Capacity
<PluginName>插件可同时执行的最大检查数量限制
默认值: 1000
范围: 1-1000
Plugins.Log.MaxLinesPerSecond
agent 在处理 log 和 logrt 主动监控项时,每秒向 Zabbix 服务器或 proxy 发送的新行最大数量。
所提供的值将被 log 和 logrt 监控项键中的 maxlines 参数覆盖。
注意:Zabbix 处理的新行数量将是 MaxLinesPerSecond 设置值的 10 倍,以便在日志监控项中查找所需字符串。
默认值:20
范围:1-1000
Plugins.SystemRun.LogRemoteCommands
将已执行的 shell 命令记录为警告。
仅当命令是远程执行时才会记录。
如果 system.run[] 由 HostMetadataItem、HostInterfaceItem 或 HostnameItem 参数在本地启动,则不会创建日志条目。
默认值:0
取值:0 - 禁用,1 - 启用
PluginSocket
用于可加载插件通信的UNIX套接字路径。
默认值:/tmp/agent.plugin.sock
PluginTimeout
可加载插件连接的超时时间,单位为秒。
默认值:Timeout
范围:1-30
RefreshActiveChecks
主动检查列表的刷新频率,以秒为单位。 请注意,若主动检查刷新失败,下一次刷新尝试将在60秒后进行。
默认值:5
范围:1-86400
服务器
以逗号分隔的 IP 地址列表,可选使用 CIDR 表示法,或 Zabbix 服务器或 Zabbix proxy 的 DNS 名称。
仅接受来自此处列出的主机的传入连接。
如果启用了 IPv6 支持,则 127.0.0.1、::127.0.0.1、::ffff:127.0.0.1 会被视为相同,且 ::/0 将允许任何 IPv4 或 IPv6 地址。
0.0.0.0/0 可用于允许任何 IPv4 地址。
允许使用空格。
如果未指定此参数,则会禁用被动检查,且 agent 将不会监听任何 TCP 端口。
示例:
Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
ServerActive
用于获取主动检查项的 Zabbix 服务器/proxy 地址或集群配置。
服务器/proxy 地址是 IP 地址或 DNS 名称,后跟可选端口,二者用冒号分隔。
集群配置是一个或多个服务器或 proxy 组成员地址,地址之间用分号分隔。
可以指定多个 Zabbix 服务器/集群和 Zabbix proxy,彼此之间用逗号分隔。
除非使用 proxy 组,否则每个 Zabbix 服务器/集群不应指定多个 Zabbix proxy。
如果指定了某个 Zabbix proxy,则不应再为该 proxy 指定对应的 Zabbix 服务器/集群。
可以提供多个以逗号分隔的地址,以便并行使用多个独立的 Zabbix 服务器。
允许使用空格。
如果未指定端口,则使用默认端口。
如果为该主机指定了端口,IPv6 地址必须用方括号括起来。
如果未指定端口,则 IPv6 地址的方括号为可选。
如果未指定此参数,则会禁用主动检查。
Zabbix proxy 示例:
ServerActive=127.0.0.1:10051
Zabbix proxy 组示例:
ServerActive=proxy1.example.com;proxy2.example.com;proxy3.example.com;proxy4.example.com;proxy5.example.com
多个服务器示例:
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
用于以下场景的源 IP 地址:
- 到 Zabbix 服务器或 Zabbix proxy 的出站连接。
- 在执行某些监控项(
web.page.get、net.tcp.port等)时建立连接。
StatusPort
若设置此参数,agent将监听该端口以接收HTTP状态请求(http://localhost:<端口>/status)。
取值范围:1024-32767
Timeout
指定与Zabbix proxy或服务器建立连接及交换数据的等待时间(以秒为单位).
该参数定义了各类通信操作的最长持续时间,包括:
- 等待Zabbix server响应;
- 向Zabbix server发送请求,包括主动检查中的监控项配置请求和监控项数据;
- 通过日志文件检索日志数据;
- 发送心跳消息;
vfs.*检查的最大持续时间;- 作为version 7.0以下版本的server 或 proxy发送无超时检查时的后备方案.
该超时设置不适用于在前端(全局、proxy或单个监控项级别)可配置超时时间的agent检查.
默认值:3
取值范围:1-30
TLSAccept
入站连接所需的加密级别。 用于被动检查。 可以指定多个值,并用逗号分隔:
- unencrypted - 接受未加密连接(默认);
- psk - 接受使用 TLS 和预共享密钥(PSK)的连接;
- cert - 接受使用 TLS 和证书的连接。
必填:是,如果已定义 TLS 证书或 PSK 参数(即使是 unencrypted 连接);否则为否
TLSCAFile
包含用于对等证书验证的Top级CA证书的file完整路径名,用于Zabbix组件之间的加密通信。
TLSCertFile
包含用于与Zabbix组件加密通信的agent证书或证书链的file完整路径名。
TLSCipherAll
OpenSSL加密套件string(TLS 1.2版本)。 覆盖基于证书和PSK加密的默认密码套件选择标准。
示例:
EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128
该参数自Zabbix 7.0.4版本起支持。
TLSCipherAll13
适用于OpenSSL 1.1.1或更高版本的OpenSSL密码套件string(TLS 1.3)。 覆盖基于证书和PSK加密的默认密码套件选择标准。
示例:
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
该参数自Zabbix 7.0.4版本起支持。
TLSCipherCert
OpenSSL加密套件string(TLS 1.2版本)。 覆盖基于证书加密的默认密码套件选择标准。
示例:
EECDH+aRSA+AES128:RSA+aRSA+AES128
注意:该参数不能与TLSAccept=cert,psk同时使用;对于证书连接(TLSConnect=cert)请改用TLSCipherAll参数。
该参数自Zabbix 7.0.4版本起支持。
TLSCipherCert13
OpenSSL加密套件string(TLS 1.3)适用于OpenSSL 1.1.1或更高版本。 覆盖基于证书加密的默认加密套件选择标准。
注意此参数不能与TLSAccept=cert,psk同时使用;对于证书连接(TLSConnect=cert)请改用TLSCipherAll13。
该参数自Zabbix 7.0.4版本起支持。
TLSCipherPSK
OpenSSL加密套件string(TLS 1.2版本)。 覆盖基于PSK加密的默认密码套件选择标准。
示例:
kECDHEPSK+AES128:kPSK+AES128
该参数自Zabbix 7.0.4版本起支持。
TLSCipherPSK13
OpenSSL加密套件string(TLS 1.3),适用于OpenSSL 1.1.1或更高版本。 覆盖基于PSK加密的默认加密套件选择标准。
示例:
TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
该参数自Zabbix 7.0.4版本起支持。
TLSConnect
agent 与 Zabbix 服务器或 proxy 连接时所需的加密级别。
用于主动检查。
只能指定一个值:
- unencrypted - 不使用加密进行连接(默认);
- psk - 使用 TLS 和预共享密钥(PSK)进行连接;
- cert - 使用 TLS 和证书进行连接。
必填:是,如果定义了 TLS 证书或 PSK 参数(即使是 unencrypted 连接);否则为否
TLSCRLFile
包含已撤销证书的file完整路径名。 该参数用于Zabbix组件之间的加密通信。
TLSKeyFile
包含用于Zabbix组件间加密通信的agent私钥的file完整路径名。
TLSPSKFile
包含用于与Zabbix server进行加密通信的agent预共享密钥的file完整路径名。
TLSPSKIdentity
预共享密钥标识string,用于与Zabbix server进行加密通信。
TLSServerCertIssuer
允许的服务器(proxy)证书颁发机构。
TLSServerCertSubject
允许的服务器(proxy)证书主题。
UnsafeUserParameters
允许在用户自定义参数的参数中传递所有字符。
以下字符不允许使用:\ ' " ` * ? [ ] { } \~ $ ! & ; ( ) < > | # @
此外,换行符也不允许使用。
默认值:0
取值:0 - 不允许,1 - 允许
UserParameter
用于监控的用户自定义参数。
可以有多个用户自定义参数。
格式:UserParameter=<key>,<shell command>
请注意,shell 命令不能只返回空字符串或仅返回 EOL。
如果指定了 UserParameterDir 参数,shell 命令可以使用相对路径。
示例:
UserParameter=system.test,who|wc -l
UserParameter=check_cpu,./custom_script.sh
UserParameterDir
UserParameter 命令的默认搜索路径。
如果使用此参数,agent 会在执行命令之前将其工作目录切换到此处指定的目录。
因此,UserParameter 命令可以使用相对的 ./ 前缀,而不必使用完整路径。
只允许设置一项。
示例:
UserParameterDir=/opt/myscripts