6 Zabbix agent 2 (Windows)

概述

Zabbix agent 2 是新一代的 Zabbix agent,可用于替代 Zabbix agent。

本节列出了 Windows 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 无连接时应存储数据的时间段。
Plugins.<PluginName>.System.Capacity 可同时执行的每个插件的检查限制。
Plugins.Log.MaxLinesPerSecond 处理 '日志' 和 'logrt' 主动检查时,agent 每秒发送给 Zabbix server 或 proxy 的新行最大数量。
Plugins.SystemRun.LogRemoteCommands 启用将执行的 shell 命令记录为警告。
PluginSocket 可加载插件通信的 UNIX 套接字路径。
PluginTimeout 与可加载插件连接的超时时间(秒)。
PerfCounter 定义新参数 <parameter_name>,它是系统性能计数器 <perf_counter_path> 在指定时间段 <period>(秒)内的平均值。
PerfCounterEn 定义新参数 <parameter_name>,它是系统性能计数器 <perf_counter_path> 在指定时间段 <period>(秒)内的平均值。与 PerfCounter 相比,性能计数器路径必须为英文。
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 组件间的加密通信。
TLSCipherAll13 OpenSSL 密码套件 string(TLS 1.3)。覆盖基于证书和 PSK 加密的默认密码套件选择标准。
TLSCipherCert13 OpenSSL 密码套件 string(TLS 1.3)。覆盖基于证书加密的默认密码套件选择标准。
TLSCipherPSK13 OpenSSL 密码套件 string(TLS 1.3)。覆盖基于 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:从服务器获取分页file使用百分比。

Alias=pg_usage:perf_counter[\Paging File(_Total)\% Usage]

现在可以使用简写键pg_usage来获取数据。

示例2:使用默认和自定义参数获取CPU负载。

Alias=cpu.load:system.cpu.load
       Alias=cpu.load[*]:system.cpu.load[*]

这样既可以使用cpu.load键get默认参数的CPU负载,也可以使用cpu.load[percpu,avg15]来getCPU负载的特定数据。

示例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'选项发送运行时命令。

默认值:\\.\pipe\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将记录一条警告消息。

无论AllowKey/DenyKey设置如何,system.run[] 监控项均受支持。

HostMetadata

一个可选参数,用于定义在主机autoregistration过程中用于识别或区分主机的metadata(主动agent)。 HostMetadata允许通过主机名之外的方式区分主机。

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

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

不支持多行元数据——输出将在第一个换行符处截断。

范围:0-2034字节

HostMetadataItem

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

HostMetadataItem值会在每次autoregistration尝试时获取,并仅用于主机自动注册过程(主动式agent)。 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 agent通过Windows MSI安装包安装,默认位于C:\Program Files\Zabbix Agent 2;如果Zabbix agent以zip压缩包形式安装,则位于安装时指定的文件夹)。 所有被包含的文件必须具有 正确的语法,否则agent将无法启动。 路径可以是相对于zabbix_agent2.conf配置文件file的位置(例如, Include=.\zabbix_agent2.d\plugins.d\*.conf)。
若仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。
关于限制条件,请参阅special notes

示例:

Include=C:\Program Files\Zabbix Agent2\zabbix_agent2.d\*.conf
ListenIP

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

默认值:0.0.0.0

ListenPort

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

默认值:10050
范围:1024-32767

LogFile

file日志的agent名称.

默认值: c:\zabbix_agent2.log
必填: 是,当LogType设置为file时;否则为否

LogFileSize

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

默认值:1
范围:0-1024

LogType

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

默认值: file

PersistentBufferFile

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

PersistentBufferPeriod

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

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

Plugins.<PluginName>.System.Capacity

每个<PluginName>插件可以同时执行的检查数量限制.

默认值: 1000 范围: 1-1000

Plugins.Log.MaxLinesPerSecond

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

默认值: 20
范围: 1-1000

Plugins.SystemRun.LogRemoteCommands

启用已执行shell命令的日志记录为警告级别。 该日志记录仅在远程执行命令时生效。 若system.run[]通过HostMetadataItem、HostInterfaceItem或HostnameItem参数在本地启动,则不会生成日志条目。

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

PluginSocket

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

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

PluginTimeout

可加载插件连接超时时间(秒)

默认值:Timeout
范围:1-30

PerfCounter

定义一个新参数<parameter_name>,该参数表示系统性能计数器<perf_counter_path>在指定时间段<period>(以秒为单位)内的平均值。
语法:<parameter_name>,"<perf_counter_path>",<period>

例如,如果您希望获取过去一分钟内处理器每秒中断次数的平均值,可以按如下方式定义一个名为"interrupts"的新参数:

PerfCounter = interrupts,"\Processor(0)\Interrupts/sec",60

请注意性能计数器路径两侧的双引号。 参数名称(interrupts)在创建监控项时应作为监控项键使用。 系统将每秒采集一次样本用于计算平均值。
您可以使用run "typeperf -qx"命令来get Windows中所有可用的性能计数器列表。

PerfCounterEn

定义一个新参数<parameter_name>,该参数表示系统性能计数器<perf_counter_path>在指定时间段<period>(以秒为单位)内的平均值。 与PerfCounter相比,perfcounter路径必须使用英文。 仅支持Windows Server 2008/Vista及更高版本。
语法:<parameter_name>,"<perf_counter_path>",<period>

例如,如果您希望获取过去一分钟内处理器每秒中断次数的平均值,可以按以下方式定义名为"interrupts"的新参数:

PerfCounterEn = interrupts,"\Processor(0)\Interrupts/sec",60

请注意性能计数器路径两侧的双引号。 参数名(interrupts)将作为创建监控项时的监控项键使用。 系统将每秒采集一次样本用于计算平均值。
您可以通过查看以下注册表项获取英文字符串列表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

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发送请求,包括主动检查中的监控项配置请求和监控项数据;
  • 通过日志文件或Windows事件日志监控获取日志数据;
  • 发送心跳消息;
  • 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完整路径名。

TLSCipherAll13

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

示例:

TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

该参数从Zabbix 7.0.4版本开始支持。

TLSCipherCert13

OpenSSL加密套件string(TLS 1.3版本)。 覆盖基于证书加密的默认加密套件选择标准。

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

该参数自Zabbix 7.0.4版本起支持。

TLSCipherPSK13

OpenSSL加密套件string(TLS 1.3版本)。 覆盖基于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,dir /b | find /c /v ""
       UserParameter=check_cpu,.\custom\_script.bat
UserParameterDir

UserParameter命令的默认搜索路径。 若启用此参数,agent将在执行命令前将工作目录切换至此处指定的路径。 因此,UserParameter命令可使用相对路径的.\前缀替代完整路径。
仅允许配置单个路径条目。

示例:

UserParameterDir=C:\opt\myscripts