4 Zabbix agent 2 (UNIX)

概述

Zabbix agent 2 是新一代的 Zabbix agent,可用于替代 Zabbix agent。

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

请注意:

  • 默认值反映进程默认值,而非随附配置文件中的值;
  • Zabbix 仅支持 UTF-8 编码的配置文件,不含 BOM
  • 以 "#" 开头的注释仅支持在行首使用。

参数

参数 必选 范围 默认值 描述
Alias no 为监控项键设置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键get默认参数的CPU利用率百分比, 也可以使用cpu.util[all, idle, avg15]来getCPU利用率的特定数据.

3. 运行多个处理相同发现监控项的low-level discovery规则.
alias=vfs.fs.discovery[*]:vfs.fs.discovery
现在可以为每个规则设置不同的参数来配置多个使用vfs.fs.discovery的发现规则, 例如vfs.fs.discovery[foo], vfs.fs.discovery[bar]等.
AllowKey no 允许执行与模式匹配的监控项键。键模式是支持使用"*"字符匹配任意数量任意字符的通配符表达式。
可以结合DenyKey定义多个键匹配规则。参数按其出现顺序逐一处理。
此参数自Zabbix 5.0.0版本起支持。
另请参阅:Restricting agent checks
BufferSend no 1-3600 5 该时间间隔(以秒为单位)决定了数值从缓冲区发送到Zabbix server的频率。
请注意,如果缓冲区已满,数据将会更快发送。
BufferSize no 2-65535 100 memory缓冲区中值的最大数量。当缓冲区满时,agent会将所有收集的数据发送至Zabbix server或proxy。
该参数仅在禁用持久缓冲区时使用(EnablePersistentBuffer=0)。
ControlSocket no /tmp/agent.sock 控制套接字,用于通过'-R'选项发送运行时命令。
DebugLevel no 0-5 3 指定调试级别:
0 - 关于Zabbix进程启动和停止的基本信息
1 - 关键信息
2 - 错误信息
3 - 警告信息
4 - 调试信息(产生大量信息)
5 - 扩展调试信息(产生更多信息)
DenyKey no 拒绝执行与模式匹配的监控项键。键模式是支持使用"*"字符匹配任意数量任意字符的通配符表达式。
可以结合AllowKey定义多个键匹配规则。参数按其出现顺序逐一处理。
该参数自Zabbix 5.0.0版本起支持。
另请参阅:Restricting agent checks
EnablePersistentBuffer no 0-1 0 为活跃监控项启用本地持久存储使用.
0 - 禁用
1 - 启用
若禁用持久存储,将使用memory缓冲区.
ForceActiveChecksOnStart no 0-1 0 重启后立即对首次接收的配置执行主动检查.
0 - 禁用
1 - 启用
也可作为每个插件配置参数使用,例如: Plugins.Uptime.System.ForceActiveChecksOnStart=1
自Zabbix 6.0.2版本起支持.
HostInterface no 0-255 characters 定义主机接口的可选参数。
主机接口用于主机自动注册过程。
如果值超过255字符限制,agent将问题错误且不会启动。
若未定义,将从HostInterfaceItem获取该值。
自Zabbix 4.4.0版本起支持。
HostInterfaceItem no 用于定义获取主机接口的监控项的可选参数。
在主机自动注册过程中将使用主机接口。
当自动注册请求时,若指定监控项返回的值超过255字符限制,agent将记录警告信息。
无论AllowKey/DenyKey值如何设置,均支持system.run[] 监控项。
此选项仅在未定义HostInterface时生效。
自Zabbix 4.4.0版本起支持。
HostMetadata no 0-255 characters 可选参数,用于定义主机元数据。主机元数据在主机自动注册过程中使用。
如果指定值超过限制或包含非UTF-8string,agent将问题错误且不会启动。
若未定义,该值将从HostMetadataItem中获取。
HostMetadataItem no 用于定义获取主机元数据的监控项的可选参数。主机元数据监控项值会在每次主机自动注册尝试时获取。
在自动注册请求期间,如果指定监控项返回的值超过255字符限制,agent将记录警告消息。
此选项仅在未定义HostMetadata时使用。
支持UserParameters和别名。无论AllowKey/DenyKey值如何,均支持system.run[]
监控项返回的值必须是UTF-8 string,否则将被忽略。
Hostname no 按主机名项设置 以逗号分隔的唯一、区分大小写的主机名列表。
主动检查必需,且必须与服务器上配置的主机名匹配。如果未定义,则从HostnameItem获取值。
允许字符:字母数字、'.'、' '、'_'和'-'。
最大长度:每个主机名128个字符,整行2048个字符。
HostnameItem no system.hostname 监控项 用于在未定义主机名时生成主机名。若主机名已定义则忽略此参数。
不支持UserParameters或别名,但支持system.run[] 且不受AllowKey/DenyKey值限制。
Include no 您可以在配置file中包含单个文件或目录中的所有文件。
安装期间,Zabbix将create包含目录到/usr/local/etc中,除非在编译时进行了修改。
为了仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。例如:/absolute/path/to/config/files/*.conf
从Zabbix 6.0.0开始,路径可以相对于zabbix_agent2.conf file的位置。
有关限制,请参阅special notes
ListenIP no 0.0.0.0 逗号分隔的IP地址列表,agent应监听的地址。
首个IP地址会被发送至Zabbix server,当连接到该地址时用于获取主动检查列表。
ListenPort no 1024-32767 10050 Agent 将在此端口监听来自服务器的连接。
LogFile yes, if LogType is set to file, otherwise
no
/tmp/zabbix_agent2.log 当日志类型为'file'时,指定file日志文件名
LogFileSize no 0-1024 1 日志file的最大大小(MB)。
0 - 禁用自动日志轮转。
注意:如果日志file大小达到限制且file轮转失败(无论何种原因),现有日志file将被截断并重新开始记录。
LogType no file 指定日志消息写入位置:
system - 系统日志(syslog),
file - 由LogFile参数指定的file,
console - 标准输出.
PersistentBufferFile no file函数,Zabbix Agent2应保留SQLite数据库的位置。
必须为完整文件名。
仅当启用持久缓冲区时使用此参数(EnablePersistentBuffer=1)。
PersistentBufferPeriod no 1m-365d 1h 当与server 或 proxy断开连接时,数据应存储的时间段。更早的数据将会丢失。日志数据将被保留。
该参数仅在启用持久化缓冲区时生效(EnablePersistentBuffer=1)。
PidFile no /tmp/zabbix_agent2.pid PID文件名称 file.
Plugin no 自Zabbix 6.0.0起,大多数插件都拥有独立的configuration files。agent配置file包含以下列出的插件参数。
Plugins.Log.MaxLinesPerSecond no 1-1000 20 当处理'日志'及'logrt'或'log.count'主动检查时,agent每秒向Zabbix server或proxy发送的新日志行数上限。
该值会被'日志'、'logrt'或'log
.count'监控项键值监控项中提供的'maxlines'参数覆盖。
注意: 为在日志监控项中查找所需的string,Zabbix实际处理的新行数将是MaxLinesPerSecond设定值的10倍。
该参数自4.4.2版本起支持,用于替代MaxLinesPerSecond。
Plugins.SystemRun.LogRemoteCommands no 0 启用将执行的shell命令记录为警告的功能。
0 - 禁用
1 - 启用
仅当远程执行时才会记录命令。如果system.run[]是通过HostMetadataItem、HostInterfaceItem或HostnameItem参数在本地启动的,则不会创建日志条目。
该参数自4.4.2版本起支持,并取代了LogRemoteCommands。
PluginSocket no /tmp/agent.plugin.sock 可加载插件通信的Unix套接字路径。
PluginTimeout no 1-30 全局超时 可加载插件连接的超时时间。
RefreshActiveChecks no 60-3600 120 主动检查列表的刷新频率,单位为秒。
请注意,若主动检查刷新失败,下一次刷新尝试将在60秒后进行。
Server yes 以逗号分隔的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 no Zabbix server/proxy 地址或集群配置,用于get主动检查的来源。
server/proxy 地址可以是IP地址或DNS名称,可选端口号用冒号分隔。
集群配置是一个或多个用分号分隔的服务器地址。
可以指定多个Zabbix servers/集群和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 no 源IP地址用于:
- 与Zabbix server或Zabbix proxy建立的出站连接;
- 执行某些监控项时建立的连接(web.page.get, net.tcp.port等)
StatusPort no 1024-32767 如果设置,agent 将在此端口监听HTTP状态请求(http://localhost:<端口>/status)。
Timeout no 1-30 3 处理时间不超过Timeout秒。
TLSAccept yes, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no 接受哪些传入连接。用于被动检查。可以指定多个值,用逗号分隔:
unencrypted - 接受未加密的连接(默认)
psk - 接受使用TLS和预共享密钥(PSK)的连接
cert - 接受使用TLS和证书的连接
TLSCAFile no 包含对等证书验证所需的file级Top CA证书的完整路径名,用于Zabbix组件之间的加密通信。
TLSCertFile no 包含用于与Zabbix组件加密通信的agent证书或证书链的file完整路径名。
TLSConnect yes, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no agent应如何连接到Zabbix server或proxy. 用于主动检查. 只能指定一个值:
unencrypted - 不加密连接(默认)
psk - 使用TLS和预共享密钥(PSK)连接
cert - 使用TLS和证书连接
TLSCRLFile no 包含已吊销证书的file完整路径名。该参数用于与Zabbix组件进行加密通信。
TLSKeyFile no 包含用于与Zabbix组件进行加密通信的agent私钥的file完整路径名。
TLSPSKFile no 包含用于与Zabbix组件进行加密通信的file agent预共享密钥的完整路径名。
TLSPSKIdentity no 预共享密钥标识 string, 用于与 Zabbix server 进行加密通信.
TLSServerCertIssuer no 允许的服务器(proxy)证书颁发机构。
TLSServerCertSubject no 允许的服务器(proxy)证书主题。
UnsafeUserParameters no 0,1 0 允许所有字符作为参数传递给用户自定义参数。
以下字符不被允许:
\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > \
UserParameter no 用于监控的用户自定义参数。可以存在多个用户自定义参数。
格式: UserParameter=<键值>,<shell命令>
注意shell命令不能返回空string或仅包含EOL。
如果指定了UserParameterDir参数,shell命令可以使用相对路径。
示例:
UserParameter=system.test,who\
UserParameterDir no UserParameter命令的默认搜索路径。如果使用此参数,agent将在执行命令前将其工作目录更改为此处指定的目录。因此,UserParameter命令可以使用相对路径./前缀而非完整路径。
仅允许一个条目。
示例:UserParameterDir=/opt/myscripts