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 可在配置文件 file 中包含单个文件或目录中的所有文件。
ListenIP agent 应监听的逗号分隔的 IP 地址列表。
ListenPort agent 将在此端口监听来自服务器的连接。
LogFile 日志文件 file 的名称。
LogFileSize 日志文件 file 的最大大小。
LogType 日志输出类型。
PersistentBufferFile Zabbix agent 2 应保存 SQLite 数据库的 file。
PersistentBufferPeriod 与 server 或 proxy 无连接时应存储数据的时间段。
PidFile PID 文件 file 的名称。
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 用于 get 主动检查的 Zabbix server/proxy 地址或集群配置。
SourceIP 源 IP 地址。
StatusPort 如果设置,agent 将在此端口监听 HTTP 状态请求 (http://localhost:<port>/status)。
Timeout 指定与 Zabbix proxy 或服务器建立连接和交换数据的等待时间(秒)。
TLSAccept 接受哪些传入连接。
TLSCAFile 包含用于 Zabbix 组件间加密通信的对等证书验证的 Top 级 CA 证书的文件 file 的完整路径名。
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 包含 agent 私钥的文件 file 的完整路径名,用于 Zabbix 组件间的加密通信。
TLSPSKFile 包含 agent 预共享密钥的文件 file 的完整路径名,用于与 Zabbix server 的加密通信。
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键以默认参数getCPU利用率百分比,同时也可使用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]等。

AllowKey

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

BufferSend

该时间间隔(以秒为单位)决定了数值从缓冲区发送到Zabbix server的频率。 请注意,如果缓冲区已满,数据将会提前发送。

默认值:5
范围:1-3600

BufferSize

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

EnablePersistentBuffer

启用本地持久化存储以支持主动式监控项。 若禁用持久化存储,将使用memory缓冲区。

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

ForceActiveChecksOnStart

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

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

HeartbeatFrequency

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

默认值:60
范围:0-3600

HostInterface

一个可选参数,用于定义在主机 autoregistration过程中使用的主机接口(IP地址或DNS名称)。 该值将用于填充新创建的主机中的接口,并允许显式配置IP或DNS地址。 更多详情,请参阅Using DNS as default interface

如果未定义,该值将从HostInterfaceItem获取。

如果该值超过255个字符的限制,agent将问题错误且不会启动。

范围:0-255个字符

HostInterfaceItem

一个可选参数,用于定义在主机 autoregistration过程中确定主机接口(IP地址或DNS名称)所使用的监控项。 此值仅在未定义HostInterface时使用。 更多详情,请参阅Using DNS as default interface

在自动注册请求期间,如果指定的监控项返回的值超过255个字符的限制,agent将记录一条警告消息。

system.run[] 监控项不受AllowKey/DenyKey设置影响

HostMetadata

一个可选参数,用于定义在主机autoregistration过程中用于识别或区分主机的metadata。 HostMetadata允许超越主机名来区分主机。

如果未定义,该值将从HostMetadataItem获取。

当指定值超过2034字节限制或使用非UTF-8string时,agent将问题错误且不会启动。 当参数需要IP地址或DNS名称时,有效UTF-8但无效的IP或DNS名称值也将被拒绝并报告为无效。

范围:0-2034字节

HostMetadataItem

一个可选参数,用于定义获取host metadata时使用的Zabbix agent监控项。 该选项仅在未定义HostMetadata时使用。

HostMetadataItem值会在每次autoregistration尝试时获取,并仅用于主机自动注册过程。 HostMetadataItem允许根据主机名之外的主机进行区分。

支持用户参数和别名。 无论AllowKey/DenyKey设置如何,都支持system.run[]监控项。

在自动注册请求期间,如果指定监控项返回的值超过65535个UTF-8码点限制,agent将记录警告消息。 监控项返回的值必须是UTF-8string,否则将被忽略。 当参数期望IP地址或DNS名称时,有效UTF-8但非有效IP或DNS名称的值也将被拒绝并报告为无效。

Hostname

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

默认值:由HostnameItem设置

HostnameItem

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

默认值:system.hostname

Include

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

示例:

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

一个逗号分隔的IP地址列表,agent应监听的地址。 第一个IP地址会被发送到Zabbix server(当连接到它时)以获取活动检查列表。

默认值:0.0.0.0

ListenPort

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

默认值: 10050
范围: 1024-32767

LogFile

日志file的名称.

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

LogFileSize

日志file的最大大小,单位为MB。
0 - 禁用自动日志轮转。
注意:如果日志file大小达到限制且file轮转失败(无论何种原因),现有日志file将被截断并重新开始记录。

默认值:1
范围:0-1024

LogType

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

默认值: file

PersistentBufferFile

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

PersistentBufferPeriod

当与server 或 proxy无连接时应存储数据的时长. 较早的数据将会丢失. 日志数据将被保留. 此参数仅在启用持久缓冲区时使用(EnablePersistentBuffer=1).

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

PidFile

PID名称file.

默认值: /tmp/zabbix_agent2.pid

Plugins.<PluginName>.System.Capacity

<PluginName>插件可同时执行的最大检查数量限制

默认值: 1000 范围: 1-1000

Plugins.Log.MaxLinesPerSecond

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

默认值: 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

Server

以逗号分隔的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

多服务器示例:

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 server或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 server或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=<键值>,<shell命令>
注意shell命令不能返回空string或仅包含EOL。 如果指定了UserParameterDir参数,shell命令可以使用相对路径。

示例:

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

UserParameter命令的默认搜索路径。 如果使用此参数,agent将在执行命令前将工作目录切换至此处指定的目录。 因此,UserParameter命令可以使用相对路径的./前缀而非完整路径。
仅允许配置一个条目。

示例:

UserParameterDir=/opt/myscripts