4 Zabbix agent 2 (UNIX)

概览

Zabbix agent 2 是 Zabbix agent 的新一代版本,可以替代 Zabbix agent 使用。

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

参数列表中未提供额外信息。点击参数以查看完整详情。

参数 描述
Alias 为 监控项 键设置一个 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 当没有连接到 server 或 proxy 时,数据应存储的时间段。
PidFile PID 文件的名称。
Plugins.<PluginName>.System.Capacity 同时可以执行的每个插件的检查限制。
Plugins.Log.MaxLinesPerSecond agent 每秒向 Zabbix server 或 proxy 发送的新行数限制,处理 'log' 和 'logrt' 主动检查时。
Plugins.SystemRun.LogRemoteCommands 启用执行的 shell 命令的日志记录,作为警告。
PluginSocket 用于可加载插件通信的 UNIX 套接字的路径。
PluginTimeout 与可加载插件连接的超时时间,以秒为单位。
RefreshActiveChecks 刷新主动检查列表的频率。
Server 逗号分隔的 IP 地址列表,可选地使用 CIDR 表示法,或 Zabbix servers 和 Zabbix proxies 的 DNS 名称。
ServerActive 获取主动检查的 Zabbix server/proxy 地址或集群配置。
SourceIP 源 IP 地址。
StatusPort 如果设置,agent 将监听此端口用于 HTTP 状态请求(http://localhost:<port>/status)。
Timeout 规定等待时间(以秒为单位),用于与 Zabbix proxy 或服务器建立连接和交换数据。
TLSAccept 接受哪些传入连接。
TLSCAFile 包含用于对等证书验证的 Top 级 CA(s) 证书的文件的完整路径名,用于 Zabbix 组件之间的加密通信。
TLSCertFile 包含 agent 证书或证书链的文件的完整路径名,用于 Zabbix 组件之间的加密通信。
TLSCipherAll OpenSSL 密码 string(TLS 1.2)。覆盖默认的密套件选择标准,用于基于证书和 PSK 的加密。
TLSCipherAll13 OpenSSL 1.1.1 或更高版本的 OpenSSL 密码 string(TLS 1.3)。覆盖默认的密套件选择标准,用于基于证书和 PSK 的加密。
TLSCipherCert OpenSSL 密码 string(TLS 1.2)。覆盖默认的密套件选择标准,用于基于证书的加密。
TLSCipherCert13 OpenSSL 1.1.1 或更高版本的 OpenSSL 密码 string(TLS 1.3)。覆盖默认的密套件选择标准,用于基于证书的加密。
TLSCipherPSK OpenSSL 密码 string(TLS 1.2)。覆盖默认的密套件选择标准,用于基于 PSK 的加密。
TLSCipherPSK13 OpenSSL 1.1.1 或更高版本的 OpenSSL 密码 string(TLS 1.3)。覆盖默认的密套件选择标准,用于基于 PSK 的加密。
TLSConnect agent 应如何连接到 Zabbix server 或 proxy。
TLSCRLFile 包含已撤销证书的文件的完整路径名。此参数用于 Zabbix 组件之间的加密通信。
TLSKeyFile 包含 agent 私钥的文件的完整路径名,用于 Zabbix 组件之间的加密通信。
TLSPSKFile 包含 agent 预共享密钥的文件的完整路径名,用于与 Zabbix server 的加密通信。
TLSPSKIdentity 预共享密钥身份 string,用于与 Zabbix server 的加密通信。
TLSServerCertIssuer 允许的服务器(proxy)证书颁发者。
TLSServerCertSubject 允许的服务器(proxy)证书主题。
UnsafeUserParameters 允许所有字符在用户定义参数的参数中传递。
UserParameter 监控的用户定义参数。
UserParameterDir UserParameter 命令的默认搜索路径。

所有参数都是非强制性的,除非明确声明参数是强制性的。

请注意:

  • 默认值反映进程默认值,而不是随附配置文件中的值;
  • Zabbix 支持仅以 UTF-8 编码的配置文件,不支持 BOM
  • 以 "#" 开头的注释仅在行开始时支持。

参数详情

Alias

为监控项键设置别名。它可用于将长而复杂的监控项键替换为更短更简单的监控项键。
可以存在多个 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 服务器的频率。
请注意,如果缓冲区已满,数据将更快地发送。

默认值:5
范围:1-3600

BufferSize

内存缓冲区中的最大值数。如果缓冲区已满,agent 将把所有收集的数据发送到 Zabbix server 或proxy。
仅当禁用持久缓冲区(EnablePersistentBuffer=0)时才应使用此参数。

默认值:1000
范围:2-65535

ControlSocket

控制套接字,用于使用“-R”选项发送运行时命令。

默认值:\\.\pipe\agent.sock

DebugLevel

指定调试级别:
0 - 有关启动和停止 Zabbix 进程的基本信息
1 - 关键信息;
2 - 错误信息;
3 - 警告;
4 - 用于调试(产生大量信息);
5 - 扩展调试(产生更多信息)。

默认值:3
范围:0-5

DenyKey

拒绝执行与模式匹配的监控项键。键模式是一个通配符表达式,支持“*”字符以匹配任意数量的任意字符。
可以结合 AllowKey 定义多个键匹配规则。参数将根据其出现顺序逐一处理。另请参阅:限制agent 检查

EnablePersistentBuffer

启用活动监控项的本地持久存储。如果禁用持久存储,则将使用内存缓冲区。

默认值:0
值:0 - 禁用,1 - 启用

ForceActiveChecksOnStart

在重新启动后立即对收到的第一个配置执行主动检查。也可用作每个插件的配置参数,例如:Plugins.Uptime.System.ForceActiveChecksOnStart=1

默认值:0
值:0 - 禁用,1 - 启用

HeartbeatFrequency

心跳消息的频率(以秒为单位)。用于监控主动检查的可用性。
0 - 心跳消息已禁用。

默认值:60
范围:0-3600

HostInterface

定义主机接口的可选参数。主机接口用于主机 自动注册 进程。如果未定义,将从 HostInterfaceItem 获取该值。
如果该值超过 255 个字符的限制,agent 将发出错误并且不会启动。

范围:0-255 个字符

HostInterfaceItem

可选参数,定义用于获取主机接口的监控项。
主机接口用于主机 自动注册 进程。此选项仅在未定义 HostInterface 时使用。
无论 AllowKey/DenyKey 值如何,system.run[] 监控项均受支持。
在自动注册请求期间,如果指定监控项返回的值超过 255 个字符的限制,agent 将记录一条警告消息。

HostMetadata

定义主机元数据的可选参数。主机元数据仅在主机自动注册过程(主动式 agent)中使用。如果未定义,则将从 HostMetadataItem 获取该值。
如果指定的值超过 2034 字节的限制或为非 UTF-8 字符串,agent 将发出错误并且不会启动。

范围:0-2034 字节

HostMetadataItem

可选参数,定义用于获取主机元数据的监控项。此选项仅在未定义 HostMetadata 时使用。支持用户参数和别名。无论 AllowKey/DenyKey 值如何,都支持 system.run[] 监控项。
每次尝试自动注册时都会检索 HostMetadataItem 值,并且仅在主机自动注册过程中使用。
在自动注册请求期间,如果指定监控项返回的值超过 65535 个 UTF-8 代码点的限制,agent 将记录一条警告消息。该监控项返回的值必须是 UTF-8 字符串,否则将被忽略。

Hostname

逗号分隔、唯一、区分大小写的主机名列表。主动检查时需要此列表,并且必须与服务器上配置的主机名匹配。如果未定义,则从 HostnameItem 获取值。
允许的字符:字母数字、'.'、' '、'_' 和 '-'。最大长度:每个主机名 128 个字符,整行 2048 个字符。

默认值:由 HostnameItem 设置

HostnameItem

可选参数,定义用于获取主机名的监控项。此选项仅在未定义 Hostname 时使用。不支持用户参数或别名,但无论 AllowKey/DenyKey 值如何,都支持 system.run[] 监控项。

默认值:system.hostname

Include

您可以在配置文件中包含目录中的单个文件或所有文件。在安装过程中,Zabbix 将在 /usr/local/etc 中创建包含目录,除非在编译时进行了修改。路径可以相对于 zabbix_agent2.conf 文件位置。
要仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。
有关限制,请参阅 特别说明

示例:

Include=/absolute/path/to/config/files/*.conf

ListenIP

agent 应监听的逗号分隔 IP 地址列表。如果连接到 Zabbix 服务器,则第一个 IP 地址将发送到该服务器以检索活动检查列表。

默认值:0.0.0.0

ListenPort

agent 将在此端口上侦听来自服务器的连接。

默认值:10050
范围:1024-32767

LogFile

日志文件的名称。

默认值:/tmp/zabbix_agent2.log
必填:是,如果 LogType 设置为 file;否则否

LogFileSize

日志文件的最大大小(以 MB 为单位)。
0 - 禁用自动日志轮换。
注意:如果达到日志文件大小限制并且文件轮换失败,无论出于何种原因,现有日志文件都会被截断并重新启动。

默认值:1
范围:0-1024

LogType

日志输出的类型:
file - 将日志写入 LogFile 参数指定的文件;
console - 将日志写入标准输出。

默认值:file

PersistentBufferFile

Zabbix agent 2 应保存 SQLite 数据库的文件。必须是完整文件名。此参数仅在启用持久缓冲区时使用 (EnablePersistentBuffer=1)。

PersistentBufferPeriod

当没有连接到server 或proxy 时,应存储数据的时间段。较旧的数据将丢失。日志数据将被保留。此参数仅在启用持久缓冲区时使用(EnablePersistentBuffer=1)。

默认值:1h
范围:1m-365d

PidFile

PID 文件的名称。

默认值:/tmp/zabbix_agent2.pid

Plugins.<PluginName>.System.Capacity

每个 <PluginName> 插件可同时执行的检查限制。

默认值:1000 范围:1-1000

Plugins.Log.MaxLinesPerSecond

agent 在处理“log”、“logrt”和“eventlog”活动检查时每秒向 Zabbix server 或proxy 发送的最大新行数。提供的值将被“log”、“logrt”或“eventlog”监控项键中提供的“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 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地址。允许使用空格。如果未指定此参数,则禁用被动检查,且agent不会监听任何TCP端口。

示例:

Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
ServerActive

要从中获取主动检查的 Zabbix server/proxy 地址或集群配置。server/proxy 地址是 IP 地址或 DNS 名称和可选端口,以冒号分隔。
集群配置是一个或多个以分号分隔的服务器地址。可以指定多个 Zabbix server/集群和 Zabbix proxy,以逗号分隔。不应为每个 Zabbix server/集群指定多个 Zabbix proxy。如果指定了 Zabbix proxy,则不应指定该proxy 的 Zabbix server/集群。
可以提供多个以逗号分隔的地址以并行使用多个独立的 Zabbix server。允许使用空格。
如果未指定端口,则使用默认端口。
如果指定了该主机的端口,则必须将 IPv6 地址括在方括号中。如果未指定端口,则 IPv6 地址的方括号是可选的。
如果未指定此参数,则禁用主动检查。

Zabbix proxy示例:

ServerActive=127.0.0.1:10051

多个server 示例:

ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]

高可用性示例:

ServerActive=zabbix.cluster.node1;zabbix.cluster.node2:20051;zabbix.cluster.node3

两个集群和一个server 的高可用性示例:

ServerActive=zabbix.cluster.node1;zabbix.cluster.node2:20051,zabbix.cluster2.node1;zabbix.cluster2.node2,zabbix.domain

SourceIP

源 IP 地址用于:
- 到 Zabbix server 或 Zabbix proxy 的传出连接;
- 在执行某些监控项(web.page.get、net.tcp.port 等)时建立连接。

StatusPort

如果设置,agent 将在此端口上侦听 HTTP 状态请求 (http://localhost:<port>/status)。

范围:1024-32767

超时时间

指定等待与Zabbix proxy或server建立连接和交换数据的最长时间(以秒为单位)。
此参数定义了各种操作的持续时间,包括:
- 等待Zabbix server的响应;
- 向Zabbix server发送请求,包括主动检查配置请求和监控项数据;
- 通过logfile或Windows事件日志监控检索日志数据;
- 发送心跳消息;
- vfs.*检查的最大持续时间;
- 在服务器或proxy版本早于7.0且发送检查时不带超时时间的场景中作为回退。

默认值:3
范围:1-30

TLSAccept

要接受的传入连接。用于被动检查。可以指定多个值,用逗号分隔:
unencrypted - 接受未加密的连接(默认)
psk - 接受使用 TLS 和预共享密钥 (PSK) 的连接
cert - 接受使用 TLS 和证书的连接

必需:是,如果定义了 TLS 证书或 PSK 参数(即使对于 uncrypted 连接也是如此);否则否

TLSCAFile

包含用于对等证书验证的顶级 CA 证书的文件的完整路径名,用于 Zabbix 组件之间的加密通信。

TLSCertFile

包含agent 证书或证书链的文件的完整路径名,用于与 Zabbix 组件进行加密通信。

TLSCipherAll

OpenSSL 密码字符串(TLS 1.2)。覆盖基于证书和 PSK 的加密的默认密码套件选择标准。

示例:

EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128

此参数自 Zabbix 7.0.4 版本起得到支持。

TLSCipherAll13

适用于 OpenSSL 1.1.1 或更高版本的 OpenSSL 密码字符串(TLS 1.3)。覆盖默认的密钥套件选择标准,用于基于证书和 PSK 的加密。

示例:

TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

此参数自 Zabbix 7.0.4 版本起得到支持。

TLSCipherCert

OpenSSL 密码字符串(TLS 1.2)。覆盖基于证书加密的默认密码套件选择标准。

示例:

EECDH+aRSA+AES128:RSA+aRSA+AES128

请注意,此参数不能与 TLSAccept=cert,psk 一起使用;对于证书连接 (TLSConnect=cert),请改用 TLSCipherAll。

此参数自 Zabbix 7.0.4 版本起得到支持。

TLSCipherCert13

这是 OpenSSL 密码字符串(TLS 1.3),适用于 OpenSSL 1.1.1 或更高版本。它覆盖了基于证书加密的默认密码套件选择标准。

请注意,此参数不能与 TLSAccept=cert,psk 一起使用;对于证书连接 (TLSConnect=cert),请改用 TLSCipherAll13。

此参数自 Zabbix 7.0.4 版本起得到支持。

TLSCipherPSK

OpenSSL 密码字符串(TLS 1.2)。覆盖基于 PSK 加密的默认密码套件选择标准。

示例:

kECDHEPSK+AES128:kPSK+AES128

此参数自 Zabbix 7.0.4 版本起得到支持。

TLSCipherPSK13

这是 OpenSSL 密码字符串(TLS 1.3),适用于 OpenSSL 1.1.1 或更高版本。覆盖基于预共享密钥(PSK)加密的默认密码套件选择标准。

示例:

TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

此参数自 Zabbix 7.0.4 版本起得到支持。

TLSConnect

agent 应如何连接到 Zabbix server 或proxy。用于主动检查。只能指定一个值:
unencrypted - 不加密连接(默认)
psk - 使用 TLS 和预共享密钥 (PSK) 连接
cert - 使用 TLS 和证书连接

必填:是,如果定义了 TLS 证书或 PSK 参数(即使对于 未加密 连接);否则否

TLSCRLFile

包含已撤销证书的文件的完整路径名。此参数用于 Zabbix 组件之间的加密通信。

TLSKeyFile

包含agent私钥的文件的完整路径名,用于 Zabbix 组件之间的加密通信。

TLSPSKFile

包含agent 预共享密钥的文件的完整路径名,用于与 Zabbix server 进行加密通信。

TLSPSKIdentity

预共享密钥身份字符串,用于与 Zabbix 服务器进行加密通信。

TLSServerCertIssuer

允许的server(proxy)证书颁发者。

TLSServerCertSubject

允许的server(proxy)证书主题。

UnsafeUserParameters

允许将所有字符作为参数传递给用户定义的参数。不允许使用以下字符:\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
此外,不允许使用换行符。

默认值:0
值:0 - 不允许,1 - 允许

UserParameter

要监视的用户定义参数。可以有多个用户定义参数。
格式:UserParameter=<key>,<shell 命令>
请注意,shell 命令不得返回空字符串或仅返回 EOL。如果指定了 UserParameterDir 参数,则 Shell 命令可以具有相对路径。

示例:

UserParameter=system.test,who|wc -l UserParameter=check_cpu,./custom_script.sh

UserParameterDir

UserParameter 命令的默认搜索路径。如果使用,agent 将在执行命令之前将其工作目录更改为此处指定的目录。因此,UserParameter 命令可以具有相对 ./ 前缀,而不是完整路径。
仅允许一个条目。

示例:

UserParameterDir=/opt/myscripts