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

4 Zabbix agent 2 (UNIX)

概述

Zabbix agent 2 是新一代的 Zabbix agent 并用于替代之前的 Zabbix agent。

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

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

参数

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

示例:

1. 检索ID为“zabbix”的用户。
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开始支持此参数。
参阅: Restricting agent checks.
BufferSend 1-3600 5 时间间隔(以秒为单位),用于确定从缓冲区向Zabbix server发送值的频率。
请注意,如果缓冲区已满,则数据将尽快发送。
BufferSize 2-65535 100 内存缓冲区中的最大容量。 如果缓冲区已满,则代理会将所有收集的数据发送到Zabbix server或proxy。
仅当禁用持久缓冲区时才应使用此参数 (EnablePersistentBuffer=0)。
ControlSocket /tmp/agent.sock 控制套接字,用于发送带有 '-R' 选项的运行时命令。
DebugLevel 0-5 3 指定调试级别:
0 - 有关启动和停止Zabbix进程的基本信息
1 - 关键信息
2 - 错误信息
3 - 警告
4 - 用于调试(产生大量信息)
5 - 扩展调试(产生更多信息)
DenyKey 拒绝执行与模式匹配的那些监控项键值。键值匹配模式是支持通配字符"*"用于匹配任意数量的任何字符。
可以结合AllowKey定义多个键值的匹配规则。根据其出现顺序对参数进行逐一处理。
从Zabbix 5.0.0开始支持此参数。
参考: 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个字符的限制,agent将发出错误并且不会启动。
如果未定义,将从HostInterfaceItem获取值。
自Zabbix 4.4.0起支持。
HostInterfaceItem 可选参数用于定义用于获取主机接口的监控项。
主机接口用于主机自动注册过程。
在自动注册请求期间,如果指定项返回的值超过255个字符的限制,则agent将记录一条警告消息。
仅当未定义HostInterface时才使用此选项。
自Zabbix 4.4.0起支持。
HostMetadata 0-255字符 可选参数用于指定主机元数据。主机元数据用于主机自动注册过程。
如果指定的值超出限制或非UTF-8字符串,则agent将发出错误,并且不会启动。
如果未定义,将从HostMetadataItem获取该值。
HostMetadataItem 可选参数用于定义用于获取主机元数据的项目。每次自动注册尝试时都会检索主机元数据项值,以进行主机自动注册过程。
在自动注册请求期间,如果指定项返回的值超过255个字符的限制,则agent将记录一条警告消息。
仅当未定义HostMetadata时才使用此选项。
支持UserParameters 和aliases。 不管 AllowKey/DenyKey 值如何,都支持 system.run[]
该监控项返回的值必须是UTF-8字符串,否则将被忽略。
Hostname 通过HostnameItem设置 唯一的、区分大小写用逗号分割的主机名列表。
主动检查所必需,并且必须与服务器上配置的主机名匹配。如未指定则从HostnameItem获取。
允许的字符:字母, '.', ' ', '_'和 '-'.
最大长度: 主机名128字符, 整行2048字符。
HostnameItem system.hostname 用于生成主机名的监控项当未定义时。如果定义了主机名,则忽略。
不支持 UserParameters 或 aliases,无论 AllowKey/DenyKey 值如何,都支持 system.run[]
最大输出限制为 512KB.
Include 可以在配置文件的目录中包括单个文件或所有文件。
在安装Zabbix过程中,除非在编译期间进行了修改,否则Zabbix将在/usr/local/etc中创建include目录。
要仅在指定目录中包含相关文件,模式匹配支持使用星号通配符。示例: /absolute/path/to/config/files/*.conf.
自 Zabbix 6.0.0 可使用相对路径 zabbix_agent2.conf 文件定位。
参见 special notes 中限制情况
ListenIP 0.0.0.0 Agent应监听使用逗号分隔的IP地址列表。
第一个IP地址被发送到Zabbix server,如果已连接,以检索主动检查的列表。
ListenPort 1024-32767 10050 Agent 将监听此端口上来自服务器的连接。
LogFile 是, 如LogType设置为 file, 其他
/tmp/zabbix_agent2.log 如LogType 为'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)。
PidFile /tmp/zabbix_agent2.pid 进程ID文件。
Plugins 自 Zabbix 6.0.0 多数插件自身的 configuration files. 下面列出 agent 配置文件中插件参数。
Plugins.Log.MaxLinesPerSecond no 1-1000 20 处理主动检查类型的“日志”和“事件日志”时,agent每秒发送给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 /tmp/agent.plugin.sock 与外部插件连接的Unix socket 。
PluginTimeout 1-30 Global timeout 外部插件连接超时。
RefreshActiveChecks 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 主动检查Zabbix servers和 Zabbix proxies的点分十进制IP地址:端口对(或DNS名称:端口对)列表。
集群节点以分号分隔。
可以提供多个地址来并行使用多个独立的Zabbix servers,允许有空格。
如果未指定端口,则使用默认端口。
如果指定了该主机的端口,则IPv6地址必须用方括号括起来。
如果未指定端口,则IPv6地址的方括号是可选的。
如果未指定此参数,则禁用主动检查。
示例: 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.)
StatusPort 1024-32767 如设置,agent将在此端口上监听HTTP状态请求 (http://localhost:<port>/status).
Timeout 1-30 3 最大耗时对应的秒数。
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 包含用于与Zabbix组件进行加密通信的agent专用密钥的文件的完整路径名。
TLSPSKFile 含用于与Zabbix组件进行加密通信的agent预共享密钥的文件的完整路径名。
TLSPSKIdentity 预共享密钥标识字符串,用于与Zabbix server进行加密通信。
TLSServerCertIssuer 允许的服务器(proxy)证书颁发者。
TLSServerCertSubject 允许的服务器(proxy)证书主体。
UnsafeUserParameters 0,1 0 允许将所有字符都通过参数传递给用户定义的参数。
不允许使用以下字符:
\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
另外,不允许使用换行符。
UserParameter 用户自定义的监控参数。可以有几个用户定义的参数。
格式: UserParameter=<key>,<shell command>
请注意,shell命令不得返回空字符串或仅返回EOL。
示例:
UserParameter=system.test,who|wc -l
UserParameter=check_cpu,./custom_script.sh
UserParameterDir 默认搜索用户自定义命令的文件路径。如使用,agent将在执行命令前改变工作目录到指定目录,此外, 可用./前缀的相对位置代替绝对路径。
仅允许一个目录
例如: UserParameterDir=/opt/myscripts