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

6 Zabbix agent 2 (Windows系统)

概述

Zabbix agent 2是新一代的Zabbix agent,同时从功能上其可以用来代替Zabbix agent。

本章节将Zabbix agent 2配置文档(zabbix_agent2.win.conf)中所有的参数信息进行罗列展示。

注意:

  • 下列表格中所展示的缺省数值反映的为进程缺省值,并非封装于配置文件中的配置参数数值;
  • Zabbix 仅且只支持以无字节序标记BOM的UTF-8编码形式的配置文档;
  • 配置文档只支持以"#"标记为开头的注释格式。

参数配置

参数名称 必要配置 配置范围 缺省数值 参数说明
Alias 该参数用于给监控项的键值设定一个别名。使用该功能的目的是用一个更简练、更简单的键值替换冗长且复杂的监控项键值。
多个 Alias 参数是允许存在的。多个别名参数使用相同的 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. 面对相同类型的监控项使用多个 low-level discovery 规则完成数据处理。
Alias=vfs.fs.discovery[*]:vfs.fs.discovery
针对各条规则,通过以上的表达式就可以设置不同的参数配合各自的发现规则以完成对键值 vfs.fs.discovery 的数据检索,例如: vfs.fs.discovery[foo]vfs.fs.discovery[bar],等。
AllowKey 该参数用于开启监控项键值的模式匹配功能,对匹配通过的数据执行操作。键值样板为通配符表达式,它支持使用 "*" 作为匹配符号,对任意数字和任意文字进行匹配。
用户可以结合使用DenyKey来定义多个键值匹配规则。该功能下的参数处理是根据其出现顺序进行逐一处理的。
自Zabbix 5.0.0版本起,Zabbix agent 2 支持该项参数。
另请参阅: 代理核实限制.
BufferSend 1-3600 5 数据发送时间间隔(单位:秒)。此参数定义了采集数据由缓存发送给Zabbix server的发送间隔。
请注意,如果数据缓存区已满,缓存区外的数据会更快的发送给Zabbix server。
BufferSize 2-65535 100 定义内存中数据缓存允许的最大数据存储量。当数据缓存已满,Zabbix 代理会将采集的数据发送给Zabbix server或proxy。
该参数的应用场景为持久性缓存设置为失效。(EnablePersistentBuffer=0)。
ControlSocket \\.\pipe\agent.sock Zabbix agent的控制套接字,使用带有 '-R' 选项的命令行发送运行时命令。
DebugLevel 0-5 3 指定调试级别:
0 - 有关Zabbix进程启动和停止的基础信息;
1 - 关键信息;
2 - 出错信息;
3 - 警示信息;
4 - 调试模式(该模式下会产生大量信息);
5 - 扩展调试模式(相较调试模式,会产生更大量的信息)。
DenyKey 该参数用于开启监控项键值的模式匹配功能,对匹配的数据不执行操作。键值样板为通配符表达式,它支持使用 "*" 作为匹配符号,对任意数字和任意文字进行匹配。
用户可以结合使用AllowKey来定义多个键值匹配规则。该功能下的参数处理是根据其出现顺序进行逐一处理的。
自Zabbix 5.0.0版本起,Zabbix agent 2 支持该项参数。
另请参阅 Restricting agent checks.
EnablePersistentBuffer 0-1 0 启用对主动监控项数据的持续性本地存储。
0 - 禁用
1 - 启用
当持久性存储功能关闭,内存缓冲功能将开启。
ForceActiveChecksOnStart 0-1 0 重启之后立即执行主动检查首次接收的配置。
0 - disabled
1 - enabled
也可以作为每个插件配置参数,例如: Plugins.Uptime.System.ForceActiveChecksOnStart=1
自Zabbix 6.0.2起支持。
HostInterface 0-255 字符 定义主机接口的可选配置参数。
主机接口参数用于主机自动注册进程。
该配置参数存在字符限制。当该参数数值超过255个字符的限制,那么Zabbix代理会发布出错信息并不会启动进程。
如果该参数未定义,那么数据的获取会通过 HostInterfaceItem 来完成.
自Zabbix 4.4.0版本起,支持该参数项配置。
HostInterfaceItem 定义获取目标主机接口的监控项,为可选配置参数。
主机接口参数用于主机自动注册进程。
在自动注册请求过程中,当指定监控项返回的数值大小超过255个字符,Zabbix代理会记录一条警示信息。
此可选配置参数仅在 HostInterface 未定义的情况下使用。
自Zabbix 4.4.0版本起,支持该参数项配置。
HostMetadata 0-255 字符 定义主机元数据的可选配置参数。主机元数据用于主机自动注册进程。
若指定的数值超过字符限制或者非UTF-8 字符串,则Zabbix代理会产生一条出错信息且注册进程不会启动。
若该参数并未定义,则Zabbix代理会从 HostMetadataItem 获取数值。
HostMetadataItem 定义获取主机元数据的监控项,为可选配置参数。在主机自动注册的过程中,每次尝试自动注册的操作都会检索主机元数据监控项的值。
在自动注册请求过程中,当指定监控项返回的数值大小超过255个字符,Zabbix代理会记录一条警告信息。
此可选配置只在 HostMetadata 未定义的情况下使用。
该参数配置支持 UserParameters 和 aliases。且在无视 EnableRemoteCommands 数值的情况下,支持 system.run[]
该监控项返回的数值必须为 UTF-8 字符串格式,其他格式的数据不被支持。
Hostname 由 HostnameItem 设置 由逗号分隔,区分大小写的主机名称清单。
在主动模式下,该参数必须配置且与Zabbix server上配置的主机名称保持一致。若该参数未配置,则数据的获取由HostnameItem完成。
允许字符种类:字母、数字、'.'、 ' '、 '_' 和 '-'。
允许最大长度:单个主机名称为128个字符,整行为2048个字符。
HostnameItem system.hostname 在主机名称未定义的情况下,该参数可用于生成主机名称。若参数 Hostname 已经定义,请忽略该参数项。
该参数不支持 UserParameters 或 aliases,且在无视 EnableRemoteCommands 数值的情况下,支持 system.run[]
该配置监控项的最大输出长度限制为512KB。
Include 用户可在配置文档目录下包含单个文档或者多个文档。
除非在编译过程中进行操作干预,默认情况下,Zabbix系统会在安装过程中在 /usr/local/etc 路径下创建文档目录。
正则匹配功能可以应用于文档筛选,通过‘’通配符可以在特定的目录中进行筛选确保包含目标相关文档。例如:C:\Program Files\Zabbix Agent\zabbix_agentd.d\*.conf
自Zabbix 6.0.0版本起,便支持与
zabbix_agent2.win.conf* 有关的文档路径。
有关限制,请参考 special notes
ListenIP 0.0.0.0 该参数定义一组Zabbix agent应侦听的由逗号分隔的IP地址。
IP地址组中第一个地址会发送给Zabbix server。若成功完成连接,该agent会获取一份主动监控清单。
ListenPort 1024-32767 10050 Agent 监听端口,该端口负责与 server 完成连接。
LogFile 是, 若日志类型设定为 file ,否则
c:\zabbix_agent2.log 若'file' 为日志类型,该参数为日志文档名称。
LogFileSize 0-1024 1 日志文件的最大容量,以MB为单位。
0 - 禁用自动日志轮换。
注意: 如果达到了日志文件大小限制并且文件轮换失败,则无论出于何种原因,现有的日志文件都会被截断并重新建。
LogType file 指定日志文档的写入路径:
system - syslog,
file - 由 LogFile 参数指定的文档,
console - 标准输出。
PersistentBufferFile Zabbix Agent2 用于保存 SQLite 数据库的文档。.
该参数必须为一个完整的文档名称。
只有当持续缓存功能处于开启状态 (EnablePersistentBuffer=1),该参数才会被使用。
PersistentBufferPeriod 1m-365d 1h 当丢失与 server 和 proxy 的连接时,监控数据所保存的时间。之前保存的数据会被主动丢失且被新数据替换。日志数据会被保留。
当持久化缓存区功能开启后(EnablePersistentBuffer=1),该参数才会被使用。
Plugins 自Zabbix 6.0.0版本起,绝大多数的插件程序都会拥有对应的配置文档 configuration files。 Zabbix agent 2的配置文档包含下列插件程序的配置参数。
Plugins.Log.MaxLinesPerSecond 1-1000 20 该参数用于设定,Zabbix agent在处理有关“日志”和“事件日志”的主动检查时,能够发送给 Zabbix server 或者 proxy 新数据行数的最大值。
该参数所提供的数值会被参数 'maxlines'所替代。
“日志”或“事件日志”监控项键值中提供了该数值。
请注意:Zabbix会处理设定参数 MaxLinesPerSecond 十倍的新数据行,以便于在日志监控项中查找所需求的字符串。
自 Zabbix 4.4.2版本起便支持该参数设置同时替换掉了参数 MaxLinesPerSecond。
Plugins.SystemRun.LogRemoteCommands 0 使执行的 Shell 命令被记录为警告信息。
0 - 禁用
1 - 启用
只有远程执行命令时,操作才会被记录。由 HostMetadataItem,HostInterfaceItem 或者 HostnameItem 参数经由本地路径运行的 system.run[] 操作,不会创建日志条目。
自Zabbix 4.4.2 版本起支持该参数并且替换了LogRemoteCommands 参数项。
PluginSocket \..plugin.sock 与外部插件连接的Unix socket 。
PluginTimeout 1-30 Global timeout 外部插件连接超时。
RefreshActiveChecks 60-3600 120 配置主动检查列表刷新频率,单位为秒。
请注意,当出现主动检查列表失败的情况下,下一次的刷新动作会在60秒后在此进行尝试。
Server 以逗号分隔的一组IP地址,可以选择使用CIDR表示法,或者使用 Zabbix servers 和 Zabbix proxies 的域名名称。
罗列主机IP地址,表示可以接受这些主机的的接入连接。
若 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 servers 和 Zabbix proxies 用于主动检查的一组以逗号分隔的IP端口 (或者域名端口)。
可以通过设置多个IP地址用于同时支持多个独立的 Zabbix servers。允许使用空格。
如若未定义端口,那么 Agent 将使用缺省端口。
在主机端口已经定义的情况下,IPv6 地址必须由中括号囊括。
若并未指定端口,那么对IPv6地址使用的中括号为可选操作。
若不定义该参数,那么主动检查功能则会处于禁用状态。
Zabbix proxy配置示例:
ServerActive=127.0.0.1:10051
多个服务器IP配置示例:
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 该参数的设定是为了完成HTTP的状态请求 (http://localhost:<port>/status),而 agent 会监听该端口。
Timeout 1-30 3 对数据的处理时间设定最大允许值。
TLSAccept 是,如果 TLS 验证或者 PSK 参数已经定义(即便是 unencrypted 的连接),除此以外,则为否 定义接受何种接入的连接。应用于被动检查。该参数可以设定多个数值,并以逗号进行分割:
unencrypted - 接受未加密的连接请求(默认配置)
psk - 接受以 TLS 和 PSK 为加密方式的连接
cert - 接受以 TLS 和 证书验证为加密方式的连接
TLSCAFile 定义包含用于匹配证书验证的最高等级CA(s)证书,保障Zabbix 组件之间的加密通信的文档路径。
TLSCertFile 定义包含用于保障 Zabbix 组件之间的加密通信的 agent 证书或证书链的文档完整路径名称。
TLSConnect 是,如果 TLS 验证或者 PSK 参数已经定义(即便是 unencrypted 的连接),除此以外,则为否 Agent 如何连接到 Zabbix server 或者 proxy。该功能应用于主动检查。通常只可以指定一个数值:
unencrypted - 接受未加密的连接请求(默认配置)
psk - 接受以 TLS 和 PSK 为加密方式的连接
cert - 接受以 TLS 和 证书验证为加密方式的连接
TLSCRLFile 定义包含用于保障 Zabbix 组件之间的加密通信的已废除证书的文档完整路径名称。
TLSKeyFile 定义包含用于保障 Zabbix 组件之间的加密通信的 agent 私钥的文档完整路径名称。
TLSPSKFile 定义包含用于保障 Zabbix 组件之间的加密通信的 agent 共享密钥的文档完整路径名称,。
TLSPSKIdentity 共享密钥标识字符,用于保障与 Zabbix server 的加密通信。
TLSServerCertIssuer 允许 server (proxy) 的证书发行。
TLSServerCertSubject 允许 server (proxy) 的证书主题。
UnsafeUserParameters 0,1 0 允许用户定义参数可以使用所有的字符。
以下所罗列的字符不允许使用:
\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
除此之外,换行符也不允许使用。
UserParameter 用于监控的用户定义参数。该参数可以定义多个用户定义参数。
格式: UserParameter=<key>,<shell command>
请注意,shell 命令不可以返回空字符串或者仅返回EOL。
若 UserParameterDir 参数已指定,那么 shell 命令拥有相对应的路径。
例如:
UserParameter=system.test,who|wc -l
UserParameter=check_cpu,./custom_script.sh
UserParameterDir 定义使用 UserParameter 命令的默认搜索路径。 若应用该参数,agent 会在命令执行前自动切换它的工作目录至该参数指定的目录。因此,UserParameter 命令可以使用一个相关联的 ./ 前缀而不是一个完整的路径。
只允许设定一个路径。
例如: UserParameterDir=/opt/myscripts