- 3 Zabbix agent (UNIX)
- 概述
- 参数详情
- Alias
- AllowKey
- AllowRoot
- BufferSend
- BufferSize
- DebugLevel
- DenyKey
- EnableRemoteCommands
- HeartbeatFrequency
- HostInterface
- HostInterfaceItem
- HostMetadata
- HostMetadataItem
- Hostname
- HostnameItem
- Include
- ListenBacklog
- ListenIP
- ListenPort
- LoadModule
- LoadModulePath
- LogFile
- LogFileSize
- LogRemoteCommands
- LogType
- MaxLinesPerSecond
- PidFile
- RefreshActiveChecks
- Server
- ServerActive
- SourceIP
- StartAgents
- Timeout
- TLSAccept
- TLSCAFile
- TLSCertFile
- TLSCipherAll
- TLSCipherAll13
- TLSCipherCert
- TLSCipherCert13
- TLSCipherPSK
- TLSCipherPSK13
- TLSConnect
- TLSCRLFile
- TLSKeyFile
- TLSPSKFile
- TLSPSKIdentity
- TLSServerCertIssuer
- TLSServerCertSubject
- UnsafeUserParameters
- User
- UserParameter
- UserParameterDir
- 参阅
3 Zabbix agent (UNIX)
概述
本节列出了 Zabbix agent配置文件 (zabbix_agentd.conf) 支持的参数。
参数列出时没有附加信息。单击参数可查看完整详细信息。
参数 | 描述 |
---|---|
Alias | 为监控项键设置别名。 |
AllowKey | 允许执行与模式匹配的监控项键。 |
AllowRoot | 允许 agent 以“root”身份运行。 |
BufferSend | 不要将数据在缓冲区中保存超过 N 秒。 |
BufferSize | 内存缓冲区中的最大值数。 |
DebugLevel | 调试级别。 |
DenyKey | 拒绝执行与模式匹配的监控项键。 |
EnableRemoteCommands | 是否允许来自 Zabbix 服务器的远程命令。 |
HeartbeatFrequency | 心跳消息的频率(以秒为单位)。 |
HostInterface | 定义主机接口的可选参数。 |
HostInterfaceItem | 定义用于获取主机接口的监控项的可选参数。 |
HostMetadata | 定义主机元数据的可选参数。 |
HostMetadataItem | 定义用于获取主机元数据的 Zabbix agent 监控项的可选参数。 |
Hostname | 定义主机名的可选参数。 |
HostnameItem | 定义用于获取主机名的 Zabbix agent 监控项的可选参数。 |
Include | 您可以在配置文件中包含目录中的单个文件或所有文件。 |
ListenBacklog | TCP 队列中待处理连接的最大数量。 |
ListenIP | agent 应侦听的逗号分隔 IP 地址列表。 |
ListenPort | agent 将在此端口上侦听来自服务器的连接。 |
LoadModule | agent 启动时要加载的模块。 |
LoadModulePath | agent 模块位置的完整路径。 |
LogFile | 日志文件的名称。 |
LogFileSize | 日志文件的最大大小。 |
LogRemoteCommands | 启用将执行的 shell 命令记录为警告。 |
LogType | 日志输出的类型。 |
MaxLinesPerSecond | agent 在处理“log”和“logrt”活动检查时每秒向 Zabbix server 或 proxy 发送的最大新行数。 |
PidFile | PID 文件的名称。 |
RefreshActiveChecks | 活动检查列表的刷新频率。 |
Server | 逗号分隔的 IP 地址列表,可选地采用 CIDR 表示法,或 Zabbix server 和 Zabbix proxy 的 DNS 名称。 |
ServerActive | 要从中获取活动检查的 Zabbix server/proxy 地址或集群配置。 |
SourceIP | 源 IP 地址。 |
StartAgents | 处理被动检查的 zabbix_agentd 预分叉实例数。 |
Timeout | 指定通信超时(以秒为单位)。 |
TLSAccept | 接受哪些传入连接。 |
TLSCAFile | 包含用于对等证书验证的顶级 CA 证书的文件的完整路径名,用于 Zabbix 组件之间的加密通信。 |
TLSCertFile | 包含agent 证书或证书链的文件的完整路径名,用于 Zabbix 组件之间的加密通信。 |
TLSCipherAll | GnuTLS 优先级字符串或 OpenSSL(TLS 1.2)密码字符串。覆盖基于证书和 PSK 的加密的默认密码套件选择标准。 |
TLSCipherAll13 | TLS 1.3 中 OpenSSL 1.1.1 或更新版本的密码字符串。覆盖基于证书和 PSK 的加密的默认密码套件选择标准。 |
TLSCipherCert | GnuTLS 优先级字符串或 OpenSSL (TLS 1.2) 密码字符串。覆盖基于证书的加密的默认密码套件选择标准。 |
TLSCipherCert13 | TLS 1.3 中 OpenSSL 1.1.1 或更新版本的密码字符串。覆盖基于证书的加密的默认密码套件选择标准。 |
TLSCipherPSK | GnuTLS 优先级字符串或 OpenSSL (TLS 1.2) 密码字符串。覆盖基于 PSK 的加密的默认密码套件选择标准。 |
TLSCipherPSK13 | TLS 1.3 中 OpenSSL 1.1.1 或更新版本的密码字符串。覆盖基于 PSK 的加密的默认密码套件选择标准。 |
TLSConnect | agent 应如何连接到 Zabbix server 或 proxy。 |
TLSCRLFile | 包含已撤销证书的文件的完整路径名。此参数用于 Zabbix 组件之间的加密通信。 |
TLSKeyFile | 包含agent 私钥的文件的完整路径名,用于 Zabbix 组件之间的加密通信。 |
TLSPSKFile | 包含agent 预共享密钥的文件的完整路径名,用于与 Zabbix 服务器的加密通信。 |
TLSPSKIdentity | 预共享密钥身份字符串,用于与 Zabbix 服务器进行加密通信。 |
TLSServerCertIssuer | 允许的server(proxy)证书颁发者。 |
TLSServerCertSubject | 允许的server(proxy)证书主体。 |
UnsafeUserParameters | 允许将所有字符作为参数传递给用户定义的参数。 |
User | 将权限授予系统上特定的现有用户。 |
UserParameter | 要监视的用户定义参数。 |
UserParameterDir | UserParameter 命令的默认搜索路径。 |
除非明确说明该参数是必需的,否则所有参数都是非强制性的。
请注意:
- 默认值反映守护进程的默认值,而不是 附带配置文件中的值;
- 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:运行多个 低级别自动发现 规则处理相同的发现监控项。
Alias=vfs.fs.discovery[*]:vfs.fs.discovery
现在可以使用 vfs.fs.discovery 设置多个发现规则,每个规则使用不同的参数,例如 vfs.fs.discovery[foo]、vfs.fs.discovery[bar] 等。
AllowKey
允许执行与模式匹配的监控项键。键模式是一个通配符表达式,支持“*”字符以匹配任意数量的任意字符。
可以与 DenyKey 结合定义多个键匹配规则。参数将根据其出现顺序逐一处理。另请参阅:限制agent 检查。
AllowRoot
允许agent 以“root”身份运行。如果禁用并且agent 由“root”启动,则agent 将尝试切换到用户“zabbix”。如果以普通用户身份启动则无效。
默认值:0
值:0 - 不允许;1 - 允许
BufferSend
不要将数据保留在缓冲区中超过 N 秒。
默认值:5
范围:1-3600
BufferSize
内存缓冲区中的最大值数。如果缓冲区已满,agent 将把所有收集的数据发送到 Zabbix server 或 proxy。
默认值:100
范围:2-65535
DebugLevel
指定调试级别:
0 - 有关启动和停止 Zabbix 进程的基本信息
1 - 关键信息;
2 - 错误信息;
3 - 警告;
4 - 用于调试(产生大量信息);
5 - 扩展调试(产生更多信息)。
默认值:3
范围:0-5
DenyKey
拒绝执行与模式匹配的监控项键。键模式是一个通配符表达式,支持“*”字符以匹配任意数量的任意字符。
可以结合 AllowKey 定义多个键匹配规则。参数将根据其出现顺序逐一处理。另请参阅:限制agent 检查。
EnableRemoteCommands
是否允许来自 Zabbix 服务器的远程命令。此参数已弃用,请改用 AllowKey=system.run[*] 或 DenyKey=system.run[*]。
它是 AllowKey/DenyKey 参数的内部别名,具体取决于值:
0 - DenyKey=system.run[*]
1 - AllowKey=system.run[*]
默认值:0
值:0 - 不允许,1 - 允许
HeartbeatFrequency
心跳消息的频率(以秒为单位)。用于监控主动检查的可用性。
0 - 心跳消息已禁用。
默认值:60
范围:0-3600
HostInterface
定义主机接口的可选参数。主机接口用于主机 自动注册 进程。如果未定义,将从 HostInterfaceItem 获取该值。
如果该值超过 255 个字符的限制,agent 将发出错误并且不会启动。
范围:0-255 个字符
HostInterfaceItem
可选参数,定义用于获取主机接口的监控项。
主机接口用于主机 自动注册 进程。
在自动注册请求期间,如果指定监控项返回的值超过 255 个字符的限制,agent 将记录一条警告消息。
无论 AllowKey/DenyKey 值如何,system.run[] 监控项均受支持。
此选项仅在未定义 HostInterface 时使用。
HostMetadata
定义主机元数据的可选参数。主机元数据仅在主机自动注册过程(主动式 agent)中使用。如果未定义,则将从 HostMetadataItem 获取该值。
如果指定的值超过 2034 字节的限制或为非 UTF-8 字符串,agent 将发出错误并且不会启动。
范围:0-2034 字节
HostMetadataItem
可选参数,定义用于获取主机元数据的 Zabbix agent 监控项。此选项仅在未定义 HostMetadata 时使用。支持用户参数和别名。无论 AllowKey/DenyKey 值如何,都支持 system.run[] 项。
每次尝试自动注册时都会检索 HostMetadataItem 值,并且仅在主机自动注册过程(主动式 agent)中使用。
在自动注册请求期间,如果指定项返回的值超过 65535 个 UTF-8 代码点的限制,agent 将记录一条警告消息。项返回的值必须是 UTF-8 字符串,否则将被忽略。
Hostname
逗号分隔、唯一、区分大小写的主机名列表。主动检查时需要此列表,并且必须与服务器上配置的主机名匹配。如果未定义,则从 HostnameItem 获取值。
允许的字符:字母数字、’.’、’ ‘、’_‘ 和 ‘-‘。最大长度:每个主机名 128 个字符,整行 2048 个字符。
默认值:由 HostnameItem 设置
HostnameItem
可选参数,定义用于获取主机名的 Zabbix agent 监控项。此选项仅在未定义 Hostname 时使用。不支持用户参数或别名,但无论 AllowKey/DenyKey 值如何,都支持 system.run[] 项。
默认值:system.hostname
Include
您可以在配置文件中包含目录中的单个文件或所有文件。要仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。
有关限制,请参阅特别说明。
示例:
Include=/absolute/path/to/config/files/*.conf
ListenBacklog
TCP 队列中待处理连接的最大数量。
默认值是硬编码常量,取决于系统。
支持的最大值取决于系统,过高的值可能会被默默截断为“实现指定的最大值”。
默认值:SOMAXCONN
范围:0 - INT_MAX
ListenIP
agent应监听的逗号分隔 IP 地址列表。
默认值:0.0.0.0
ListenPort
agent 将在此端口上侦听来自服务器的连接。
默认值:10050
范围:1024-32767
LoadModule
agent 启动时要加载的模块。模块用于扩展agent 的功能。模块必须位于 LoadModulePath 指定的目录中,或者路径必须位于模块名称之前。如果前面的路径是绝对路径(以“/”开头),则忽略 LoadModulePath。
格式:
LoadModule=<module.so>
LoadModule=<path/module.so>
LoadModule=</abs_path/module.so>
允许包含多个 LoadModule 参数。
LoadModulePath
agent 模块位置的完整路径。默认值取决于编译选项。
LogFile
日志文件的名称。
必填:是,如果 LogType 设置为 file;否则否
LogFileSize
日志文件的最大大小(以 MB 为单位)。
0 - 禁用自动日志轮换。
注意:如果达到日志文件大小限制并且文件轮换失败,无论出于何种原因,现有日志文件都会被截断并重新启动。
默认值:1
范围:0-1024
LogRemoteCommands
启用将执行的 shell 命令记录为警告。仅当远程执行时才会记录命令。如果 system.run[] 由 HostMetadataItem、HostInterfaceItem 或 HostnameItem 参数本地启动,则不会创建日志条目。
默认值:0
值:0 - 禁用,1 - 启用
LogType
日志输出的类型:
file - 将日志写入 LogFile 参数指定的文件;
system - 将日志写入 syslog;
console - 将日志写入标准输出。
默认值:file
MaxLinesPerSecond
agent 在处理“log”和“logrt”活动检查时每秒向 Zabbix server 或proxy 发送的最大新行数。提供的值将被“log”或“logrt”监控项键中提供的“maxlines”参数覆盖。
注意:Zabbix 将处理比MaxLinesPerSecond中设置的新行多 10 倍的新行,以在日志监控项中寻找所需的字符串。
默认值:20
范围:1-1000
PidFile
PID 文件的名称。
默认值:/tmp/zabbix_agentd.pid
RefreshActiveChecks
活动检查列表的刷新频率(以秒为单位)。请注意,如果刷新活动检查失败,将在 60 秒后尝试下一次刷新。
默认值:5
范围:1-86400
Server
逗号分隔的 IP 地址列表,可选地采用 CIDR 表示法,或 Zabbix server 和 Zabbix proxy 的 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
必需:是,如果 StartAgents 未明确设置为 0
ServerActive
要从中获取主动检查的 Zabbix server/proxy 地址或集群配置。server/proxy 地址是 IP 地址或 DNS 名称和可选端口,以冒号分隔。
集群配置是一个或多个以分号分隔的服务器地址。可以指定多个 Zabbix server/集群和 Zabbix proxy,以逗号分隔。不应为每个 Zabbix server/集群指定多个 Zabbix proxy。如果指定了 Zabbix proxy,则不应指定该proxy 的 Zabbix server/集群。
可以提供多个以逗号分隔的地址以并行使用多个独立的 Zabbix server。允许使用空格。
如果未指定端口,则使用默认端口。
如果指定了该主机的端口,则必须将 IPv6 地址括在方括号中。如果未指定端口,则 IPv6 地址的方括号是可选的。
如果未指定此参数,则禁用主动检查。
Zabbix proxy 示例:
ServerActive=127.0.0.1:10051
多个server 示例:
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 等)时建立连接。
StartAgents
处理被动检查的 zabbix_agentd 预分叉实例数。如果设置为 0,则禁用被动检查,并且agent 不会监听任何 TCP 端口。
默认值:10
范围:0-100
Timeout
指定通信超时(以秒为单位)。
此参数用于定义各种通信操作的持续时间:
- 等待 Zabbix 服务器的响应;
- 向 Zabbix 服务器发送请求,包括 主动检查 配置请求和监控项数据;
- 通过日志文件或 Windows 事件日志监控检索日志数据;
- 发送心跳消息;
- 还用作 7.0 版之前的 server/proxy 发送无超时检查的场景的后备。
默认值:3
范围:1-30
TLSAccept
接受哪些传入连接。用于被动检查。可以指定多个值,用逗号分隔:
unencrypted - 接受未加密的连接(默认)
psk - 接受带有 TLS 和预共享密钥 (PSK) 的连接
cert - 接受带有 TLS 和证书的连接
必需:是,如果定义了 TLS 证书或 PSK 参数(即使对于 uncrypted 连接);否则否
TLSCAFile
包含用于对等证书验证的顶级 CA 证书的文件的完整路径名,用于 Zabbix 组件之间的加密通信。
TLSCertFile
包含agent 证书或证书链的文件的完整路径名,用于与 Zabbix 组件进行加密通信。
TLSCipherAll
GnuTLS 优先级字符串或 OpenSSL (TLS 1.2) 密码字符串。覆盖基于证书和 PSK 的加密的默认密码套件选择标准。
示例:
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
TLSCipherAll13
TLS 1.3 中 OpenSSL 1.1.1 或更新版本的密码字符串。覆盖基于证书和 PSK 的加密的默认密码套件选择标准。
GnuTLS 示例:
NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL::+SIGN-ALL:+CTYPE-X.509
OpenSSL 示例:
EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128
TLSCipherCert
GnuTLS 优先级字符串或 OpenSSL (TLS 1.2) 密码字符串。覆盖基于证书的加密的默认密码套件选择标准。
GnuTLS 示例:
NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
OpenSSL 示例:
EECDH+aRSA+AES128:RSA+aRSA+AES128
TLSCipherCert13
TLS 1.3 中 OpenSSL 1.1.1 或更新版本的密码字符串。覆盖基于证书的加密的默认密码套件选择标准。
TLSCipherPSK
GnuTLS 优先级字符串或 OpenSSL (TLS 1.2) 密码字符串。覆盖基于 PSK 的加密的默认密码套件选择标准。
GnuTLS 示例:
NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL
OpenSSL 示例:
kECDHEPSK+AES128:kPSK+AES128
TLSCipherPSK13
TLS 1.3 中 OpenSSL 1.1.1 或更新版本的密码字符串。覆盖基于 PSK 的加密的默认密码套件选择标准。
示例:
TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
TLSConnect
agent 应如何连接到 Zabbix server 或 proxy。用于主动检查。只能指定一个值:
unencrypted - 不加密连接(默认)
psk - 使用 TLS 和预共享密钥 (PSK) 连接
cert - 使用 TLS 和证书连接
必填:是,如果定义了 TLS 证书或 PSK 参数(即使对于 未加密 连接);否则否
TLSCRLFile
包含已撤销证书的文件的完整路径名。此参数用于 Zabbix 组件之间的加密通信。
TLSKeyFile
包含agent私钥的文件的完整路径名,用于 Zabbix 组件之间的加密通信。
TLSPSKFile
包含agent 预共享密钥的文件的完整路径名,用于与 Zabbix server 进行加密通信。
TLSPSKIdentity
预共享密钥身份字符串,用于与 Zabbix 服务器进行加密通信。
TLSServerCertIssuer
允许的 server(proxy)证书颁发者。
TLSServerCertSubject
允许的 server(proxy)证书主题。
UnsafeUserParameters
允许将所有字符作为参数传递给用户定义的参数。不允许使用以下字符:\ ‘ “ ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
此外,不允许使用换行符。
默认值:0
值:0 - 不允许,1 - 允许
User
将权限授予系统上特定的现有用户。
仅当以“root”身份运行且 AllowRoot 被禁用时才有效。
默认值:zabbix
UserParameter
要监视的用户定义参数。可以有多个用户定义参数。
格式:UserParameter=<key>,<shell 命令>
请注意,shell 命令不得返回空字符串或仅返回 EOL。如果指定了 UserParameterDir 参数,则 Shell 命令可以具有相对路径。
示例:
UserParameter=system.test,who|wc -l UserParameter=check_cpu,./custom_script.sh
UserParameterDir
UserParameter 命令的默认搜索路径。如果使用,agent将在执行命令之前将其工作目录更改为此处指定的目录。因此,UserParameter 命令可以具有相对 ./
前缀,而不是完整路径。
仅允许一个条目。
示例:
UserParameterDir=/opt/myscripts