5 Zabbix agent (Windows)

概述

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

这些参数仅作列表展示,不包含附加信息。 单击参数可查看完整详细信息。

Parameter Description
Alias 为监控项键设置别名。
AllowKey 允许执行与某个模式匹配的那些监控项键。
BufferSend 不要在缓冲区中保留数据超过 N 秒。
BufferSize 内存缓冲区中的最大值数量。
DebugLevel 调试级别。
DenyKey 拒绝执行与某个模式匹配的那些监控项键。
EnableRemoteCommands 是否允许来自 Zabbix 服务器的远程命令。
HeartbeatFrequency 心跳消息的频率(秒)。
HostInterface 定义主机接口的可选参数。
HostInterfaceItem 定义用于获取主机接口的监控项的可选参数。
HostMetadata 定义主机元数据的可选参数。
HostMetadataItem 定义用于获取主机元数据的 Zabbix agent 监控项的可选参数。
Hostname 定义主机名的可选参数。
HostnameItem 定义用于获取主机名的 Zabbix agent 监控项的可选参数。
Include 您可以在配置文件中包含单个文件或目录中的所有文件。
ListenBacklog TCP 队列中挂起连接的最大数量。
ListenIP agent 应监听的、以逗号分隔的 IP 地址列表。
ListenPort agent 将在此端口上监听来自服务器的连接。
LogFile 日志文件名称。
LogFileSize 日志文件的最大大小。
LogRemoteCommands 启用将已执行的 shell 命令作为警告记录到日志中。
LogType 日志输出类型。
MaxLinesPerSecond 在处理 'log' 和 'logrt' 主动检查时,agent 每秒向 Zabbix 服务器或 proxy 发送的新行最大数量。
PerfCounter 定义一个新参数 <parameter_name>,其值为指定时间段 <period>(秒)内系统性能计数器 <perf_counter_path> 的平均值。
PerfCounterEn 定义一个新参数 <parameter_name>,其值为指定时间段 <period>(秒)内系统性能计数器 <perf_counter_path> 的平均值。与 PerfCounter 相比,perfcounter 路径必须为英文。
RefreshActiveChecks 主动检查列表的刷新频率。
Server Zabbix 服务器和 Zabbix proxies 的 IP 地址列表(以逗号分隔,可选用 CIDR 表示法)或 DNS 名称列表。
ServerActive 用于获取主动检查的 Zabbix 服务器/proxy 地址或集群配置。
SourceIP 源 IP 地址。
StartAgents 用于处理被动检查的预派生 zabbix_agentd 实例数量。
Timeout 指定与 Zabbix proxy 或服务器建立连接并交换数据时的等待时长(秒)。
TLSAccept 接受哪些传入连接。
TLSCAFile 包含顶级 CA 证书的文件完整路径名,用于 Zabbix 各组件之间加密通信中的对端证书验证。
TLSCertFile 包含 agent 证书或证书链的文件完整路径名,用于 Zabbix 各组件之间的加密通信。
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,但不能用于 HostnameItemPerfCounter 参数。

示例 1:从服务器获取分页文件使用率百分比。

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 键值获取带默认参数的 CPU 负载,也可以使用 cpu.load[percpu,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

不要将数据保留在缓冲区中超过 N 秒。

默认值:5
范围:1-3600

BufferSize

内存缓冲区中的最大值数量。
如果缓冲区已满,agent 将把所有已收集的数据发送到 Zabbix 服务器或 proxy。

默认值:100
范围:2-65535

DebugLevel

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

默认值:3
范围:0-5

DenyKey

拒绝执行与某个模式匹配的那些监控项键。 键模式是一个通配符表达式,支持使用“*”字符来匹配任意数量的任意字符。
可以结合 AllowKey 定义多条键匹配规则。 这些参数会按照其出现顺序逐一处理。 另请参见:限制 agent 检查

EnableRemoteCommands

是否允许来自 Zabbix 服务器的远程命令。
此参数已弃用,请改用 AllowKey=system.run[*] 或 DenyKey=system.run[*]。
它是 AllowKey/DenyKey 参数的内部别名,具体取决于其值:
0 - DenyKey=system.run[*]
1 - AllowKey=system.run[*]

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

一个可选参数,用于定义在主机自动注册过程中(active agent)用于识别或区分主机的元数据。 HostMetadata 允许基于主机名之外的信息来区分主机。

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

如果指定的值超过 2034 字节限制或不是 UTF-8 字符串,agent 将报错并且不会启动。 当某个参数需要 IP 地址或 DNS 名称时,那些虽然是有效 UTF-8、但不是有效 IP 或 DNS 名称的值也会被拒绝,并报告为无效。

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

范围:0-2034 字节

HostMetadataItem

一个可选参数,用于定义一个 Zabbix agent 监控项,以获取主机元数据。 仅当未定义 HostMetadata 时,才会使用此选项。

HostMetadataItem 的值会在每次自动注册尝试时获取,并且仅在主机自动注册过程中使用(主动 agent)。

HostMetadataItem 允许基于主机名之外的信息区分不同主机。

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

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

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

Hostname

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

默认值:由 HostnameItem 设置

HostnameItem

一个可选参数,用于定义 Zabbix agent 监控项,以获取主机名。
仅当未定义 Hostname 时,才会使用此选项。
不支持用户参数、性能计数器或别名,但无论 AllowKey/DenyKey 的值如何,均支持 system.run[] 监控项。
另请参见更详细的说明

默认值:system.hostname

Include

您可以在配置文件中包含单个文件,或包含目录中的所有文件(如果使用 Windows MSI 安装程序包安装 Zabbix agent,则配置文件默认位于 C:\Program Files\Zabbix Agent;如果将 Zabbix agent 作为 zip 压缩包安装,则位于安装期间指定的文件夹中)。 所有被包含的文件都必须具有正确的语法,否则 agent 将无法启动。
为了仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。
有关限制,请参见特别说明

示例:

Include=C:\Program Files\Zabbix Agent\zabbix_agentd.d\*.conf
ListenBacklog

TCP 队列中待处理连接的最大数量。
默认值是硬编码常量,取决于系统。
支持的最大值取决于系统,过高的值可能会被默默截断为“实现指定的最大值”。

默认值:SOMAXCONN
范围:0 - INT_MAX

ListenIP

agent应监听的逗号分隔 IP 地址列表。

默认值:0.0.0.0

ListenPort

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

默认值:10050
范围:1024-32767

LogFile

agent 日志文件的名称。

默认值:c:\zabbix_agentd.log
必填:是,如果 LogType 设置为 file;否则为否

LogFileSize

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

默认值:1
范围:0-1024

LogRemoteCommands

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

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

LogType

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

默认值:file

MaxLinesPerSecond

在处理 loglogrteventlog 主动检查时,agent 每秒向 Zabbix 服务器或 proxy 发送的新行最大数量。
所提供的值会被 loglogrteventlog 监控项键中指定的 maxlines 参数覆盖。
注意:对于日志监控项,Zabbix 为了查找所需字符串,实际处理的新行数量将是 MaxLinesPerSecond 中设置值的 10 倍。

默认值:20
范围:1-1000

PerfCounter

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

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

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

请注意,性能计数器路径需要用双引号括起来。
参数名称(interrupts)将在创建监控项时用作监控项键值。
用于计算平均值的采样将每秒进行一次。
您可以运行 "typeperf -qx" 以获取 Windows 中所有可用性能计数器的列表。

PerfCounterEn

定义一个新参数 <parameter_name>,其值为指定时间段 <period>(以秒为单位)内系统性能计数器 <perf_counter_path> 的平均值。
与 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

服务器

以逗号分隔的 Zabbix 服务器或 Zabbix proxies 的 IP 地址列表,可选用 CIDR 表示法,或使用 DNS 名称。 仅接受来自此处列出的主机的传入连接。 如果启用了 IPv6 支持,则 '127.0.0.1'、'::127.0.0.1'、'::ffff:127.0.0.1' 被视为等同,而 '::/0' 将允许任何 IPv4 或 IPv6 地址。 '0.0.0.0/0' 可用于允许任何 IPv4 地址。 请注意,“IPv4-compatible IPv6 addresses”(0000::/96 前缀)受支持,但已被 RFC4291 弃用。 允许使用空格。

示例:

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

必需:是,如果未明确将 StartAgents 设置为 0

ServerActive

用于获取主动检查的 Zabbix 服务器/proxy 地址或集群配置。
服务器/proxy 地址可以是 IP 地址或 DNS 名称,并可选择使用冒号分隔端口。
集群配置可以是一个或多个服务器或 proxy 组成员地址,地址之间使用分号分隔。
可以指定多个 Zabbix 服务器/集群和 Zabbix proxies,之间使用逗号分隔。
除非使用 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 等)时建立连接。
StartAgents

处理被动检查的预派生 zabbix_agentd 实例数量。
如果设置为 0,则被动检查将被禁用,并且 agent 不会监听任何 TCP 端口。

默认值:10
范围:0-100 (*)

超时

指定与 Zabbix proxy 或服务器建立连接并交换数据时的等待时长(以秒为单位)。

此参数定义了各种通信操作的持续时间,包括:

  • 等待 Zabbix 服务器响应;
  • 向 Zabbix 服务器发送请求,包括监控项配置请求以及主动检查中的监控项数据;
  • 通过 logfile 或 Windows 事件日志监控获取日志数据;
  • 发送心跳消息;
  • vfs.* 检查的最长持续时间;
  • 由 Zabbix agent 模块使用;
  • 在版本早于 7.0 的服务器或 proxy 发送不带超时设置的检查时,作为后备值使用。

对于那些可在前端中配置超时设置的 agent 检查(在全局、proxy 或单个监控项级别),将不会使用此超时值。

默认值:3
范围:1-30

TLSAccept

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

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

TLSCAFile

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

TLSCertFile

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

TLSConnect

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

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

TLSCRLFile

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

TLSKeyFile

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

TLSPSKFile

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

TLSPSKIdentity

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

TLSServerCertIssuer

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

TLSServerCertSubject

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

UnsafeUserParameters

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

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

UserParameter

用于监控的用户自定义参数。
可以有多个用户自定义参数。
格式:UserParameter=<key>,<shell command>
请注意,shell 命令不得仅返回空字符串或 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

(*) 在 ServerActive 中列出的活动服务器数量,加上在 StartAgents 中为被动检查指定的预派生实例数量,必须小于 64。