5 Zabbix agent (Windows)

概述

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

参数列表不包含额外信息。 点击参数可查看完整详情。

参数 描述
Alias 为监控项键设置alias。
AllowKey 允许执行匹配模式的监控项键。
BufferSend 缓冲区中数据保留时间不超过N秒。
BufferSize memory缓冲区中的最大数值数量。
DebugLevel 调试级别。
DenyKey 拒绝执行匹配模式的监控项键。
EnableRemoteCommands 是否允许来自Zabbix server的远程命令。
HeartbeatFrequency 心跳消息频率(秒)。
HostInterface 定义主机接口的可选参数。
HostInterfaceItem 定义用于获取主机接口的监控项的可选参数。
HostMetadata 定义主机元数据的可选参数。
HostMetadataItem 定义用于获取主机元数据的Zabbix agent监控项的可选参数。
Hostname 定义主机名的可选参数。
HostnameItem 定义用于获取主机名的Zabbix agent监控项的可选参数。
Include 可在配置file中包含单个文件或目录中的所有文件。
ListenBacklog TCP队列中待处理连接的最大数量。
ListenIP agent应监听的逗号分隔IP地址列表。
ListenPort agent将在此端口监听来自服务器的连接。
LogFile 日志file的名称。
LogFileSize 日志file的最大大小。
LogRemoteCommands 启用将执行的shell命令记录为警告。
LogType 日志输出类型。
MaxLinesPerSecond 当处理'日志'和'logrt'主动检查时,agent每秒发送给Zabbix server或proxy的新行最大数量。
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地址。
StartAgents 处理被动检查的zabbix_agentd预派生实例数量。
Timeout 指定与Zabbix proxy或服务器建立连接和交换数据的等待时间(秒)。
TLSAccept 接受哪些传入连接。
TLSCAFile 包含对等证书验证的Top级CA证书的file完整路径名,用于Zabbix组件间的加密通信。
TLSCertFile 包含agent证书或证书链的file完整路径名,用于Zabbix组件间的加密通信。
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中,但不能用于HostnameItemPerfCounter参数。

示例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键以默认参数getCPU负载,同时使用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

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

默认值: 5
范围: 1-3600

BufferSize

memory缓冲区中的最大数值数量。 当缓冲区满时,agent会将所有收集的数据发送到Zabbix server或proxy。

默认值:100
范围:2-65535

DebugLevel

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

默认值:3
范围:0-5

DenyKey

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

EnableRemoteCommands

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

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

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

默认值:system.hostname

Include

您可以在配置文件file中包含单个文件或目录中的所有文件(如果Zabbix agent通过Windows MSI安装包安装,默认位于C:\Program Files\Zabbix Agent;如果Zabbix agent以zip压缩包形式安装,则位于安装时指定的文件夹)。 所有被包含的文件必须具有 正确的语法,否则agent将无法启动。
若仅需包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。
有关限制条件,请参阅special notes

示例:

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

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

默认值:SOMAXCONN
范围:0 - INT_MAX

ListenIP

一个逗号分隔的IP地址列表,agent 应该监听这些地址。

默认值: 0.0.0.0

监听端口

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

默认值:10050
范围:1024-32767

##### 日志文件

agent日志文件的名称。

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

日志文件大小

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

默认值: 1
范围: 0-1024

LogRemoteCommands

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

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

日志类型

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

默认值:file

MaxLinesPerSecond

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

默认值:20
范围:1-1000

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地址 请注意,"IPv4兼容的IPv6地址"(0000::/96前缀)虽受支持,但已被RFC4291弃用。 允许使用空格。

示例:

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

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

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 等)时建立连接。
StartAgents

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

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

Timeout

指定建立连接以及与Zabbix proxy或服务器交换数据时等待的时长(以秒为单位)。
此参数用于定义以下各类操作的持续时间:

  • 等待来自Zabbix server的响应;
  • 向Zabbix server发送请求,包括主动检查配置请求和监控项数据;
  • 通过logfile或Windows事件日志监控检索日志数据;
  • 发送心跳消息;
  • vfs.*检查的最大持续时间;
  • 被Zabbix agent模块使用;
  • 在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 证书或证书链。

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

(*) ServerActive中列出的活动服务器数量加上StartAgents中指定的被动检查预分叉实例数量必须小于64.