2022 Zabbix中国峰会
2022 Zabbix中国峰会

6 Zabbix agent 2 (Windows系统)

概览

Zabbix agent 2 是新一代的 Zabbix agent,可以用作 Zabbix agent 的替代品。

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

请注意:

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

参数

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

示例:

1. 检索用户 'zabbix' 的 ID。
Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1]
现在可以使用简写键值 zabbix.userid 来检索数据。

2. 使用默认和自定义参数获取 CPU 利用率。
Alias=cpu.util:system.cpu.util
Alias=cpu.util[*]:system.cpu.util[*]
这允许使用 cpu.util 键值以默认参数获取 CPU 利用率百分比,以及使用 cpu.util[all, idle, 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 单位为秒的时间间隔,决定从缓冲区向 Zabbix server发送值的频率。
请注意,如果缓冲区已满,则数据将更早发送。
BufferSize 2-65535 100 内存缓冲区中的最大值数量。如果缓冲区已满,agent 将把所有收集到的数据发送给 Zabbix server 或 proxy。
如果禁用了持久缓冲区(EnablePersistentBuffer=0),则应仅使用此参数。
ControlSocket \..sock 控制套接字,用于使用 '-R' 选项发送运行时命令。
DebugLevel 0-5 3 指定调试级别:
0 - 关于启动和停止 Zabbix 进程的基本信息
1 - 严重信息
2 - 错误信息
3 - 警告
4 - 调试(产生大量信息)
5 - 扩展调试(产生更多信息)
DenyKey 拒绝执行匹配模式的监控项键值。键值模式是支持 "*" 字符的通配符表达式,用于匹配任意数量的任意字符。
可以定义多个键值匹配规则,与 AllowKey 结合使用。参数将根据它们出现的顺序逐个处理。
此参数自 Zabbix 5.0.0 起支持。
另请参阅:限制 agent 检查
EnablePersistentBuffer 0-1 0 启用主动监控项本地持久存储。
0 - 禁用
1 - 启用
如果禁用了持久存储,则将使用内存缓冲区。
ForceActiveChecksOnStart 0-1 0 在重启后立即对接收到的首个配置执行主动检查。
0 - 禁用
1 - 启用
也可作为每个插件配置参数使用,例如:Plugins.Uptime.System.ForceActiveChecksOnStart=1
自 Zabbix 6.0.2 起支持。
HostInterface 0-255字符 定义主机接口的可选参数。
主机接口在主机自动注册过程中使用。
如果超过255字符限制,agent 将发出错误并不启动。
如果未定义,则从 HostInterfaceItem 获取值。
自 Zabbix 4.4.0 起支持。
HostInterfaceItem 定义用于获取主机接口的监控项参数。
主机接口在主机自动注册过程中使用。
在自动注册请求期间,如果指定监控项返回的值超过255字符限制,agent 将记录一条警告消息。
system.run[]监控项无论 AllowKey/DenyKey 值如何都受支持。
此选项仅在 HostInterface 未定义时使用。
自 Zabbix 4.4.0 起支持。
HostMetadata 0-255字符 定义主机元数据的可选参数。主机元数据在主机自动注册过程中使用。
如果指定的值超过限制或不是 UTF-8 字符串,agent 将发出错误并不启动。
如果未定义,则从 HostMetadataItem 获取值。
HostMetadataItem 定义用于获取主机元数据的监控项参数。每次自动注册尝试时都会检索主机元数据监控项值。
在自动注册请求期间,如果指定监控项返回的值超过255字符限制,agent 将记录一条警告消息。
此选项仅在 HostMetadata 未定义时使用。
支持 UserParameters 和别名。无论 EnableRemoteCommands 值如何,都支持 system.run[]
监控项返回的值必须是 UTF-8 字符串,否则将被忽略。
Hostname 由 HostnameItem 设置 以英文逗号分隔的唯一、区分大小写的主机名列表。
采用主动检查时必需指定,并必须与服务器上配置的主机名匹配。如果未定义,则从 HostnameItem 获取值。
允许的字符:字母数字、'.'、' '、'_' 和 '-'。
最大长度:每个主机名 128 个字符,整行 2048 个字符。
HostnameItem system.hostname 如果未定义 Hostname,则用于生成 Hostname 的监控项。如果已定义 Hostname,则被忽略。
不支持 UserParameters 或别名,但无论 EnableRemoteCommands 值如何,都支持 system.run[]
Include 您可以在配置文件中包含单个文件或目录中的所有文件(默认位于 C:\Program Files\Zabbix Agent 2,如果使用 Windows MSI 安装包安装 Zabbix agent;如果以 zip 归档安装 Zabbix agent,则位于安装期间指定的文件夹)。所有包含的文件必须具有正确的语法,否则 agent 将不启动。
路径可以相对于 zabbix_agent2.conf 文件位置(例如,Include=.\zabbix_agent2.d\plugins.d\*.conf)。
要仅包括指定目录中的相关文件,支持使用星号通配符字符进行模式匹配。例如:C:\Program Files\Zabbix Agent2\zabbix_agent2.d\*.conf
有关限制的特别说明
ListenIP 0.0.0.0 agent 应监听的以逗号分隔的 IP 地址列表。
如果连接到 Zabbix server,第一个 IP 地址将发送到 Zabbix server,以检索主动检查列表。
ListenPort 1024-32767 10050 Agent 将在此端口上监听来自服务器的连接。
LogFile 是,如果 LogType 设置为 file,否则
c:_agent2.log 如果 LogType 是 'file',日志文件名称。
LogFileSize 0-1024 1 日志文件的最大大小(MB)。
0 - 禁用自动日志轮换。
注意:如果达到日志文件大小限制,并且出于任何原因文件轮换失败,现有的日志文件将被截断并重新开始。
LogType file 指定日志消息写入的位置:
file - 由 LogFile 参数指定的文件,
console - 标准输出。
PersistentBufferFile Zabbix Agent2 应保留 SQLite 数据库的文件。
必须是完整文件名。
如果启用了持久缓冲区(EnablePersistentBuffer=1),则仅使用此参数。
PersistentBufferPeriod 1m-365d 1h 在无法连接到 server 或 proxy 时,数据应存储的时间周期。旧数据将丢失。日志数据将被保留。
如果启用了持久缓冲区(EnablePersistentBuffer=1),则仅使用此参数。
Plugins 自 Zabbix 6.0.0 起,大多数插件都有自己的配置文件。agent配置文件包含下面列出的插件参数。
Plugins.Log.MaxLinesPerSecond 1-1000 20 agent 在处理 'log' 和 'eventlog' 主动检查时,每秒钟发送到 Zabbix server 或 proxy 的新行的最大数量。
提供的值将被 'log' 或 'eventlog' 监控项键中提供的 'maxlines' 参数覆盖。
注意:Zabbix 将处理 MaxLinesPerSecond 设置的 10 倍的新行数,以在日志监控项中查找所需的字符串。
此参数自 4.4.2 起支持,并替代了 MaxLinesPerSecond。
Plugins.SystemRun.LogRemoteCommands 0 启用将执行的 shell 命令记录为警告的日志。
0 - 禁用
1 - 启用
如果远程执行,命令将被记录。如果由 HostMetadataItem、HostInterfaceItem 或 HostnameItem 参数本地启动 system.run[],则不会创建日志条目。
此参数自 4.4.2 起支持,并替代了 LogRemoteCommands。
PluginSocket \..plugin.sock 用于可加载插件通信的 unix 套接字路径。
PluginTimeout 1-30 全局超时 可加载插件连接的超时时间。
RefreshActiveChecks 60-3600 120 主动检查列表刷新的频率,以秒为单位。
注意,在刷新主动检查失败后,下一次刷新将在 60 秒后尝试。
Server 逗号分隔的 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 地址。
示例: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 名称,可选地由冒号分隔的端口。
集群配置是一个或多个由分号分隔的服务器地址。
可以指定多个 Zabbix server/集群和 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 等)时建立连接。
StatusPort 1024-32767 如果设置,agent 将在此端口上监听 HTTP 状态请求(http://localhost:<port>/status)。
Timeout 1-30 3 处理时间不超过 Timeout 秒。
TLSAccept 是,如果定义了 TLS 证书或 PSK 参数(即使是 未加密 连接),否则否 接受的传入连接类型。用于被动检查。可以指定多个值,用逗号分隔:
unencrypted - 接受未加密的连接(默认)
psk - 接受使用 TLS 和预共享密钥 (PSK) 的连接
cert - 接受使用 TLS 和证书的连接
TLSCAFile 包含顶层 CA 证书的文件的完整路径名,用于对等证书验证,用于 Zabbix 组件之间的加密通信。
TLSCertFile 包含 agent 证书或证书链的文件的完整路径名,用于与 Zabbix 组件的加密通信。
TLSConnect 是,如果定义了 TLS 证书或 PSK 参数(即使是 未加密 连接),否则否 agent 应如何连接到 Zabbix server或 proxy。用于主动检查。只能指定一个值:
unencrypted - 不使用加密连接(默认)
psk - 使用 TLS 和预共享密钥 (PSK) 连接
cert - 使用 TLS 和证书连接
TLSCRLFile 包含吊销证书的文件的完整路径名。此参数用于与 Zabbix 组件的加密通信。
TLSKeyFile 包含 agent 私钥的文件的完整路径名,用于与 Zabbix 组件的加密通信。
TLSPSKFile 包含 agent 预共享密钥的文件的完整路径名,用于与 Zabbix 组件的加密通信。
TLSPSKIdentity 预共享密钥身份字符串,用于与 Zabbix server的加密通信。
TLSServerCertIssuer 允许的服务器(proxy)证书颁发者。
TLSServerCertSubject 允许的服务器(proxy)证书主题。
UnsafeUserParameters 0,1 0 允许在用户定义参数的参数中传递所有字符。
不允许以下字符:
\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
此外,不允许新行字符。
UserParameter 要监视的用户定义参数。可以有多个用户定义参数。
格式:UserParameter=<key>,<shell command>
注意,shell 命令不得仅返回空字符串或 EOL。
如果指定了 UserParameterDir 参数,shell 命令可能具有相对路径。
示例:
UserParameter=system.test,who
UserParameterDir UserParameter 命令的默认搜索路径。如果使用,agent 在执行命令之前将工作目录更改为此处指定的目录。因此,UserParameter 命令可以具有相对的 ./ 前缀而不是完整路径。
只允许一个条目。
示例:UserParameterDir=/opt/myscripts