3 Zabbix agent (UNIX)

概述

本节列出了Zabbix agent配置file(zabbix_agentd.conf)支持的参数。

参数列表未提供额外信息。 点击参数查看完整详情

参数 描述
Alias 为监控项键设置alias.
AllowKey 允许执行那些匹配特定模式的监控项键。
AllowRoot 允许 agent 以 'root' 身份 run。
BufferSend 在缓冲区中保留数据不超过N秒。
BufferSize memory缓冲区中的最大数值数量.
DebugLevel 调试级别。
DenyKey 拒绝执行与模式匹配的监控项键。
EnableRemoteCommands 是否允许来自Zabbix server的远程命令。
HeartbeatFrequency 心跳消息的频率(以秒为单位)。
HostInterface 定义主机接口的可选参数.
HostInterfaceItem 一个可选参数,用于定义获取主机接口时使用的监控项。
HostMetadata 一个可选参数,用于定义主机元数据。
HostMetadataItem 一个可选参数,用于定义获取主机元数据时使用的Zabbix agent监控项。
Hostname 定义主机名的可选参数.
HostnameItem 一个可选参数,用于定义获取主机名时使用的 Zabbix agent 监控项。
Include 您可以在配置file中包含单个文件或目录中的所有文件。
ListenBacklog TCP队列中待处理连接的最大数量。
ListenIP agent 应监听的逗号分隔IP地址列表。
ListenPort agent 将在此端口监听来自服务器的连接。
LoadModule 在 agent 启动时加载的模块。
LoadModulePath agent模块所在位置的完整路径。
LogFile 日志file的名称.
LogFileSize 日志file的最大大小。
LogRemoteCommands 启用将执行的shell命令记录为警告的功能。
LogType 日志输出的类型。
MaxLinesPerSecond 当处理'日志'和'logrt'主动检查时,agent每秒向Zabbix server或proxy发送的新行最大数量。
PidFile PID file的名称.
RefreshActiveChecks 主动检查列表的刷新频率。
Server 以逗号分隔的IP地址列表(可选CIDR表示法),或Zabbix servers与Zabbix proxies的DNS名称。
ServerActive 用于get主动检查的Zabbix server/proxy地址或集群配置。
SourceIP 源IP地址
StartAgents 处理被动检查的zabbix_agentd预派生实例数量。
Timeout 指定与Zabbix proxy或服务器建立连接及交换数据的等待时间(以秒为单位)。
TLSAccept 接受哪些传入连接。
TLSCAFile 包含用于对等证书验证的Top级file CA证书的完整路径名,用于Zabbix组件之间的加密通信。
TLSCertFile 包含 agent 证书或证书链的 file 完整路径名,用于Zabbix组件之间的加密通信。
TLSCipherAll GnuTLS优先级string或OpenSSL(TLS 1.2)加密套件string。覆盖基于证书和PSK加密的默认加密套件选择标准。
TLSCipherAll13 OpenSSL 1.1.1或更高版本在TLS 1.3中使用的密码套件string. 覆盖基于证书和PSK加密的默认密码套件选择标准.
TLSCipherCert GnuTLS优先级string或OpenSSL(TLS 1.2)加密套件string。覆盖基于证书加密的默认加密套件选择标准。
TLSCipherCert13 OpenSSL 1.1.1或更高版本在TLS 1.3中使用的密码套件string. 覆盖基于证书加密的默认密码套件选择标准.
TLSCipherPSK GnuTLS优先级string或OpenSSL(TLS 1.2)加密套件string。覆盖基于PSK加密的默认加密套件选择标准。
TLSCipherPSK13 适用于OpenSSL 1.1.1或更高版本的TLS 1.3密码套件string。覆盖基于PSK加密的默认密码套件选择标准。
TLSConnect agent 应如何连接到 Zabbix server 或 proxy.
TLSCRLFile 包含已撤销证书的file的完整路径名。该参数用于Zabbix组件之间的加密通信。
TLSKeyFile 包含agent私钥的file完整路径名,用于Zabbix组件间的加密通信。
TLSPSKFile 包含agent预共享密钥的file完整路径名,用于与Zabbix server进行加密通信。
TLSPSKIdentity 预共享密钥标识 string,用于与 Zabbix server 进行加密通信。
TLSServerCertIssuer 允许的服务器(proxy)证书颁发机构。
TLSServerCertSubject 允许的服务器(proxy)证书主题.
UnsafeUserParameters 允许在用户自定义参数中传递所有字符。
User 将权限降级至系统中某个已存在的特定用户。
UserParameter 用于监控的用户自定义参数。
UserParameterDir UserParameter命令的默认搜索路径。

除非明确说明参数为必填项,否则所有参数均为非必填项。

请注意:

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

参数详情

Alias

为监控项键设置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]来get关于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定义多个键匹配规则。 参数将按照出现顺序逐一处理。 另请参阅:Restricting agent checks

AllowRoot

允许agent以'root'身份run运行。 若禁用此选项且agent由'root'启动时,agent将尝试切换至'zabbix'用户运行。 若以普通用户身份启动则此设置无效。

默认值: 0
可选值: 0 - 不允许; 1 - 允许

BufferSend

在缓冲区中保留数据不超过N秒。

默认值:5
范围:1-3600

BufferSize

memory缓冲区中存储的最大值数量。 当缓冲区满时,agent会将所有收集的数据发送至Zabbix server或proxy。

默认值: 100
范围: 2-65535

DebugLevel

指定调试级别:
0 - 关于Zabbix进程启动和停止的基本信息
1 - 关键信息
2 - 错误信息
3 - 警告信息
4 - 调试信息(产生大量信息)
5 - 扩展调试(产生更多信息)

默认值:3
范围:0-5

DenyKey

拒绝执行那些匹配特定模式的监控项键值。 键模式是支持使用"*"字符匹配任意数量任意字符的通配符表达式。
多个键匹配规则可以与AllowKey组合定义。 参数将按照出现顺序逐一处理。 另请参阅:Restricting agent checks

EnableRemoteCommands

是否允许来自Zabbix server的远程命令。 此参数已弃用,请改用AllowKey=system.run[*]或DenyKey=system.run[*]。
它是AllowKey/DenyKey参数的内部alias,具体取决于值:
0 - DenyKey=system.run[*]
1 - AllowKey=system.run[*]

默认值:0
取值:0 - 不允许,1 - 允许

HeartbeatFrequency

心跳消息的频率(以秒为单位)。 用于监控主动检查的可用性。
0 - 表示禁用心跳消息。

默认值:60
范围:0-3600

HostInterface

一个可选参数,用于定义在主机 autoregistration过程中使用的主机接口(IP地址或DNS名称)。 该值将用于填充新创建的主机中的接口,并允许显式配置IP或DNS地址。 更多详情,请参阅Using DNS as default interface

如果未定义,该值将从HostInterfaceItem获取。

如果该值超过255个字符的限制,agent将问题错误且不会启动。

范围:0-255个字符

HostInterfaceItem

一个可选参数,用于定义在主机 autoregistration过程中确定主机接口(IP地址或DNS名称)所使用的监控项。 此值仅在未定义HostInterface时使用。 更多详情,请参阅Using DNS as default interface

在自动注册请求期间,如果指定的监控项返回的值超过255个字符的限制,agent将记录一条警告消息。

无论AllowKey/DenyKey设置如何,system.run[] 监控项都受支持。

HostMetadata

一个可选参数,用于定义在主机autoregistration过程中(主动agent)用于识别或区分主机的metadata。 HostMetadata允许超越主机名来区分主机。

如果未定义,该值将从HostMetadataItem获取。

如果指定值超过2034字节限制或使用非UTF-8string,agent将问题错误且不会启动。 当参数需要IP地址或DNS名称时,有效UTF-8编码但不符合IP或DNS命名规范的值也将被拒绝并报告为无效。

范围:0-2034字节

HostMetadataItem

一个可选参数,用于定义获取host metadata时使用的Zabbix agent监控项。 该选项仅在未定义HostMetadata时使用。

HostMetadataItem值会在每次autoregistration尝试时获取,且仅用于主机自动注册过程(主动式agent)。 HostMetadataItem允许通过除主机名之外的方式区分主机。

支持用户参数和别名。 无论AllowKey/DenyKey设置如何,都支持system.run[]监控项。

在自动注册请求期间,如果指定监控项返回的值超过65535个UTF-8码点限制,agent将记录警告消息。 监控项返回的值必须是UTF-8string,否则将被忽略。 当参数需要IP地址或DNS名称时,虽然是有效UTF-8但不符合IP或DNS名称格式的值也将被拒绝并报告为无效。

Hostname

以逗号分隔的唯一主机名列表(区分大小写)。 主动检查时必须配置,且必须与服务器上配置的主机名匹配。 若未定义该值,则从HostnameItem获取。
允许字符:字母数字、'.'、' '、'_'和'-'。 最大长度:每个主机名128个字符,整行2048个字符。

默认值:由HostnameItem设置

HostnameItem

一个可选参数,用于定义获取主机名称时使用的Zabbix agent监控项。 此选项仅在未定义主机名时使用。 不支持用户参数或别名,但无论AllowKey/DenyKey值如何设置,都支持system.run[]监控项。

默认值:system.hostname

Include

您可以在配置file中包含单个文件或目录中的所有文件。 为了仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。
有关限制,请参阅special notes

示例:

Include=/absolute/path/to/config/files/*.conf
ListenBacklog

TCP队列中待处理连接的最大数量。
默认值为硬编码常量,具体取决于系统。
支持的最大值也取决于系统,过高的值可能会被静默截断为"实现指定的最大值"。

默认值:SOMAXCONN
范围:0 - INT_MAX

ListenIP

一个逗号分隔的IP地址列表,agent应监听这些地址。

默认值: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

日志file的名称.

必填项: 如果LogType设置为file则为是; 否则为否

LogFileSize

日志file的最大大小(单位:MB)。
0 - 禁用自动日志轮转。
注意:如果日志file大小达到限制且file轮转失败(无论何种原因),现有日志file将被截断并重新开始记录。

默认值:1
范围:0-1024

LogRemoteCommands

启用已执行shell命令的日志记录(作为警告级别)。 仅当远程执行时才会记录命令。 如果system.run[]是通过HostMetadataItem、HostInterfaceItem或HostnameItem参数在本地启动的,则不会创建日志条目。

默认值:0
可选值:0 - 禁用,1 - 启用

LogType

日志输出类型:
file - 将日志写入LogFile参数指定的file;
system - 将日志写入syslog;
console - 将日志写入标准输出.

默认值: file

MaxLinesPerSecond

当处理'日志'和'logrt'主动检查时,agent每秒向Zabbix server或proxy发送的新行最大数量。 提供的值将被'日志'或'logrt'监控项键中的'maxlines'参数覆盖。
注意: Zabbix将处理比MaxLinesPerSecond设置多10倍的新行,以在日志监控项中查找所需的string。

默认值: 20
范围: 1-1000

PidFile

PID名称file.

默认值: /tmp/zabbix_agentd.pid

RefreshActiveChecks

主动检查列表的刷新频率,以秒为单位。 请注意,若主动检查刷新失败,下一次刷新尝试将在60秒后进行。

默认值:5
范围:1-86400

Server

以逗号分隔的IP地址列表(可选CIDR表示法)或Zabbix servers与Zabbix proxies的DNS名称。 仅接受来自此处列出的主机的传入连接。 若启用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.example.com

必填项:是(若未显式将StartAgents设为0)

ServerActive

用于get主动检查的Zabbix server/proxy地址或集群配置 server/proxy 地址是一个IP地址或DNS名称,后跟可选的端口号,用冒号分隔。
集群配置是一个或多个服务器地址,用分号分隔。 可以指定多个Zabbix servers/集群和Zabbix proxies,用逗号分隔。 每个Zabbix server/集群中不应指定多个Zabbix proxy 如果指定了Zabbix proxy,则不应为该proxy指定Zabbix server/cluster。
可以提供多个逗号分隔的地址以并行使用多个独立的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

源IP地址用于:

  • 与Zabbix server或Zabbix proxy建立传出连接;
  • 在执行某些监控项时建立连接(web.page.get、net.tcp.port等)。
StartAgents

用于处理被动检查的zabbix_agentd预派生实例数量。 若设置为0,则禁用被动检查且agent不会监听任何TCP端口。

默认值:10
范围:0-100

Timeout

指定与Zabbix proxy或服务器建立连接及交换数据的等待时间(秒)。

该参数定义各类通信操作的最长持续时间,包括:

  • 等待Zabbix server响应;
  • 向Zabbix server发送请求(含监控项配置请求及主动检查中的监控项数据);
  • 通过日志文件检索日志数据;
  • 发送心跳消息;
  • vfs.*检查的最大持续时间;
  • 被Zabbix agent模块使用;
  • 作为version 7.0以下版本的server 或 proxy发送无超时检查时的后备机制。

该超时设置适用于在前端(全局、proxy或单个监控项层级)可配置超时的agent检查项。

默认值:3
取值范围:1-30

TLSAccept

接受哪些传入连接。 用于被动检查。 可指定多个值,以逗号分隔:
unencrypted - 接受未加密的连接(默认)
psk - 接受使用TLS和预共享密钥(PSK)的连接
cert - 接受使用TLS和证书的连接

必填项:如果定义了TLS证书或PSK参数(即使针对unencrypted连接)则为是;否则为否

TLSCAFile

包含用于对等证书验证的Top级CA证书的file完整路径名,用于Zabbix组件之间的加密通信。

TLSCertFile

包含file的完整路径名,其中含有用于与Zabbix组件进行加密通信的agent证书或证书链。

TLSCipherAll

GnuTLS优先级string或OpenSSL(TLS 1.2)加密套件string。 覆盖基于证书和PSK加密的默认加密套件选择标准。

示例:

TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
TLSCipherAll13

OpenSSL 1.1.1或更高版本在TLS 1.3中使用的密码套件string。 覆盖基于证书和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优先级string或OpenSSL(TLS 1.2)加密套件string。 覆盖基于证书加密的默认加密套件选择标准。

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

OpenSSL 1.1.1或更高版本在TLS 1.3中使用的密码套件string。 覆盖基于证书加密的默认密码套件选择标准。

TLSCipherPSK

GnuTLS优先级string或OpenSSL(TLS 1.2)加密套件string。 覆盖基于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

OpenSSL 1.1.1或更高版本中TLS 1.3使用的密码套件string。 覆盖基于PSK加密的默认密码套件选择标准。

示例:

TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
TLSConnect

agent应如何连接到Zabbix server或proxy. 用于主动检查. 只能指定一个值:
unencrypted - 不加密连接(默认)
psk - 使用TLS和预共享密钥(PSK)连接
cert - 使用TLS和证书连接

必填: 如果定义了TLS证书或PSK参数(即使对于unencrypted连接)则为是; 否则为否

TLSCRLFile

包含已撤销证书的file的完整路径名。 该参数用于Zabbix组件之间的加密通信。

TLSKeyFile

包含用于Zabbix组件间加密通信的agent私钥的file完整路径名。

TLSPSKFile

包含用于与Zabbix server进行加密通信的agent预共享密钥的file完整路径名。

TLSPSKIdentity

预共享密钥标识string,用于与Zabbix server进行加密通信。

TLSServerCertIssuer

允许的服务器(proxy)证书颁发机构。

TLSServerCertSubject

允许的服务器(proxy)证书主题。

UnsafeUserParameters

允许在用户自定义参数参数中传递所有字符。 以下字符不允许使用:\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
此外,换行符也不允许使用。

默认值:0
取值:0 - 不允许,1 - 允许

User

将权限降级为系统中特定的现有用户。
仅当以'root'身份运行run且AllowRoot被禁用时生效。

默认值: zabbix

UserParameter

用于监控的用户自定义参数。 可以定义多个用户自定义参数。
格式: UserParameter=<键值>,<shell命令>
注意shell命令不能返回空的string或仅包含EOL。 如果指定了UserParameterDir参数,shell命令可以使用相对路径。

示例:

UserParameter=system.test,who|wc -l
       UserParameter=check_cpu,./custom_script.sh
UserParameterDir

UserParameter命令的默认搜索路径。 如果使用此参数,agent将在执行命令前将工作目录切换至此处指定的路径。 因此,UserParameter命令可以使用相对路径的./前缀而非完整路径。
仅允许配置一个条目。

示例:

UserParameterDir=/opt/myscripts

另请参阅

  1. Differences in the Zabbix agent configuration for active and passive checks starting from version 2.0.0