3 Zabbix agent (UNIX)
概览
本节列出了 Zabbix agent 的配置文件(zabbix_agentd.conf)中支持的参数。 请注意:
- 默认值反映的是守护进程的默认值,而不是附带的配置文件中的值;
- Zabbix 仅支持 UTF-8 编码的配置文件,且编码中不可使用字节顺序标记(BOM);
- 仅在行首支持以 “#” 开始的注释。
参数
参数 | 必填 | 范围 | 默认值 | 描述 |
---|---|---|---|---|
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 结合使用来定义多个键值匹配规则。会根据参数的出现顺序对其逐个进行处理。 自 Zabbix 5.0.0开始支持本参数。 另请参阅:限制 agent 检查。 | ||
AllowRoot | 否 | 0 | 允许 agent 以 ‘root’ 用户身份运行。若本参数设为禁止,且仍以 ‘root’ 用户身份启动 agent,则 agent 会尝试切换为以 ‘zabbix’ 用户启动。若以普通用户身份启动则本参数无效。 0 - 禁止 1 - 允许 | |
BufferSend | 否 | 1-3600 | 5 | 数据在缓冲区中保留不超过 N 秒。 |
BufferSize | 否 | 2-65535 | 100 | 内存缓冲区中数据的最大条数。 若缓冲区已满,则 agent 会将所有收集到的数据发送到 Zabbix server 或 proxy。 |
DebugLevel | 否 | 0-5 | 3 | 指定调试级别(debug日志的级别): 0 - Zabbix 进程启停的基本信息 1 - 严重(critical)信息 2 - 错误(error)信息 3 - 警告(warning)信息 4 - 调试(debugging)信息,会产生大量信息 5 - 扩展调试(extended debugging)信息,会产生更大量的信息 |
DenyKey | 否 | 禁止执行的符合特定模式的监控项键值。键值模式是一种通配符表达式,它支持以“”字符来匹配任意数量的任意字符。 可与 AllowKey 结合使用来定义多个键值匹配规则。会根据参数的出现顺序对其逐个进行处理。 自 Zabbix 5.0.0开始支持本参数。 另请参阅:限制 agent 检查。 | ||
EnableRemoteCommands | 否 | 0 | 是否允许来自 Zabbix server 的远程命令。本参数已弃用,请使用 AllowKey=system.run[] 或 DenyKey=system.run[] 来替代 本参数是参数 AllowKey/DenyKey 的内部别名,其含义由值决定: 0 - DenyKey=system.run[] 1 - AllowKey=system.run[] | |
HostInterface | 否 | 0-255 个字符 | 定义主机接口的可选参数。 主机接口用于主机自动注册流程。 若本参数的值超过255个字符的限制,则 agent 将报错并且不会启动。 若未定义,则将从 HostInterfaceItem 获取本参数的值。 自 Zabbix 4.4.0开始支持本参数。 | |
HostInterfaceItem | 否 | 定义用于获取主机接口的监控项的可选参数。 主机接口用于主机自动注册流程。 在自动注册请求期间,若指定监控项返回的值超过255个字符的限制,则 agent 会记录一条警告消息。 本参数仅用于未设置 HostInterface 的场景。 自 Zabbix 4.4.0开始支持本参数。 | ||
HostMetadata | 否 | 0-255 个字符 | 定义主机元数据的可选参数。主机元数据仅用于主机自动注册流程(主动 agent)。 若未定义,则将从 HostMetadataItem 获取该值。 若指定的值超过限制或非 UTF-8 字符串,则 agent 将报错并且不会启动。 | |
HostMetadataItem | 否 | 定义用于获取主机元数据的 Zabbix agent 监控项的可选参数。仅当未定义 HostMetadata 时,才使用本参数。 支持 UserParameters 和 aliases。不论 AllowKey/DenyKey 的值如何,都支持 system.run[]。 在每次尝试自动注册时都会获取 HostMetadataItem 的值,并且该值仅用于主机自动注册流程(主动 agent)。 在自动注册请求期间,若指定监控项返回的值超过255个字符的限制,则 agent 会记录一条警告消息。 该监控项返回的值必须是 UTF-8 字符串,否则将被忽略。 | ||
Hostname | 否 | 由 HostnameItem 设置 | 英文逗号分隔的唯一、区分大小写的主机名列表。 本参数是agent(主动式)类型监控项所必需的,且必须与服务器上配置的主机名匹配。若本参数未定义,则从 HostnameItem 获取。 可选字符:字母、数字、‘.’、‘ ’、‘_’和‘-’。 最大长度:每个主机名128个字符,整行2048个字符。 | |
HostnameItem | 否 | system.hostname | 定义用于获取主机名的 Zabbix agent 监控项的可选参数。仅当未定义 Hostname 时才使用本参数。 不支持 UserParameters 或 aliases,但不论 AllowKey/DenyKey 的值如何,都支持 system.run[]。 输出长度限制为512KB。 | |
Include | 否 | 你可以引入配置文件中所定义目录下的单独几个或所有文件。 为了仅引入指定目录下的相关文件,可以使用星号通配符进行模式匹配。例如: /absolute/path/to/config/files/.conf 。有关限制,请参阅特别说明。 | ||
ListenBacklog | 否 | 0 - INT_MAX | SOMAXCONN | TCP 队列的最大挂起连接数。 默认值是取决于系统的硬编码常量。 支持的最大值取决于系统,过高的值可能会被静默截短为“实现指定的最大值”。 |
ListenIP | 否 | 0.0.0.0 | agent 应该监听的 IP 地址列表(由英文逗号分隔)。 在1.8.3及更高版本上支持多个 IP 地址。 | |
ListenPort | 否 | 1024-32767 | 10050 | 为了来自 server 的连接,agent 会监听本端口。 |
LoadModule | 否 | agent 启动时要加载的模块。模块用来扩展 agent 的功能。 格式: LoadModule=<module.so> LoadModule=<path/module.so> LoadModule=</abs_path/module.so> 模块必须位于 LoadModulePath 指定的目录中,或路径必须位于模块名之前。若模块名前的路径是绝对路径(以‘/’开头),则忽略 LoadModulePath。 允许添加多个 LoadModule 参数。 | ||
LoadModulePath | 否 | agent 模块的完整路径。 默认值取决于编译选项。 | ||
LogFile | 若 LogType 设为 file 则为是, 否则为否 | 日志文件的名称。 | ||
LogFileSize | 否 | 0-1024 | 1 | 日志文件的最大容量,单位为 MB。 0 - 禁用自动的日志滚动。 注意:若达到日志文件大小的最大限制且文件滚动失败,则无论出于何种原因,现有的日志文件会被截断并开始重新记录。 |
LogType | 否 | file | 日志输出的类型: file - 将日志写入 LogFile 参数指定的文件中, system - 将日志写入 syslog, console - 将日志用控制台进行标准输出。 自 Zabbix 3.0.0开始支持本参数。 | |
LogRemoteCommands | 否 | 0 | 允许将已执行的 shell 命令记录为警告。 0 - 禁止 1 - 允许 仅远程执行的命令会被记入日志。若 system.run[] 由 HostMetadataItem、HostInterfaceItem 或 HostnameItem 参数在本地启动,则不会创建日志条目。 | |
MaxLinesPerSecond | 否 | 1-1000 | 20 | 在处理‘log’和‘eventlog’主动检查时,agent 每秒将向 Zabbix server 或 proxy 发送的新数据最大条数。 提供的值将被参数‘maxlines’覆盖, 其由‘log’或‘eventlog’监控项的键值提供。 注意:为了在日志监控项中查找所需的字符串,Zabbix 将处理比 MaxLinesPerSecond 中设置的新数据条数多10倍的数据。 |
PidFile | 否 | /tmp/zabbix_agentd.pid | PID 文件的名称。 | |
RefreshActiveChecks | 否 | 60-3600 | 120 | 刷新主动检查列表的频率,单位为秒。 注意,若刷新失败,则60秒后会进行下次刷新尝试。 |
Server | 若 StartAgents 未显式设置为0则为是 | 英文逗号分隔的 Zabbix server 或 Zabbix proxy 的 IP 地址(可选择用 CIDR 表示法表达)或主机名列表。 仅接受来自此处配置主机的传入连接。 若支持 IPv6,则‘127.0.0.1’、‘::127.0.0.1’、‘::ffff:127.0.0.1’是等效的。 ‘::/0’将允许任意 IPv4或 IPv6地址。 ‘0.0.0.0/0’可以用来允许任意 IPv4地址。 注意,根据 RFC4291,“兼容 IPv4的 IPv6地址”(0000::/96 前缀)受支持但已被弃用。 例如:Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.domain 允许空格。 | ||
ServerActive | 否 | 英文逗号分隔的 Zabbix server 和 Zabbix proxy 的 IP 地址或 DNS 名称(地址:端口)或集群(地址:端口;地址2:端口)的列表,用于主动检查。 集群节点必须用英文分号分隔。 为同时使用多台独立的 Zabbix server,可用英文逗号分隔多个地址。允许空格。 若未指定端口,则会使用默认端口。 若主机是 IPv6地址且主机的端口已指定,则地址必须用英文方括号括起来。 若未指定端口,则 IPv6地址的方括号是可选的。 若未设置本参数,则禁用主动检查。 多 Zabbix 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 | 否 | 0-100 | 3 | 执行被动检查的 zabbix_agentd 的初始实例数。 若设为0,则禁用被动检查,且 agent 不会监听任何 TCP 端口。 |
Timeout | 否 | 1-30 | 3 | 处理的超时时长(单位为秒)。 |
TLSAccept | 若定义了 TLS 证书或 PSK 参数(即使是 未加密 的连接)则为是, 否则为否 | 接受哪些传入连接。用于被动检查。可定义多个值,用英文逗号分隔: unencrypted - 接受未加密连接(默认) psk - 接受带 TLS 和预共享秘钥(PSK)的连接 cert - 接受带 TLS 和证书的连接 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSCAFile | 否 | 顶级 CA 证书文件的完整路径名,该文件用于 Zabbix 组件间加密通信中的对等证书校验。 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSCertFile | 否 | 包含 agent 证书或证书链的文件的完整路径名,该文件用于和 Zabbix 组件间的加密通信。 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSCipherAll | 否 | GnuTLS 优先级字符串或 OpenSSL(TLS 1.2)密码字符串。覆盖基于证书和 PSK 加密的默认密码套件选择条件。 例如:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 自 Zabbix 4.4.7开始支持本参数。 | ||
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 自 Zabbix 4.4.7开始支持本参数。 | ||
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 自 Zabbix 4.4.7开始支持本参数。 | ||
TLSCipherCert13 | 否 | 在 TLS 1.3下用于 OpenSSL 1.1.1版或更新版本的密码字符串。覆盖基于证书加密的默认密码套件选择条件。 自 Zabbix 4.4.7开始支持本参数。 | ||
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 自 Zabbix 4.4.7开始支持本参数。 | ||
TLSCipherPSK13 | 否 | 在 TLS 1.3下用于 OpenSSL 1.1.1版或更新版本的密码字符串。覆盖基于 PSK 加密的默认密码套件选择条件。 Example: TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 自 Zabbix 4.4.7开始支持本参数。 | ||
TLSConnect | 若定义了 TLS 证书或 PSK 参数(即使是 未加密 的连接)则为是, 否则为否 | agent 该如何连接到 Zabbix server 或 proxy。本参数用于主动检查。仅可以选择一种连接方式: unencrypted - 无加密连接(默认) psk - 使用 TLS 和预共享秘钥(PSK)的连接 cert - 使用 TLS 和证书的连接 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSCRLFile | 否 | 包含已吊销证书的文件的完整路径名。本参数用于和 Zabbix 组件间的加密通信。 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSKeyFile | 否 | 包含 agent 私钥的文件的完整路径名,该文件用于和 Zabbix 组件间的加密通信。 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSPSKFile | 否 | 包含 agent 预共享秘钥(PSK)的文件的完整路径名,该文件用于和 Zabbix server 之间的加密通信。 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSPSKIdentity | 否 | 预共享秘钥(PSK)标识字符串,用于和 Zabbix server 之间的加密通信。 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSServerCertIssuer | 否 | 允许的 server(proxy)证书颁发者。 自 Zabbix 3.0.0开始支持本参数。 | ||
TLSServerCertSubject | 否 | 允许的 server(proxy)证书使用者。 自 Zabbix 3.0.0开始支持本参数。 | ||
UnsafeUserParameters | 否 | 0,1 | 0 | 允许所有字符通过参数传递给用户定义的参数。 0 - 禁止 1 - 允许 禁用以下字符: \ ‘ “ ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @ 此外,禁用换行符。 |
User | 否 | zabbix | 降低权限为一个系统内已存在的用户。 仅当以‘root’用户身份运行且 AllowRoot 参数设置为禁用时,本参数才生效。 | |
UserParameter | 否 | 要监视的用户定义参数。可以有多个用户定义的参数。 格式:UserParameter=<key>,<shell command> 注意,shell 命令不得仅返回空字符串或行尾字符。 若指定了 UserParameterDir 参数,则 Shell 命令可以使用相对路径。 例如: UserParameter=system.test,who|wc -l UserParameter=check_cpu,./custom_script.sh | ||
UserParameterDir | 否 | UserParameter 命令的默认搜索路径。若使用本参数,则 agent 会在执行命令前将其工作目录改为此处指定的目录。因此,UserParameter 命令可使用相对路径前缀./ ,而不是完整路径。仅允许设置一个目录。 例如:UserParameterDir=/opt/myscripts |