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 命令的默认搜索路径。 |
除非明确说明某个参数是必需的,否则所有参数均为非必需。
请注意:
参数详情
别名
为监控项键值设置别名。
它可用于将较长且复杂的监控项键值替换为更短、更简单的键值。
可以存在多个 Alias 参数。
不允许存在具有相同 Alias 键的多个参数。
不同的 Alias 键可以引用同一个监控项键值。
别名可用于 HostMetadataItem,但不能用于 HostnameItem 或 PerfCounter 参数。
示例 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
在处理 log、logrt 和 eventlog 主动检查时,agent 每秒向 Zabbix 服务器或 proxy 发送的新行最大数量。
所提供的值会被 log、logrt 或 eventlog 监控项键中指定的 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。