5 Zabbix agent (Windows)

概述

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

注意:

  • 默认值反映了守护进程的默认设置,而不是配置文件中的值;
  • Zabbix 仅支持 UTF-8 编码的配置文件,不支持 BOM
  • 仅支持以 “#” 开头的注释在行的开始处。

参数

参数 必填 范围 默认值 描述
Alias 为监控项键值设置别名。可以使用更简短和简单的别名替代长且复杂的监控项键值。
可以存在多个 Alias 参数。不允许有相同的 Alias 键的多个参数。
不同的 Alias 键可以引用相同的监控项键值。
别名可以在 HostMetadataItem 中使用,但不能在 HostnameItemPerfCounter 参数中使用。

示例:

1. 从服务器检索分页文件使用率的百分比。
Alias=pg_usage:perf_counter[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 起支持。
另请参阅:限制 agent 检查
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 起支持。
另请参阅:限制 agent 检查
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 将记录一条警告消息。
无论 AllowKey/DenyKey 的值如何,都支持 system.run[] 项目。
如果未定义 HostInterface,则仅使用此选项。
自 Zabbix 4.4.0 起支持。
HostMetadata 0-255 字符 主动 agent 的自动注册过程中使用的主机元数据的可选参数。
如果未定义,则从 HostMetadataItem 获取值。
如果指定的值超出限制或不是 UTF-8 字符串,agent 将发出错误并不启动。
HostMetadataItem 定义一个用于获取主机元数据的 Zabbix agent 监控项的可选参数。此选项仅在未定义 HostMetadata 时使用。
支持 UserParameters、性能计数器和别名。无论 EnableRemoteCommands 的值如何,都支持 system.run[]
每次自动注册尝试时都会检索 HostMetadataItem 的值,并且仅在主动 agent 的自动注册过程中使用。
在自动注册请求期间,如果指定的项目返回的值超过 255 个字符的限制,agent 将记录一条警告消息。
项目返回的值必须是 UTF-8 字符串,否则将被忽略。
Hostname Set by HostnameItem 主机名列表,由逗号分隔,唯一且大小写敏感。
对于主动检查是必需的,并且必须与服务器上配置的主机名匹配。如果未定义,则从HostnameItem获取值。
允许的字符:字母数字、'.'、' '、'_' 和 '-'。
最大长度:每个主机名128个字符,整行为2048个字符。
HostnameItem system.hostname 定义一个 Zabbix agent 监控项,用于获取主机名的可选参数。当 Hostname 未定义时,此选项才会使用。
不支持 UserParameters、性能计数器或别名,但无论 EnableRemoteCommands 的值如何,都支持 system.run[]
另请参阅 更详细的描述
Include 您可以在配置文件中包含单个文件或目录中的所有文件(默认位于 C:\Program Files\Zabbix Agent,如果使用 Windows MSI 安装包安装 Zabbix agent;位于安装时指定的文件夹中,如果 Zabbix agent 作为 zip 归档安装)。所有包含的文件必须有正确的语法,否则 agent 将无法启动。
要仅在指定目录中包含相关文件,支持使用星号通配符进行模式匹配。例如:C:\Program Files\Zabbix Agent\zabbix_agentd.d\*.conf
另请参阅 特殊说明 关于限制。
ListenBacklog 0 - INT_MAX SOMAXCONN TCP队列中挂起连接的最大数量。
默认值是一个硬编码常量,这取决于系统。
支持的最大值也取决于系统,过高的值可能会被静默截断为“实现指定的最大值”。
ListenIP 0.0.0.0 agent 应该监听的由逗号分隔的IP地址列表。
ListenPort 1024-32767 10050 agent 将在该端口上监听来自服务器的连接。
LogFile 是,如果LogType设置为file,否则
C:_agentd.log agent 日志文件的名称。如果LogType设置为文件类型,则必须指定;否则,可以不指定。
LogFileSize 0-1024 1 日志文件的最大大小(MB)。
0 - 禁用自动日志轮转。
注意:如果日志文件大小达到限制并且文件轮转失败,无论出于何种原因,现有的日志文件将被截断并重新开始。
LogType file 日志输出类型:
file - 将日志写入由 LogFile 参数指定的文件,
system - 将日志写入 Windows 事件日志,
console - 将日志写入标准输出。
此参数自 Zabbix 3.0.0 起支持。
LogRemoteCommands 0 启用将执行的shell命令记录为警告。
0 - 禁用
1 - 启用
MaxLinesPerSecond 1-1000 20 agent 每秒向 Zabbix server 或 proxy 发送的新行的最大数量,用于处理 'log', 'logrt' 和 'eventlog' 主动检查。
如果监控项键值中提供了 'maxlines' 参数,则提供的值将被覆盖。
注意:Zabbix 将处理比 MaxLinesPerSecond 设置多10倍的新行,以在日志监控项中查找所需字符串。
PerfCounter 定义一个新参数 <parameter_name>,该参数是系统性能计数器 <perf_counter_path> 在指定时间段 <period>(秒)内的平均值。
语法:<parameter_name>,"<perf_counter_path>",<period>
例如,如果您希望获取上一分钟内处理器中断每秒的平均数量,您可以按以下方式定义一个新参数 "interrupts":
PerfCounter = interrupts,"\Processor(0)\Interrupts/sec",60
请注意性能计数器路径周围的双引号。
参数名称(interrupts)将用作创建监控项时的监控项键。
将每秒采集样本以计算平均值。
您可以运行 "typeperf -qx" 来获取 Windows 中所有可用的性能计数器列表。
PerfCounterEn 定义一个新参数 <parameter_name>,该参数是系统性能计数器 <perf_counter_path> 在指定时间段 <period>(秒)内的平均值。
语法:<parameter_name>,"<perf_counter_path>",<period>
与 PerfCounter 相比,性能计数器路径必须使用英文。
仅支持 Windows Server 2008/Vista 及以上版本。
例如,如果您希望获取上一分钟内处理器中断每秒的平均数量,您可以按以下方式定义一个新参数 "interrupts":
PerfCounterEn = interrupts,"\Processor(0)\Interrupts/sec",60
请注意性能计数器路径周围的双引号。
参数名称(interrupts)将用作创建监控项时的监控项键。
将每秒采集样本以计算平均值。
您可以通过查看以下注册表项来获取英文字符串列表: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 Zabbix server的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兼容的IPv6地址"(0000::/96前缀)是支持的,但是已经被RFC4291弃用。
示例:Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
允许使用空格。
ServerActive (*) Zabbix server/proxy地址或集群配置,用于获取主动检查。
Server/proxy地址是IP地址或DNS名称,端口号可选,由冒号分隔。
集群配置是一个或多个server地址,由分号分隔。
可以指定多个Zabbix servers/clusters和Zabbix proxies,由逗号分隔。
每个Zabbix server/cluster不应指定多个Zabbix proxy。
如果指定了Zabbix proxy,则不应为该proxy指定Zabbix server/cluster。
可以提供多个逗号分隔的地址,以并行使用几个独立的Zabbix servers。空格是允许的。
如果未指定端口,则使用默认端口。
如果为该主机指定了端口,则必须将IPv6地址用方括号括起来。
如果未指定端口,则IPv6地址的方括号是可选的。
如果未指定此参数,则禁用主动检查。
Zabbix代理示例:
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 0-63 (*) 3 处理被动检查的预先派生的zabbix_agentd实例的数量。
如果设置为0,则禁用被动检查,agent将不会监听任何TCP端口。
Timeout 1-30 3 处理时间不超过Timeout秒。
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 包含agent私钥的文件的完整路径名,该私钥用于与Zabbix组件的加密通信。
此参数自Zabbix 3.0.0起支持。
TLSPSKFile 包含agent预共享密钥的文件的完整路径名,该密钥用于与Zabbix组件的加密通信。
此参数自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参数,agent命令可以有相对路径。
示例:
UserParameter=system.test,who|wc -l
UserParameter=check_cpu,./custom_script.sh
UserParameterDir UserParameter命令的默认搜索路径。如果使用,agent在执行命令前将工作目录更改为此处指定的目录。这样,UserParameter命令可以有相对的./前缀而不是完整路径。
只允许一个条目。
示例:UserParameterDir=/opt/myscripts

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

参阅

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