4 Zabbix agent 2 (UNIX)

概述

Zabbix agent 2 是新一代的 Zabbix agent,并且可以用于 Zabbix agent的位置。

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

参数列表中未包含附加信息。点击参数以查看完整详细信息。

参数 描述
Alias 为一个 监控项 键设置一个 alias。
AllowKey 允许执行与模式匹配的那些 监控项 键。
BufferSend 不要在缓冲区中保留超过 N 秒的数据。
BufferSize memory 缓冲区中的最大值数量。
ControlSocket 控制套接字,用于通过 '-R' 选项发送运行时命令。
DebugLevel 调试级别。
DenyKey 拒绝执行与模式匹配的那些 监控项 键。
EnablePersistentBuffer 启用对主动 监控项 使用本地持久化存储。
ForceActiveChecksOnStart 在重启后立即对首次接收到的配置执行主动检查。
HeartbeatFrequency 心跳消息的频率(以秒为单位)。
HostInterface 一个可选参数,用于定义 主机 接口。
HostInterfaceItem 一个可选参数,用于定义用于获取 主机 接口的 监控项。
HostMetadata 一个可选参数,用于定义 主机 元数据。
HostMetadataItem 一个可选参数,用于定义用于获取 主机 元数据的 Zabbix agent 监控项。
Hostname 一个可选参数,用于定义主机名。
HostnameItem 一个可选参数,用于定义用于获取主机名的 Zabbix agent 监控项。
Include 您可以在配置文件中包含单个文件或目录中的所有文件。
ListenIP 逗号分隔的IP地址列表,agent 应该监听的IP地址。
ListenPort agent 将在此端口监听来自服务器的连接。
LogFile 日志文件的名称。
LogFileSize 日志文件的最大大小。
LogType 日志输出的类型。
PersistentBufferFile 存储 Zabbix agent 2 应该保留 SQLite 数据库的 file。
PersistentBufferPeriod 当与 server 或 proxy 没有连接时,数据应存储的时间周期。
PidFile PID文件的名称。
Plugins.<PluginName>.System.Capacity 每个插件可同时执行的检查数量上限。
Plugins.Log.MaxLinesPerSecond 在处理 '日志' 和 "logrt" 主动检查时,agent 每秒发送到 Zabbix server 或 proxy 的最大新行数。
Plugins.SystemRun.LogRemoteCommands 启用将执行的 shell 命令记录为警告日志。
PluginSocket 用于可加载插件通信的 UNIX 套接字路径。
PluginTimeout 与可加载插件建立连接的超时时间,以秒为单位。
RefreshActiveChecks 主动检查列表的刷新频率。
Server 逗号分隔的IP地址列表,可选CIDR格式,或Zabbix servers和Zabbix proxies的DNS名称。
ServerActive 用于从 Zabbix server/proxy 地址或集群配置 get 主动检查的源地址。
SourceIP 源IP地址。
StatusPort 如果设置,agent 将在此端口监听 HTTP 状态请求(http://localhost:<port>/status)。
Timeout 指定与Zabbix proxy或服务器建立连接和交换数据时等待的时长(以秒为单位)。
TLSAccept 接受哪些传入连接。
TLSCAFile 用于对等证书验证的 file 的完整路径名,该文件包含 Top 级别 CA 证书,用于 Zabbix 组件之间的加密通信。
TLSCertFile 包含agent证书或证书链的file的完整路径名,用于Zabbix组件之间的加密通信。
TLSCipherAll OpenSSL 密码 string(TLS 1.2)。覆盖基于证书和 PSK 加密的默认密码套件选择标准。
TLSCipherAll13 OpenSSL 加密套件 string(TLS 1.3)适用于 OpenSSL 1.1.1 或更高版本。覆盖基于证书和 PSK 加密的默认加密套件选择标准。
TLSCipherCert OpenSSL 加密套件 string(TLS 1.2)。覆盖基于证书加密的默认加密套件选择标准。
TLSCipherCert13 OpenSSL 加密套件 string(TLS 1.3),适用于 OpenSSL 1.1.1 或更高版本。覆盖基于证书加密的默认加密套件选择标准。
TLSCipherPSK OpenSSL 加密套件 string(TLS 1.2)。覆盖基于 PSK 加密的默认加密套件选择标准。
TLSCipherPSK13 OpenSSL 密码 string(TLS 1.3)用于 OpenSSL 1.1.1 或更高版本。覆盖基于 PSK 加密的默认密码套件选择标准。
TLSConnect agent 应该如何连接到 Zabbix server 或 proxy。
TLSCRLFile 包含已吊销证书的file的完整路径名。此参数用于Zabbix组件之间的加密通信。
TLSKeyFile 包含 file 的完整路径名,该文件包含用于Zabbix组件之间加密通信的 agent 私钥。
TLSPSKFile 用于与 Zabbix server 进行加密通信的 file 的完整路径名,其中包含 agent 预共享密钥。
TLSPSKIdentity 预共享密钥标识符 string,用于与 Zabbix server 进行加密通信。
TLSServerCertIssuer 允许的服务器(proxy)证书颁发者。
TLSServerCertSubject 允许的服务器 (proxy) 证书主题。
UnsafeUserParameters 允许在参数中传递所有字符给用户自定义参数。
UserParameter 要监控的用户自定义参数。
UserParameterDir UserParameter 命令的默认搜索路径。

所有参数均为非必填项,除非明确说明该参数为必填项。

注意:

  • 默认值反映进程默认值,而不是中的值 随附的配置文件;
  • Zabbix 仅支持采用 UTF-8 编码的配置文件,且不包含 BOM
  • 以“#”开头的注释仅在开头部分受支持 该行。

参数详情

alias

为一个 监控项 键设置一个 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 键通过默认参数来 get CPU 使用率百分比,同时也可以使用 cpu.util[all, idle, avg15] 来 get 关于 CPU 使用率的特定数据。

示例 3:运行多个处理相同发现 监控项 的 low-level discovery 规则。

alias=vfs.fs.discovery[*]:vfs.fs.discovery

现在可以设置多个使用 vfs.fs.discovery 的发现规则,并为每个规则指定不同的参数,例如 vfs.fs.discovery[foo]vfs.fs.discovery[bar] 等。

允许的密钥

允许执行匹配模式的 监控项 键。键模式是一个通配符表达式,支持使用 "*" 字符匹配任意数量的任意字符。
可以结合 DenyKey 定义多个键匹配规则。参数将按照其出现顺序逐一处理。另请参阅:Restricting agent checks

BufferSend

将值从缓冲区发送到 Zabbix server 的时间间隔(以秒为单位)。请注意,如果缓冲区已满,数据将会更早发送。

默认值:5
范围:1-3600

缓冲区大小

memory缓冲区中存储的最大值数量。当缓冲区满时,agent会将所有收集的数据发送至Zabbix server或proxy。该参数仅在禁用持久缓冲区时使用(EnablePersistentBuffer=0)。

默认值:1000
取值范围:2-65535

ControlSocket

用于通过 '-R' 选项发送运行时命令的控制套接字。

默认值:/tmp/agent.sock

DebugLevel

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

默认值:3
范围:0-5

DenyKey

拒绝执行与模式匹配的那些 监控项 键。键模式是一个通配符表达式,支持使用 "*" 字符匹配任意数量的任意字符。
可以结合 AllowKey 定义多个键匹配规则。参数将按照其出现的顺序逐一处理。另请参阅:Restricting agent checks

启用持久化缓存

启用本地持久化存储以用于主动 监控项。如果禁用持久化存储,则将使用 memory 缓冲区。

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

强制主动检查在启动时

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

默认值:0
取值范围:0 - 禁用,1 - 启用

HeartbeatFrequency

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

默认值:60
取值范围:0-3600

主机接口

一个可选参数,用于定义主机接口。主机接口在主机 将-dns-设为默认接口过程中使用。如果未定义,则该值将从HostInterfaceItem获取。
如果该值超过255个字符的限制,agent将返回问题错误且不会启动。

范围:0-255个字符

主机接口项

一个可选参数,用于定义用于获取 监控项 接口的配置。<主机br>主机 接口在 主机 将-dns-设为默认接口 过程中使用。当未定义 HostInterface 时,才使用此选项。
无论 AllowKey/DenyKey 的值如何,都支持 system.run[] 监控项。
在自动注册请求期间,如果指定的 监控项 返回的值超过 255 个字符的限制,agent 将记录警告消息。

主机元数据

一个可选参数,用于定义主机元数据。主机元数据仅在主机自动注册过程中使用。如果未定义该参数,则其值将从HostMetadataItem中获取。
如果指定的值超过2034字节限制或使用了非UTF-8 string,则agent将问题一个错误并且不会启动。

范围:0-2034 字节

主机元数据项

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

主机名

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

默认值:由 HostnameItem 设置

主机名检测项

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

默认值:system.hostname

包含

您可以在配置文件中包含单个文件或目录中的所有文件。在安装过程中,除非在编译期间进行了修改,Zabbix 将会 create 包含目录放在 /usr/local/etc 中。路径可以相对于 zabbix_agent2.conf file 的位置。
若要仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。
有关限制,请参见 special notes

示例:

包含=/absolute/path/to/config/files/*.conf
ListenIP

一个逗号分隔的IP地址列表,agent 应该监听这些IP地址。如果连接到Zabbix server,则会发送第一个IP地址以检索主动检查的列表。

默认值: 0.0.0.0

监听端口

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

默认值:10050
范围:1024-32767

日志文件

日志文件的名称。

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

日志文件大小

日志 file 的最大大小(以 MB 为单位)。
0 - 禁用自动日志轮换。
注意:如果达到日志 file 大小限制并且由于任何原因导致 file 轮换失败,则现有的日志 file 将被截断并重新开始。

默认值: 1
范围: 0-1024

日志类型

日志输出的类型:
file - 将日志写入由LogFile参数指定的file;
system - 将日志写入syslog;
console - 将日志写入标准输出

默认值:file

PersistentBufferFile

SQLite数据库应存储在file中,此处Zabbix agent 2需保持SQLite数据库。必须为完整文件名。仅当启用持久化缓冲区时,此参数才被使用(EnablePersistentBuffer=1)。

持久化缓冲周期

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

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

PidFile

PID文件的名称。

默认值:/tmp/zabbix_agent2.pid

插件.<PluginName>.系统.容量

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

默认值: 1000 取值范围: 1-1000

Plugins.Log.MaxLinesPerSecond

当处理 '日志' 和 'logrt' 主动检查时,agent 每秒发送给 Zabbix server 或 proxy 的最大新行数。此值将被 '日志' 和 'logrt' 监控项 键值中提供的 'maxlines' 参数覆盖。
注意:为了在日志 监控项 中查找所需的 string,Zabbix 处理的新行数将是 MaxLinesPerSecond 设置值的 10 倍。

默认值:20 范围:1-1000

插件.SystemRun.LogRemoteCommands

启用将执行的 shell 命令记录为警告日志。仅在远程执行时才会记录命令。如果 system.run[] 是由 HostMetadataItem、HostInterfaceItem 或 HostnameItem 参数在本地启动的,则不会创建日志条目。

默认值: 0
取值范围: 0 - 禁用, 1 - 启用

插件套接字

用于可加载插件通信的UNIX套接字路径。

默认值:/tmp/agent.plugin.sock

插件超时

与可加载插件建立连接的超时时间,以秒为单位。

默认值:Timeout
范围:1-30

刷新主动检查

刷新主动检查列表的频率,以秒为单位。请注意,在刷新主动检查失败后,将在 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

用于get主动检查的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

多台服务器的示例:

主动检查的服务器地址列表。格式:`<ip>:<port>,<ip>:<port>,...`  

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

高可用性示例:

主动检查的服务器地址为:`zabbix.cluster.node1``zabbix.cluster.node2:20051` 以及 `zabbix.cluster.node3`

高可用性示例,包含两个集群和一个服务器:

主动检查的服务器地址列表为: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:<端口>/status)。

范围:1024-32767

超时

指定建立连接以及与Zabbix proxy或服务器交换数据时等待的时长(以秒为单位)。
此参数定义了多种操作的持续时间,包括:

  • 等待来自Zabbix server的响应;
  • 向Zabbix server发送请求,包括主动检查配置请求和监控项数据;
  • 通过logfile或Windows事件日志监控检索日志数据;
  • 发送心跳消息;
  • vfs.*检查的最大持续时间;
  • 在server 或 proxy版本早于version 7.0的情况下作为后备设置,用于那些没有设置超时的检查。

默认值:3
取值范围:1-30

TLSAccept

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

必填项:如果定义了TLS证书或PSK参数时为必填(即使为unencrypted连接);否则非必填

TLSCAFile

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

TLSCertFile

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

TLSCipherAll

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

示例:

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

自 Zabbix 7.0.4 起支持此参数。

TLSCipherAll13

OpenSSL密码string(TLS 1.3)适用于OpenSSL 1.1.1或更高版本。覆盖基于证书和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 1.1.1 或更新版本的OpenSSL加密套件 string(TLS 1.3)。覆盖基于证书加密的默认加密套件选择标准。

请注意,此参数不能与 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 1.1.1 或更新版本的 OpenSSL 加密套件 string(TLS 1.3)。覆盖基于 PSK 加密的默认加密套件选择标准。

示例:

TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

自 Zabbix 7.0.4 起支持此参数。

TLS连接

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

必填项:如果定义了 TLS 证书或 PSK 参数时为必填(即使是 unencrypted 连接);否则非必填

TLSCRLFile

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

TLSKeyFile

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

TLSPSKFile

用于与 Zabbix server 进行加密通信时使用的、包含 agent 预共享密钥的 file 的完整路径名。

TLSPSKIdentity

预共享密钥标识 string,用于与 Zabbix server 进行加密通信。

TLSServerCertIssuer

允许的服务器 (proxy) 证书颁发者。

TLSServerCertSubject

允许的服务器(proxy)证书主题。

UnsafeUserParameters

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

默认值:0
取值范围:0 - 不允许,1 - 允许

UserParameter

一个用于监控的用户自定义参数。可以有多个用户自定义参数。
格式:UserParameter=<key>,<shell命令>
请注意,shell命令返回的内容不能为空 string 或仅包含行末符。如果指定了UserParameterDir参数,shell命令可以使用相对路径。

示例:

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

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

示例:

UserParameterDir=/opt/myscripts