这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

5 Zabbix agent (Windows)

概述

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

  • 默认值反映的是进程默认值,而不是出厂配置文件中的值;
  • Zabbix仅支持无 BOM 的UTF-8编码配置文件;
  • 支持注释须以 "#" 为行首。

参数

参数名 必选项 范围 默认值 描述
Alias 设置监控项键值的别名。可以用一个更短更简单代替长而复杂的监控项键值。
可能存在多个 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定义多个键值的匹配规则。根据其出现顺序对参数进行逐一处理。
从Zabbix 5.0.0开始支持此参数。
参阅: Restricting agent checks.
BufferSend 1-3600 5 不保存缓存中超过N秒的数据。
BufferSize 2-65535 100 内存缓冲区中的最大容量。 如果缓冲区已满,则agent会将所有收集的数据发送到Zabbix server或proxy。
DebugLevel 0-5 3 指定调试级别:
0 - 有关启动和停止Zabbix进程的基本信息
1 - 关键信息
2 - 错误信息
3 - 警告
4 - 用于调试(产生大量信息)
5 - 扩展调试(产生更多信息)
DenyKey 拒绝执行与模式匹配的那些监控项键值。键值匹配模式是支持通配字符"*"用于匹配任意数量的任何字符。
可以结合AllowKey定义多个键值的匹配规则。根据其出现顺序对参数进行逐一处理。
从Zabbix 5.0.0开始支持此参数。
参考:Restricting agent checks.
EnableRemoteCommands 0 Zabbix server允许的远程命令。此参数已被 弃用,使用 AllowKey=system.run[*] 或 DenyKey=system.run[*] 替代
根据数值指定内部替换 AllowKey/DenyKey 参数: 0 - DenyKey=system.run[*]
1 - AllowKey=system.run[*].
HostInterface 0-255 字符 可选参数用于指定主机接口。
主机接口用于主机自动注册过程。
如果值超过255个字符的限制,agent将发出错误并且不会启动。
如果未定义,将从HostInterfaceItem获取值。
自Zabbix 4.4.0起支持。
HostInterfaceItem 可选参数用于定义用于获取主机接口的监控项。
主机接口用于主机自动注册过程。
在自动注册请求期间,如果指定监控项返回的值超过255个字符的限制,则agent将记录一条警告消息。
仅当未定义HostInterface时才使用此选项。
自Zabbix 4.4.0起支持。
HostMetadata no 0-255 字符 可选参数用于指定主机元数据。主机元数据用于(主动agent)主机自动注册过程。
如果未定义,将从HostMetadataItem获取该值。
如果指定的值超出限制或非UTF-8字符串,则agent将发出错误,并且不会启动。
HostMetadataItem 可选参数用于定义 Zabbix agent 获取主机元数据的监控项。仅当未定义HostMetadata时才使用此选项。
支持 UserParameters, performance counters 及 aliases. 无论 EnableRemoteCommands 值是多少,均支持 system.run[]
每次在自动注册(主动模式)都会尝试检索HostMetadataItem值。
在自动注册请求期间,如果指定监控项返回的值超过 255 个字符的限制,agent将记录一条警告日志。
该监控项返回的值必须是UTF-8字符串,否则将被忽略。
Hostname HostnameItem集合 唯一的、区分大小写用逗号分割的主机名列表。
主动检查所必需,并且必须与服务器上配置的主机名匹配。如未指定则从HostnameItem获取。
允许的字符:字母, '.', ' ', '_' and '-'.
最大长度: 主机名128字符, 整行2048字符。
HostnameItem system.hostname 可选参数用于定义获取主机名的 Zabbix agent 监控项,仅当 Hostname未定义时生效。
不支持 UserParameters, performance counters 或 aliases, 但支持 system.run[] 以及 EnableRemoteCommands 值.
最大输出限制为 512KB.
参见 more detailed description.
Include 可以在配置文件的目录中包括单个文件或所有文件。
要仅在指定目录中包含相关文件,模式匹配支持使用星号通配符。示例: /absolute/path/to/config/files/*.conf.
参见 特别说明 中限制部分。
ListenBacklog 0 - INT_MAX SOMAXCONN TCP队列中待处理的连接最大数量。
默认值是硬编码常量,取决于系统。
支持的最大值取决于系统,过高的值时可能会被调整为能够‘支持的最大值’。
ListenIP 0.0.0.0 agent 监听的点分十进制表示的IP地址。
ListenPort 1024-32767 10050 Agent 将监听此端口上来自server的连接。
LogFile 是, 如 LogType 设置为 file, 其他
C:\zabbix_agentd.log agent的日志文件名
LogFileSize 0-1024 1 日志文件的最大容量,以MB为单位。
0 - 禁用自动日志轮换。
注意: 如果达到了日志文件大小限制并且文件轮换失败,则无论出于何种原因,现有的日志文件都会被截断并重新建。
LogType file 指定日志消息写入的位置:
system - syslog,
file - LogFile参数指定的文件,
console - 标准输出
此参数从Zabbix 3.0.0支持
LogRemoteCommands 0 记录执行远程命令的告警日志。
0 - 禁止
1 - 启用
MaxLinesPerSecond 1-1000 20 agent每秒发送给Zabbix server或proxy的最大新行数。
或proxy 处理 'log', 'logrt' and 'eventlog' 主动检查的行数
提供在 'log', 'logrt' or 'eventlog' 监控项键值将覆盖 'maxlines' 参数值。
注意: Zabbix处理的新行比在 MaxLinesPerSecond 中设置的新行多10倍,以便在日志项中查找所需的字符串。
PerfCounter 定义新参数<parameter_name> 用于指定时间内<period> (一秒内)系统性能计数器 <perf_counter_path> 的平均值。
语法: <parameter_name>,"<perf_counter_path>",<period>
示例, 如想接收最近一分钟内平均处理器中断数,可定义参数 "interrupts"如下:
PerfCounter = interrupts,"\Processor(0)\Interrupts/sec",60
请注意性能计数器路径周围使用双引号。
在创建监控项时,参数名(中断) 将作为监控项键。
每秒采样一次用于计算平均值。
可通过 "typeperf -qx" 获取Windows中可用的性能计数器列表。
PerfCounterEn 定义新参数<parameter_name> 用于指定时间内<period> (一秒内)系统性能计数器 <perf_counter_path> 的平均值。
语法: <parameter_name>,"<perf_counter_path>",<period>
与PerfCounter相比, perfcounter path 必须为英文。
仅在Windows Server 2008/Vista 及之后版本支持
例如, 如想接收最近一分钟内每秒的平均处理器中断数,可定义参数“interrupts”,如下所示:
PerfCounterEn = interrupts,"\Processor(0)\Interrupts/sec",60
请注意性能计数器路径周围使用双引号。
在创建监控项时,参数名(中断) 将作为监控项键。
每秒采样一次用于计算平均值。
可以通过查看以下注册表项找到英文字符串列表: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009.
此参数仅支持Zabbix 4.0.13 至 4.2.7。
RefreshActiveChecks 60-3600 120 刷新主动检查列表的频率(以秒为单位)。
请注意,刷新主动检查失败后,将在60秒后尝试进行下一次刷新。
Server 是, 如 StartAgents没有设置为0 点分十进制的IP地址列表,可以选择使用CIDR表示法,或者Zabbix servers和 Zabbix proxies的DNS名称。
仅接受从此处列出的主机传入的连接。
如果启用了IPv6支持,则将 '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.domain
允许使用空格。
ServerActive (*) 主动检查Zabbix servers和 Zabbix proxies以逗号分隔IP:端口对(或DNS名称:端口对)列表。
集群间须用分号区分
可以提供多个地址来并行使用多个独立的Zabbix servers,允许有空格。
如果未指定端口,则使用默认端口。
如果指定了该主机的端口,则IPv6地址必须用方括号括起来。
如果未指定端口,则IPv6地址的方括号是可选的。
如果未指定此参数,则禁用主动检查。
多server示例:
ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
高可用示例:
ServerActive=zabbix.cluster.node1;zabbix.cluster.node2:20051;zabbix.cluster.node3
以两个集群和一个server为例:
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, etc.)
StartAgents 0-63 (*) 3 用于执行被动检查的 zabbix_agentd 实例数
如设为 0, 禁止被动检查且agent不监听任何TCP端口。
Timeout 1-30 3 处理消耗的最长秒数。
TLSAccept 是, 如果定义了TLS证书或PSK参数(甚至用于 未加密 的连接), 否则为否 指定接受哪些传入连接。用于被动检查。可以指定多个,以逗号分隔:
unencrypted - 接受不加密的连接(默认)
psk - 接受带TLS和预共享密钥(PSK)
cert - 接受带TLS和证书的连接
此参数自 Zabbix 3.0.0.支持
TLSCAFile 包含用于对等证书验证的顶级CA证书的文件的完整路径名,用于Zabbix组件之间的加密通信。
此参数自 Zabbix 3.0.0.支持
TLSCertFile 包含agent证书或证书链的文件的完整路径名,用于与Zabbix组件进行加密通信。
此参数自 Zabbix 3.0.0.支持
TLSConnect 是,如果定义了TLS证书或PSK参数(甚至用于 未加密 的连接), 否则为否 agent应如何连接到Zabbix server 或 proxy。用于主动检查。只能指定一个值:
unencrypted - 接受不加密的连接(默认)
psk - 接受带TLS和预共享密钥(PSK)
cert - 接受带TLS和证书的连接
此参数自 Zabbix 3.0.0.支持
TLSCRLFile 包含已撤销证书的文件的完整路径名。此参数用于与Zabbix组件的加密通信。
此参数自 Zabbix 3.0.0.支持
TLSKeyFile 包含用于与Zabbix组件进行加密通信的agent专用密钥的文件的完整路径名。
此参数自 Zabbix 3.0.0.支持
TLSPSKFile 含用于与Zabbix组件进行加密通信的agent预共享密钥的文件的完整路径名。
此参数自 Zabbix 3.0.0.支持
TLSPSKIdentity 预共享密钥标识字符串,用于与Zabbix server进行加密通信。
此参数自 Zabbix 3.0.0.支持
TLSServerCertIssuer 允许的 server (proxy) 证书颁布者.
此参数自 Zabbix 3.0.0.支持
TLSServerCertSubject 允许的 server (proxy) 证书主体
此参数自 Zabbix 3.0.0.支持
UnsafeUserParameters 0-1 0 允许将所有字符都通过参数传递给用户定义的参数。
0 - 不允许
1 - 允许
不允许使用以下字符:
\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
另外,不允许使用换行符。
UserParameter 用户自定义的监控参数。可以有几个用户定义的参数。
格式: UserParameter=<key>,<shell command>
请注意,shell命令不得返回空字符串或仅返回EOL。
如UserParameterDir参数设定,可使用相对路径
Examples:
UserParameter=system.test,who|wc -l
UserParameter=check_cpu,./custom_script.sh
UserParameterDir 默认搜索用户自定义命令的文件路径。如使用,agent将在执行命令前改变工作目录到指定目录,此外, 可用./前缀的相对位置代替绝对路径。
仅允许一个目录。
示例: UserParameterDir=/opt/myscripts

(*) ServerActive中列出的活跃服务器数与StartAgents中被动检查的预分配实例数之和必须小于 64.

参阅

  1. Zabbix agent 主动和被动检查从2.0.0版本后配置对比详解