2022 Zabbix中国峰会
2022 Zabbix中国峰会
Table of Contents

3 Zabbix agent (UNIX)

The default values reflect daemon defaults, not the values in the shipped configuration files.

Zabbix agent 配置文件(zabbix_agentd.conf)支持的参数:

参数 必 范围 默认 描述
Alias no 为监控项的key设置别名,可以用短且简单的key替换那些长的复杂的监控项key。
可以存在多个 别名 参数, 而且也允许多个参数使用一个 //别名 // 。
不同的 别名 也可以指向同一个 item key。\\别名可以用于 HostMetadataItem 但不能用在HostnameItem 参数中。

例如:
\\1. 检索用户'zabbix'的ID.
Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
现在简写的key zabbix.userid 即可用来检索数据

2. 使用默认参数和自定义参数得到 CPU 负载.
Alias=cpu.util:system.cpu.util
Alias=cpu.util[*]:system.cpu.util[*]
使用 cpu.util 可以得到默认情况下 CPU使用率 , 等同于使用g指定参数的 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],等发现规则
AllowRoot no 0 允许 agent 以 'root'身份运行, 如果禁止,但 agent 仍以'root'身份启动, agent 会切换为'zabbix' 用户。对于普通用户启动的agent,没有任何影响.
0 - 禁止
1 - 允许
BufferSend no 1-3600 5 缓存区保存数据的最长时间(单位s)。
BufferSize no 2-65535 100 数据缓存区大小. 如果缓存区满,agent会发送
所有采集到的数据给 Zabbix server 或者 proxy 。
DebugLevel no 0-5 3 指定调试等级:
0 - Zabxxi进程起停的基本信息
1 - 重要信息
2 - 错误信息
3 - 警告
4 - 调试 (产生大量信息)
5 - 扩展调试 (产生更多信息)
EnableRemoteCommands no 0 是否允许server远程执行命令。
0 - 禁止
1 - 允许
HostMetadata no 0-255 characters 可选参数用来定义主机元数据,只有主机自动注册时才用到主机元数据。
如果没有定义,该值通过 HostMetadataItem 获得。
如果指定的值超过限制或者不是UTF-8编码的字符串, agent 会给出一个错误或者不启动。
2.2.0 或更高版本支持该参数。
HostMetadataItem no 可选参数定义 Zabbix agent 监控项, 用来得到主机元数据。HostMetadata没有定义时,使用该参数。
支持 用户自定义参数, 别名。支持 system.run[], EnableRemoteCommands 值对该参数没有影响。
只有主机自动注册时才用到主机元数据。
在一个自动注册请求过程中,如果返回值超过255个字符,agent 会记录一条警告信息。
监控项返回值必须为 UTF-8的字符串, 否则会忽略 。
2.2.0 或更高版本支持该参数。
Hostname no Set by HostnameItem 唯一的, 区分大小写的。
主动检查时该配置项必填,并且必须和server端的配置匹配.
允许的符号: 字母数字, '.', ' ', '_' 和 '-'.
最大长度: 64
HostnameItem no system.hostname 可选参数, 定义一个 Zabbix agent 监控项来自动获取主机名字。Hostname参数未设置时,该参数设置生效
不支持用户自定义参数和别名,但支持 system.run[] (与 EnableRemoteCommands 值无关)。
Zabbix 1.8.6或更高版本都支持该参数。
Include no 可以在配置文件中指定单个文件或者指定一个目录(所有文件在该目录中)
只有在指定的目录中包含相关文件, 才可以使用正则匹配的通配符。 例如 /absolute/path/to/config/files/*.conf. 2.4.0后都支持模式匹配。
参看关于限制条件的 特例
ListenIP no 0.0.0.0 监听Ip地址列表,多个Ip以分号隔开。
Zabbix 1.8.3后支持多Ip。
ListenPort no 1024-32767 10050 监听端口.
LoadModule no agent端启动时加载的模块,这些模块用来扩展agent的功能
格式: LoadModule=<module.so>
这些模块必须在LoadModulePath参数指定的路径中
允许多个 LoadModule 参数。
LoadModulePath no agent 模块路径。
默认值在编译时指定。
LogFile yes, if LogType is set to file, otherwise
no
日志文件名称。
LogFileSize no 0-1024 1 日志文件大小,单位 MB。
0 - 禁止日志文件自动回滚.
注意: 如果日志文件达到限定的大小,文件回滚失败, 不管是什么原因, 现有的日志会被截断,并重新记录日志。
LogType no file 日志输出类型:
file - 写入LogFile 参数指定的日志文件中,
system - 写入系统事件日志
console - 控制台输出。
Zabbix 3.0.0后支持该参数。
LogRemoteCommands no 0 允许执行远程命令记录日志.
0 - 禁止
1 - 允许
MaxLinesPerSecond no 1-1000 20 每秒向serve或proxy发送数据的最大行数
该参数值会被监控项'
'log' 或 'eventlog' 中的 'maxlines'参数覆盖。
注意: Zabbix will process 4 times more new lines than set in MaxLinesPerSecond to seek the required string in log items.
PidFile no /tmp/zabbix_agentd.pid PID 文件名称。
RefreshActiveChecks no 60-3600 120 主动检查频率, 单位秒。
如果更新失败,60s后会尝试第二次更新。
Server no IP地址列表,以逗号分割,可选server的CIDR标记或者主机名。
只接受来自该列表的连接。
如果支持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.domain
Zabbix 2.2 以后支持空格。
ServerActive no server 或 proxy 主动检查的IP:端口(或主机名:端口)。
可以使用多个并行的server端,此时用逗号分割, 不允许有空格。
如果不指定端口,就使用默认的端口号。
如果指定该主机的端口,IPv6地址必须被括在方括号中。
如果没有指定端口,则IPv6地址的方括号是可选的。
如果未指定该参数,主动检查不可用。
SourceIP no 对外连接的源IP地址。
StartAgents no 0-100 3 被动检查的zabbix_agentd子进程数量。
如果设为0,被动检查不可用并且agent不会监听任何TCP 端口。
1.8.5前版本最大数为16。
Timeout no 1-30 3 超时连接时间,单位秒。
TLSAccept yes, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no 接受什么类型的连接, 用于被动检查。 可以指定多个值, 用逗号隔开即可:
unencrypted - 接受未加密的连接 (默认)
psk - 接受TLS 和预共享密钥 (PSK) 的连接
cert - 接受TLS 和证书的连接
Zabbix 3.0.0后支持该参数。
TLSCAFile no 包含用于对等证书验证的顶级CA证书的文件的完整路径名, 用于加密Zabbix各组件间的通信。
Zabbix 3.0.0后支持该参数。
TLSCertFile no 包含证书(证书链)的文件的完整路径名, 用于加密Zabbix各组件间的通信
Zabbix 3.0.0后支持该参数。
TLSConnect yes, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no agent 连接server或proxy的方式, 用于主动检查。 只能指定一个值:
unencrypted - 连接不加密 (默认)
psk - 连接加密方式为TLS和预共享密钥(PSK)
cert - 连接加密方式为 TLS 和 证书
Zabbix 3.0.0后支持该参数。
TLSCRLFile no 包含证书吊销的文件的完整路径名, 用于加密Zabbix各组件间的通信。
Zabbix 3.0.0后支持该参数。
TLSKeyFile no 包含私钥的文件的完整路径名。
Zabbix 3.0.0后支持该参数。
TLSPSKFile no 包含agent预共享key的文件的完整路径名,用于加密Zabbix各组件间的通信。
Zabbix 3.0.0后支持该参数。
TLSPSKIdentity no 预共享密钥身份字符串, 用于加密和server间的通信。
Zabbix 3.0.0后支持该参数。
TLSServerCertIssuer no 允许的服务器证书发行者。
Zabbix 3.0.0后支持该参数。
TLSServerCertSubject no 允许的服务器证书主体。
Zabbix 3.0.0后支持该参数。
UnsafeUserParameters no 0,1 0 允许用户自定义参数中传递所有字符, Zabbix 1.8.2后支持该参数。
禁止下面字符::
\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
另外, 不允许换行符。
User no zabbix 降低权限为系统中存在的指定用户。
以'root'身份运行且AllowRoot禁止时,该参数才起作用。
Zabbix 2.4.0后支持该参数。
UserParameter no 用户自定义监控参数,可以有多个。
格式: UserParameter=<key>,<shell command>\\注意 shell命令一定不能只返回空的字符串或者EOL 。
例子: UserParameter=system.test,who|wc -l

在Zabbix agent 2.0.0 关于主动和被动的配置参数已经改变。
更多详细信息请查看本页底部的 "参见" 部分。

Zabbix 的配置文件都是无 BOM的utf8编码的。

注释只能在每行以 “#” 开头。.

参见

  1. Zabbix2.0.0版本后,Zabbix agent 主动和被动配置的区别