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]**等。
[comment]: # ({/f3842378-20d32ed1})
[comment]: # ({3ed0c834-f52682cc})
##### AllowKey
允许执行那些与模式匹配的监控项键值。
键模式是支持使用"*"字符匹配任意数量任意字符的通配符表达式。<br>可以结合DenyKey定义多个键匹配规则。
参数将按照出现顺序逐一处理。
另请参阅:[Restricting agent checks](/manual/config/items/restrict_checks)。
[comment]: # ({/3ed0c834-f52682cc})
[comment]: # ({f4e3ae7a-a02d0dc0})
##### AllowRoot
允许agent以'root'身份run运行。
若禁用此选项且agent由'root'启动时,agent将尝试切换至'zabbix'用户运行。
若以普通用户身份启动则此设置无效。
默认值: `0`<br>
可选值: 0 - 不允许; 1 - 允许
[comment]: # ({/f4e3ae7a-a02d0dc0})
[comment]: # ({fce8e2ee-12f60552})
##### BufferSend
在缓冲区中保留数据不超过N秒。
默认值:`5`<br>
范围:1-3600
[comment]: # ({/fce8e2ee-12f60552})
[comment]: # ({3033154f-397065ee})
##### BufferSize
memory缓冲区中存储的最大值数量。
当缓冲区满时,agent会将所有收集的数据发送至Zabbix server或proxy。
默认值: `100`<br>
范围: 2-65535
[comment]: # ({/3033154f-397065ee})
[comment]: # ({9c071f70-e5288ea7})
##### DebugLevel
指定调试级别:<br>*0* - 关于Zabbix进程启动和停止的基本信息<br>*1* - 关键信息<br>*2* - 错误信息<br>*3* - 警告信息<br>*4* - 调试信息(产生大量信息)<br>*5* - 扩展调试(产生更多信息)
默认值:`3`<br>
范围:0-5
[comment]: # ({/9c071f70-e5288ea7})
[comment]: # ({26eddabd-ef1d8b77})
##### DenyKey
拒绝执行那些匹配特定模式的监控项键值。
键模式是支持使用"\*"字符匹配任意数量任意字符的通配符表达式。<br>多个键匹配规则可以与AllowKey组合定义。
参数将按照出现顺序逐一处理。
另请参阅:[Restricting agent checks](/manual/config/items/restrict_checks)。
[comment]: # ({/26eddabd-ef1d8b77})
[comment]: # ({80a7ec45-50dcbfc8})
##### EnableRemoteCommands
是否允许来自Zabbix server的远程命令。
此参数**已弃用**,请改用AllowKey=system.run\[\*\]或DenyKey=system.run\[\*\]。<br>它是AllowKey/DenyKey参数的内部alias,具体取决于值:<br>0 - DenyKey=system.run\[\*\]<br>1 - AllowKey=system.run\[\*\]
默认值:`0`<br>
取值:0 - 不允许,1 - 允许
[comment]: # ({/80a7ec45-50dcbfc8})
[comment]: # ({70ff69c8-764c3d3c})
##### HeartbeatFrequency
心跳消息的频率(以秒为单位)。
用于监控主动检查的可用性。<br>0 - 表示禁用心跳消息。
默认值:`60`<br>
范围:0-3600
[comment]: # ({/70ff69c8-764c3d3c})
[comment]: # ({1d584bf3-e514f4a5})
##### HostInterface
一个可选参数,用于定义在主机 [autoregistration](/manual/discovery/auto_registration)过程中使用的主机接口(IP地址或DNS名称)。
该值将用于填充新创建的主机中的接口,并允许显式配置IP或DNS地址。
更多详情,请参阅[Using DNS as default interface](/manual/discovery/auto_registration#using_dns_as_default_interface)。
如果未定义,该值将从HostInterfaceItem获取。
如果该值超过255个字符的限制,agent将问题错误且不会启动。
范围:0-255个字符
[comment]: # ({/1d584bf3-e514f4a5})
[comment]: # ({46385051-4965ac2b})
##### HostInterfaceItem
一个可选参数,用于定义在主机 [autoregistration](/manual/discovery/auto_registration)过程中确定主机接口(IP地址或DNS名称)所使用的监控项。
此值仅在未定义HostInterface时使用。
更多详情,请参阅[Using DNS as default interface](/manual/discovery/auto_registration#using_dns_as_default_interface)。
在自动注册请求期间,如果指定的监控项返回的值超过255个字符的限制,agent将记录一条警告消息。
无论AllowKey/DenyKey设置如何,[system.run[]](/manual/config/监控项/itemtypes/zabbix_agent#system.run) 监控项都受支持。
[comment]: # ({/46385051-4965ac2b})
[comment]: # ({5a8d3f35-42990e42})
##### HostMetadata
一个可选参数,用于定义在主机[autoregistration](/manual/discovery/auto_registration)过程中(主动agent)用于识别或区分主机的[metadata](/manual/discovery/auto_registration#using-host-metadata)。
HostMetadata允许超越主机名来区分主机。
如果未定义,该值将从HostMetadataItem获取。
如果指定值超过2034字节限制或使用非UTF-8string,agent将问题错误且不会启动。
当参数需要IP地址或DNS名称时,有效UTF-8编码但不符合IP或DNS命名规范的值也将被拒绝并报告为无效。
范围:0-2034字节
[comment]: # ({/5a8d3f35-42990e42})
[comment]: # ({30cc93b9-953ee255})
##### HostMetadataItem
一个可选参数,用于定义获取[host metadata](/manual/discovery/auto_registration#using-host-metadata)时使用的Zabbix agent监控项。
该选项仅在未定义HostMetadata时使用。
HostMetadataItem值会在每次[autoregistration](/manual/discovery/auto_registration)尝试时获取,且仅用于主机自动注册过程(主动式agent)。
HostMetadataItem允许通过除主机名之外的方式区分主机。
支持用户参数和别名。
无论AllowKey/DenyKey设置如何,都支持[system.run[]](/manual/config/监控项/itemtypes/zabbix_agent#system.run)监控项。
在自动注册请求期间,如果指定监控项返回的值超过65535个UTF-8码点限制,agent将记录警告消息。
监控项返回的值必须是UTF-8string,否则将被忽略。
当参数需要IP地址或DNS名称时,虽然是有效UTF-8但不符合IP或DNS名称格式的值也将被拒绝并报告为无效。
[comment]: # ({/30cc93b9-953ee255})
[comment]: # ({39406dda-79d09548})
##### Hostname
以逗号分隔的唯一主机名列表(区分大小写)。
主动检查时必须配置,且必须与服务器上配置的主机名匹配。
若未定义该值,则从HostnameItem获取。<br>允许字符:字母数字、'.'、' '、'\_'和'-'。
最大长度:每个主机名128个字符,整行2048个字符。
默认值:由HostnameItem设置
[comment]: # ({/39406dda-79d09548})
[comment]: # ({5dd0215d-14aaef49})
##### HostnameItem
一个可选参数,用于定义获取主机名称时使用的Zabbix agent监控项。
此选项仅在未定义主机名时使用。
不支持用户参数或别名,但无论AllowKey/DenyKey值如何设置,都支持[system.run[]](/manual/config/监控项/itemtypes/zabbix_agent#system.run)监控项。
默认值:`system.hostname`
[comment]: # ({/5dd0215d-14aaef49})
[comment]: # ({3ae9ed9c-1e31f1b3})
##### Include
您可以在配置file中包含单个文件或目录中的所有文件。
为了仅包含指定目录中的相关文件,支持使用星号通配符进行模式匹配。<br>有关限制,请参阅[special notes](special_notes_include)。
示例:
```default
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