这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 Zabbix agent

概述

这些检查与Zabbix agent进行通信,实现数据的采集

被动和主动两种 agent 检查模式 , 在配置监控项时,你可以选择所需的类型:

  • Zabbix agent - 被动检查
  • Zabbix agent(主动) - 主动检查

支持的监控项

下表提供了可用的Zabbix agent 监控项键值的详细信息。

另请参阅

强制和可选参数

没有尖括号的参数是强制性的。用尖括号 < > 标记的参数是可选的。

与命令行实用程序一起使用

请注意,在命令行中使用 zabbix_agentd 或 zabbix_get 测试或使用项目键时,您也应该考虑 shell 语法。

例如,如果键的某个参数必须用双引号括起来,则必须显式转义双引号,否则它们将被 shell 修剪为特殊字符,并且不会传递给 Zabbix 实用程序。

例如:

$ zabbix_agentd -t 'vfs.dir.count[/var/log,,,"file,dir",,0]'
       
       $ zabbix_agentd -t vfs.dir.count[/var/log,,,\"file,dir\",,0]
Zabbix 指标
项目键
说明 返回值 参数 注释
agent.hostmetadata
代理主机元数据。 字符串 返回 HostMetadata 或 HostMetadataItem 参数的值,如果未定义则返回空字符串。

自 Zabbix 6.0 起受支持。
agent.hostname
代理主机名。 字符串 返回:
作为被动检查 - 代理配置文件的主机名参数中列出的第一个主机的名称;
作为主动检查 - 当前主机名的名称。
agent.ping
代理可用性检查。 无 - 不可用

1 - 可用
使用nodata() 触发器函数检查主机不可用性。
agent.variant
Zabbix 代理的变体(Zabbix 代理或 Zabbix 代理 2)。 整数 返回值示例:
1 - Zabbix agent
2 - Zabbix agent 2
agent.version
Zabbix agent的版本。 字符串 返回值示例:
6.0.3
zabbix.stats[<ip>,<port>]
远程返回一组 Zabbix 服务器或代理内部指标。 JSON 对象 ip - 要远程查询的服务器/代理的 IP/DNS/网络掩码列表(默认为 127.0.0.1)
** 端口** - 要远程查询的服务器/代理端口(默认为 10051)
请注意,统计请求只会从“StatsAllowedIP”[服务器](/manual/appendix/config/zabbix_server)中列出的地址接受 /proxy 目标实例上的参数。

此监控项返回一组选定的内部指标。 详情参见Zabbix stats的远程监控
zabbix.stats[<ip>,<port>,queue,<from>,<to>]
返回队列中在 Zabbix 服务器或远程代理上延迟的监控项数。 JSON 对象 ip - 要远程查询的服务器/代理的 IP/DNS/网络掩码列表(默认为 127.0.0.1 )
port - 要远程查询的服务器/代理端口(默认为 10051)
queue - 常量(按原样使用)
from - 至少延迟(默认为 6 秒)
- 最多延迟(默认为无限)
请注意,统计请求只会从“StatsAllowedIP”[服务器]中列出的地址接受 (/manual/appendix/config/zabbix_server)/proxy 目标实例上的参数。
脚注

1Linux相关。Zabbix agent 必须对文件系统/proc有只读权限。www.grsecurity.org的内核补丁限制了未授权用户的访问权限。

2 vfs.dev.read[], vfs.dev.write[]: 如果监控项值超过3小时无法获取,Zabbix agent 会终止"过时"的设备连接。这可能在系统设备动态变化或者手动移除时发生。请注意这些监控项的更新间隔在3小时以上时,会永远返回'0'。

3 vfs.dev.read[], vfs.dev.write[]: 如果将默认的all 作为第一个参数,此键会返回汇总统计数据,包括所有的块设备如sda,sbd及其分区(sda1, sda2, sdb3...)和基于这些块设备/分区的多个设备(MD raid)和基于这些块设备/分区的逻辑设备(LVM)。在这些情况下返回值应只考虑相对值(随时间动态变化)而不是绝对值。

4 SSL (HTTPS) 仅在agent在支持cURL的情况下编译时被支持。否则此监控项会返回不受支持。

编码设置

要确保获取的数据不被损坏,你可能需要在 encoding参数中指定正确的编码来处理检查(例如 'vfs.file.contents')。受支持的的编码(代码页标识符)可在libiconv (GNU 项目) 的文档查找,或在微软Windows SDK的文档查找"Code Page Identifiers"。

如果未在 encoding参数中指定编码,会应用以下解决方案策略:

  • 如果encoding未指定(或者为空字符串)被认为是UTF-8,数据原样处理;
  • BOM分析 - 在监控项 'vfs.file.contents', 'vfs.file.regexp', 'vfs.file.regmatch'可应用。尝试使用文件开头的字节顺序标记(BOM)来决定正确的编码。如果没有BOM - 改为应用标准解决方案(见上)。

agent监控项故障排除

  • 如果使用被动 agent,server 配置的Timeout值可能需要比 agent 配置的Timeout值高。 否则此监控项可能不会获取到任何值,因为 server 到 agent 的请求先超时了。
内核数据
监控项键值
描述 返回值 参数 注释
kernel.maxfiles
OS支持的最大打开文件数。 整型
kernel.maxproc
OS支持的最大进程数 整型
kernel.openfiles
返回当前打开文件句柄数 整型 自 Zabbix 6.0开始支持该参数
日志数据

更多信息参考 日志监控.

键值
描述 返回值 参数 注释
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent_dir>]
监控日志文件。 日志 file - 日志文件的全路径
regexp - 正则表达式 所需要的匹配的模式
encoding - 编码 标识符
maxlines - 客户端将发送到Zabbix server或proxy的每秒最大行数。此参数覆盖zabbix_agentd.conf中的'MaxLinesPerSecond'值
mode (自版本 2.0以后)- 可能的值有:
all (默认), skip - 跳过旧数据的处理 (仅影响新创建的监控项)。
output (自版本2.2以后) - 一个可选的输出格式模板, \0 转义序列被替换为文本的匹配部分 (匹配从开始的第一个字符到结束的字符) 而 \N (其中N=1...9) 转义序列被替换为第 N 个匹配组 (或如果 N 超过捕获的组数,则为空字符串)。
maxdelay (自版本 3.2后) - 最大延迟,以秒为单位。 类型: 浮点型, 值: 0 - (默认) 从不忽略日志文件行; > 0.0 - 忽略旧行, 以便在“maxdelay”秒内分析最新行。使用前请阅读 maxdelay 说明!
options (自版本 4.4.7以后) - 附件选项:
mtime-noreread - 非唯一记录, 仅在文件大小更改时重读 (忽略修改时间更改). (从 5.0.2 开始不推荐使用此参数,因为现在忽略了 mtime。)
persistent_dir (从 5.0.18、5.4.9 版本开始,仅在 Unix 系统上的 zabbix_agentd 中;在 Agent2 中不支持) - 存储持久性的目录的绝对路径名文件。另请参阅有关持久文件附加说明
该监控项必须配置为 主动检查
如果文件丢失或权限不允许访问,监控项变为不受支持。

如果output 留空 - 返回包含匹配文本的整行。 请注意,除 'Result is TRUE' 之外的所有全局正则表达式类型始终返回整个匹配行,并且output忽略该参数。

在agent上使用output参数进行内容提取。

例如:
=> log[/var/log/syslog]
=> log[/var/log/syslog,error]
=> log[/home/zabbix/logs/logfile,,,100]

使用output 参数中从日志记录中提取一个数字 :
=> log[/app1/app.log,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] → 将匹配日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 并只发送 '6080' 到服务器。 因为发送的是一个数值, 所以该监控项的 "信息类型"可以设置为 "数字(无符号)" 该值可用于图形,触发器等。

使用output 参数在发送到服务器之前重写日志记录:
=> log[/app1/app.log,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] → 将匹配日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 并且向服务端发送修改后的记录 "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" 。

另请参阅 日志监控其他信息。
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent_dir>]
监控日志文件中匹配的行数量 整型 file - 含全路径的日志文件名称
regexp - 正则 表达式匹配的内容模式
encoding - 编码 标识符
maxproclines - agent每秒分析新增的最大行数 (不能超过10000)。 在zabbix_agentd.conf中设置的默认值是 10*'MaxLinesPerSecond'
mode - 可能的值:
all (默认), skip - 跳过旧数据的处理 (仅影响新创建的监控项)。
maxdelay - 最大延迟秒数。 类型: 浮点型。 值: 0 - (默认) 从不忽略日志行数; > 0.0 - 忽略旧行 以便在“maxdelay”秒内分析最新行。使用前请阅读maxdelay 说明!
options (自4.4.7版后) - 附加选项:
mtime-noreread - 非唯一记录, 仅在文件大小发生更改时重新读取 (忽略修改时间更改). (从5.0.2开始不推荐使用此参数, 因为现在忽略了mtime。)
persistent_dir (从 5.0.18、5.4.9 版本开始,仅在 Unix 系统上的 zabbix_agentd 中;在 Agent2 中不支持) - 存储持久性的目录的绝对路径名文件。另请参阅有关持久文件附加说明
该监控项必须配置为 主动检查.
如果文件缺失或权限不允许访问,则监控项不受支持。

另请参阅有关 日志监控的其他信息

该监控项不支持Windows的事件日志。

自 Zabbix 3.2.0版本后开始支持。
logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent_dir>]
监控轮换的日志文件。 日志 file_regexp - 文件的绝对路径和正则表达式匹配的文件名模式 请注意 只有文件名是正则表达式
regexp - 描述正则表达式匹配的文件内容模式
encoding - 编码 标识符
maxlines - agent每秒将发送到 Zabbix 服务器或代理的最大新行数。 此参数覆盖zabbix_agentd.conf的 'MaxLinesPerSecond'的值
mode (自版本 2.0后) - 可能值:
all (默认), skip - 跳过旧数据的处理 (仅影响新创建的监控项)。
output (自版本2.2后) - 一个可选的输出格式模板。\0 转义序列被替换文本的匹配部分 (匹配从开始的第一个字符到结束的字符) 而 \N (其中 N=1...9) 转义序列被替换为第N个匹配组 (或如果N超过捕获的组数,则为空字符串)。
maxdelay (自版本 3.2后) -最大的时延,以秒为单位。 类型: 浮点型。 值: 0 - (默认) 从不忽略日志文件行数; > 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最新行。使用前请阅读 maxdelay 说明!
options (版本4.0和版本4.4.7后; mtime-reread, 和mtime-noreread选项 ) - 日志文件轮换类型和其他选项。可能的值:
rotate (默认),
copytruncate - 注意的是 copytruncate 不能和 maxdelay一起使用,在这种情况下 maxdelay 必须为0或未指定; 参阅 copytruncate 文档。
mtime-reread - 非唯一记录,如果修改时间或大小更改则重新读取(默认),
mtime-noreread -非唯一记录,仅在大小更改时重新读取 (忽略修改时间更改)。
persistent_dir (从 5.0.18, 5.4.9版本开始,仅在Unix系统 zabbix_agentd中; 不支持 Agent2) - 存储持久文件的目录的绝对路径名。另请参阅有关 持久文件的附加说明。
该监控项必须配置为 主动检查.
日志轮换基于文件的最后修改时间。
<br请注意,logrt 旨在处理一个当前活动的日志文件,并轮换几个其他匹配的非活动文件。例如,如果一个目录有许多活动日志文件,则应为每个文件创建一个单独的 logrt 项。否则,如果一个 logrt 项获取太多文件,可能会导致内存耗尽和监控崩溃。

如果 output 留空 - 返回包含匹配文本的整行。请注意,除 'Result is TRUE' 之外的所有全局正则表达式类型始终返回整个匹配行,并且output 忽略该参数.

在代理上使用output参数进行内容提取。

例如:
=> logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] → 将匹配文件名如"logfile1"(不会匹配".logfile1")
=> logrt["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] → 将从文件名如 "logfile_abc_1" 或 "logfile__001"中采集数据

使用 output 参数 从日志记录中提取数字:
=> logrt[/app1/^test.*log$,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] →将匹配一条日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 并发送 '6080' 到服务端。 因为发送的数值, 所以此监控项 "信息类型" 可以设置为 "数字 (无符号)" 这个值可以用于图形,触发器等。

使用 output 参数可以在发送到服务端前重写日志记录:
=> logrt[/app1/^test.*log$,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] → 将匹配一条日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 并发送修改记录到服务端 "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" 。

另请参阅 日志监控其他信息。
logrt.count[file_regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent_dir>]
轮换的监控日志文件中的匹配行数 整型 file_regexp - 文件绝对路径和正则 表达式 所需匹配的文件名模式
regexp - 正则 表达式 所需的内容匹配模式
encoding - 编码 标识符
maxproclines - agent每秒分析新增的最大行数 (不能超过10000)。在 zabbix_agentd.conf中设置的默认值是10*'MaxLinesPerSecond'。
mode - 可能值:
all (默认), skip - 跳过旧数据的处理 (仅影响新创建的监控项).
maxdelay - 最大时延,以秒为单位。 类型: 浮点型。 值: 0 - (默认) 从不忽略日志文件行; > 0.0 - 以便在“maxdelay”秒内分析最新行。使用前请阅读maxdelay说明!
options (自版本 4.0和4.4.7后; mtime-rereadmtime-noreread 选项) - 日志文件轮换类型和其他选项, 可能的值:
rotate (默认),
copytruncate - 注意 copytruncate 不能与 maxdelay一起使用,这种情况下 maxdelay 必须为0或未指定; 参阅 copytruncate 说明,
mtime-reread - 非唯一记录, 如果修改时间或大小改变重新读 (默认),
mtime-noreread - 非唯一记录, 仅当大小改变时重新读 (忽略修改时间的改变)。
persistent_dir (自版本 5.0.18和 5.4.9后, 仅在Unix系统上的zabbix_agentd中;不支持 Agent2) - 存储持久文件的目录的绝对路径名。另请参阅有关持久文件附加说明。
该监控项必须配置为 主动检查.
日志轮换基于文件的最后修改时间。

另请参阅有关日志监控其他信息

此监控项不支持Windows事件日志

自Zabbix 3.2.0后开始支持
Modbus 数据
键值
描述 返回值 参数 注释
modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]
读取Modbus数据 JSON 对象 endpoint - 终端定义为 protocol://connection_string
slave id - 从机 ID
function - Modbus 函数
address - 第一个注册地址, 线圈或输入
count - 读取的记录数量
type - 数据类型
endianness - 字节序配置
offset - 寄存器数, 从 '地址'开始, 其结果将被丢弃。

参阅参数的详细描述
自 Zabbix 5.2.0后开始支持
网络数据
键值
描述 返回值 参数 注释
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
检查DNS服务是否启动 0 - DNS 已关闭 (服务器并没有响应或DNS解析失败)

1 - DNS 已启动
ip - DNS服务器IP地址 (默认DNS服务器上的IP留空,在Windows上忽略)
name -要查询的DNS名称
type - 要查询的记录类型 (默认为 SOA)
timeout (在Windows上忽略) -请求超时秒数 (默认是 1 秒)
count (在在Windows上忽略) -请求的尝试次数 (默认是 2)
protocol (自版本3.0后) - 用于执行 DNS 查询的协议: udp (默认) 或 tcp
例如:
=> net.dns[8.8.8.8,example.com,MX,2,1]

可能的值 type 是:
ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (Windows除外), HINFO, MINFO, TXT, SRV

不支持国际化域名,请改用 IDNA 编码名称。

从 Zabbix 1.8.6 (Unix) 和 2.0.0 (Windows) 开始支持 SRV 记录类型.

Zabbix 2.0 之前的命名(仍然支持): net.tcp.dns
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]
执行 DNS 查询。 具有所需信息类型的字符串 ip - DNS 服务器的 IP 地址(默认 DNS 服务器留空,在 Windows 上忽略)
name - 要查询的 DNS 名称
type - 要查询的记录类型(默认为 SOA)
timeout (在 Windows 上忽略) - 请求超时秒数 (默认是 1 秒)
count (在 Windows 上忽略) - 请求的尝试次数(默认是2)
protocol(自 3.0 版起) - 用于执行 DNS 查询的协议: udp (默认) 或 tcp
例如:
=> net.dns.record[8.8.8.8,example.com,MX,2,1]

可能的值 type 是:
ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (Windows除外), HINFO, MINFO, TXT, SRV

不支持国际化域名,请改用 IDNA 编码名称。

从 Zabbix 1.8.6 (Unix) 和 2.0.0 (Windows) 开始支持 SRV 记录类型。

Zabbix 2.0 之前的命名(仍然支持): net.tcp.dns.query
net.if.collisions[if]
Number of out-of-window collisions. 整型 if - 网络接口名称
net.if.discovery
网络接口列表.用于低级别的发现。 JSON 对象 自 Zabbix 2.0后支持

在 FreeBSD, OpenBSD 和 NetBSD 上从 Zabbix 2.2后开始支持

某些Windows版本 (如 Server 2008)可能需要安装最新更新以支持接口名称中的非ASCII 字符。
net.if.in[if,<mode>]
网络接口的传入流量统计 整型 if - 网络接口名称 (Unix); 网络接口完整描述或 IPv4 地址;或者,如果在大括号内,网络接口GUID(窗口)
mode - 可能的值:
bytes - 字节数 (默认)
packets - 包数
errors - 错误数
dropped - 丢弃的数据包数量
overruns (fifo) - FIFO 缓冲错误数
frame - 数据包帧错误数
compressed - 设备驱动程序发送或接收的压缩数据包数
multicast - 设备驱动程序接收的多播帧数
在Windows上, 该监控项从64位计数器中获取值(如果可用),Windows Vista 和 Windows Server 2008 中引入了 64 位接口统计计数器。如果 64 位计数器不可用,agent将使用 32 位计数器。

从 Zabbix 1.8.6 开始支持 Windows 上的多字节接口名称

例如:
=> net.if.in[eth0,errors]
=> net.if.in[eth0]

您可以使用 net.if.discovery 或 net.if.list 项获取 Windows 上的网络接口描述。

您可以将此键与预处理每秒更改步骤一起使用,以获取每秒字节数统计信息。
net.if.out[if,<mode>]
网络接口的传出流量统计 整型 if - 网络接口名称 (Unix); 网络接口完整描述或 IPv4 地址;或者,如果在大括号内,网络接口GUID(窗口)
mode - 可能的值:
bytes - 字节数 (默认)
packets -包数
errors - 错误数
dropped - 丢弃的包的数量
overruns (fifo) - FIFO 缓冲错误数
collisions (colls) - 接口上检测到的冲突数
carrier - 在设备驱动程序检测到的载体丢失数
compressed -设备驱动程序传输的压缩数据包数
在 Windows 上,该监控项从 64 位计数器中获取值(如果可用)。Windows Vista 和 Windows Server 2008 中引入了 64 位接口统计计数器。如果 64 位计数器不可用,agent将使用 32 位计数器。

从 Zabbix agent 1.8.6 版本开始支持 Windows 上的多字节接口名称。

例如:
=> net.if.out[eth0,errors]
=> net.if.out[eth0]

您可以使用 net.if.discovery 或 net.if.list 项获取 Windows 上的网络接口描述。

您可以将此键与预处理每秒更改步骤一起使用,以获取每秒字节数统计信息。
net.if.total[if,<mode>]
网络接口上传入和传出流量统计的总和。 整型 if - 网络接口名称 (Unix); 网络接口完整描述或 IPv4 地址;或者,如果在大括号内,网络接口GUID(窗口)
mode -可能值:
bytes - 字节数 (默认)
packets - 包数
errors - 错误数
dropped - 丢弃的数据包数量
overruns (fifo) - FIFO缓冲错误数
compressed - 设备驱动程序发送或接收的压缩数据包数
在 Windows 上,该监控项从 64 位计数器中获取值(如果可用)。Windows Vista 和 Windows Server 2008 中引入了 64 位接口统计计数器。如果 64 位计数器不可用,agent将使用 32 位计数器。

例如:
=> net.if.total[eth0,errors]
=> net.if.total[eth0]

Y您可以使用 net.if.discovery 或 net.if.list 项获取 Windows 上的网络接口描述。

可以将此键与预处理每秒更改步骤一起使用,以获取每秒字节数统计信息。

请注意,仅当 net.if.in 和 net.if.out 都在您平台上的丢弃数据包时,才支持丢弃数据包。
net.tcp.listen[port]
检查TCP端口是否处于监听状态 0 - 它不处于监听状态

1 - 它处于监听状态
port - TCP端口号 例如:
=> net.tcp.listen[80]

自 Zabbix 1.8.4后在Linux上支持

自 Zabbix 3.0.0后, 在 Linux 内核 2.6.14及以上,如果可能,从内核的 NETLINK 接口获取有关侦听 TCP 套接字的信息. 否则,将从 /proc/net/tcp 和 /proc/net/tcp6 文件中检索信息。
net.tcp.port[<ip>,port]
检查是否可以与指定端口建立 TCP 连接。 0 -不能连接

1 - 能连接
ip - IP 或 DNS 名称 (默认是 127.0.0.1)
port - 端口号
例如:
=> net.tcp.port[,80] → 可用于测试在端口80上运行Web 服务的可用性

对于简单的TCP性能测试,使用 net.tcp.service.perf[tcp,<ip>,<port>]

请注意,这些检查可能会导致增加系统守护程序日志文件中的额外信息(通常会记录SMTP和SSH会话)。
net.tcp.service[service,<ip>,<port>]
检查服务是否正在运行并接受 TCP 连接。 0 - 服务关闭

1 - 服务正在运行
service - 任意一个:
ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet (另见 详情)
ip - IP地址 (默认是 127.0.0.1)
port - 端口号 (默认为标准服务使用端口号)
例如:
=> net.tcp.service[ftp,,45] → 用于测试在tcp端口45上的FTP服务的可用性.

请注意,这些检查可能会导致系统守护程序日志文件中出现额外消息(SMTP 和 SSH 会话正在通常记录)。

目前不支持检查加密协议(如端口 993 上的 IMAP 或端口 995 上的 POP)。作为一种解决方法,请使用 net.tcp.port 进行此类检查。

仅 Zabbix agent 2 支持在 Windows 上检查 LDAP 和 HTTPS。

请注意,telnet 检查会查找登录提示(末尾为“:”)。

请你参阅已知问题用于检查HTTPS服务。

从Zabbix2.0后开始支持httpstelnet 服务。
net.tcp.service.perf[service,<ip>,<port>]
检查TCP服务的性能。 0 - 服务已关闭

seconds - 连接到服务花费的时间(秒)
service -以下任意一个:
ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet (见 详细)
ip - IP地址 (默认是 127.0.0.1)
port - 端口号 (默认为标准服务使用端口号)
例如:
=> net.tcp.service.perf[ssh] → 可用于测试来自 SSH 服务器的初始响应速度。

目前不支持检查加密协议(如端口 993 上的 IMAP 或端口 995 上的 POP)。作为一种解决方法,请使用 net.tcp.service.perf[tcp,<ip>,<port>] 进行此类检查。

仅 Zabbix 代理 2 支持在 Windows 上检查 LDAP 和 HTTPS。

请注意,telnet 检查会查找登录提示(末尾为“:”)。

请你参阅已知问题用于检查HTTPS服务。

从Zabbix2.0后开始支持httpstelnet 服务。
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回与参数匹配的套接字数 整型 laddr - 本地 IPv4/6 地址 或 CIDR 子网
lport - 本地的端口号或服务名称
raddr - 远程 IPv4/6 地址或CIDR子网
rport - 远程端口号或服务名称
state - 连接状态(established, syn_sent, syn_recv, fin_wait1, fin_wait2, time_wait, close, close_wait, last_ack, listen, closing)
Zabbix agent和Zabbix agent 2均在Linux上支持此项,64位 Windows在Zabbix agent 2上支持此项

例如:
=> net.tcp.socket.count[,80,,,established] →检查本地 TCP 端口 80 是否处于“已建立”状态

从 Zabbix 6.0后开始支持此项
net.udp.listen[port]
检查UDP端口是否处于监听状态 0 - 它不处于监听状态

1 -它处于监听状态
port - UDP端口号 例如:
=> net.udp.listen[68]

在Linux上自Zabbix 1.8.4后支持
net.udp.service[service,<ip>,<port>]
检查服务是否正在运行并响应 UDP 请求。 0 - 服务已关闭

1 - 服务正在运行
service - ntp (见 详情)
ip -IP地址 (默认是 127.0.0.1)
port - 端口号(默认为标准服务使用端口号)
例:
=> net.udp.service[ntp,,45] → 可用于测试 UDP 45 端口 NTP 服务的可用性。

Zabbix 3.0.0后开始支持此项, 但ntp 服务可用于以前版本的 net.tcp.service[]监控项中
net.udp.service.perf[service,<ip>,<port>]
检查UDP服务性能。 0 - 服务已关闭

seconds - 等待服务响应秒数
service - ntp (见 详情)
ip - IP地址 (默认是127.0.0.1)
port - 端口号 (默认为标准服务使用端口号)
例:
=> net.udp.service.perf[ntp] → 可用于测试来自 NTP 服务的响应时间。

自 Zabbix 3.0.0后开始支持该项,但 ntp 服务可用于以前版本的net.tcp.service[]监控项中
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回与参数匹配的 TCP 套接字数。 整型 laddr -本地IPv4/6地址或CIDR子网地址
lport -本地端口号或服务名称
raddr - 远程IPv4/6地址或CIDR子网
rport - 远程端口号或服务名称
state - 连接状态 (established, unconn)
Zabbix agent和Zabbix agent 2均在Linux上支持此项,64位 Windows在Zabbix agent 2上支持此项。

Example:
=> net.udp.socket.count[,,,,listening] → 检查是否有任何 UDP 套接字处于“监听”状态

从 Zabbix 6.0 开始支持此项
进程数据
键值
描述 返回值 参数 注释
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
进程CPU使用百分比. 浮点型 name -进程名 (默认是 all processes)
user - 用户名称 (默认是all users)
type -CPU使用率类型:
total (默认), user, system
cmdline - 可按命令行过滤(它是一个正则表达式)
mode - 数据搜集模式: avg1 (默认), avg5, avg15
zone - 目标区域: current (默认), all. 这个参数仅在Solaris平台上支持
例:
=> proc.cpu.util[,root] → 在root用户下运行的所有进程的CPU使用率
=> proc.cpu.util[zabbix_server,zabbix] →在zabbix用户下运行的所有 zabbix_server 进程的CPU使用率

T返回值基于单个 CPU 核心利用率百分比。例如,完全使用两个内核的进程的 CPU 利用率为 200%。

进程 CPU 利用率数据由支持最多 1024 个唯一(按名称、用户和命令行)查询的收集器收集。在过去 24 小时内未访问的查询将从收集器中删除。

请注意 将zone参数设置为current (或默认值)如果agent已在不支持区域的 Solaris 上编译,但在支持区域的较新 Solaris 上运行,则agent将返回 NOTSUPPORTED(agent不能将结果限制为仅当前区域)。但是,在这种情况下,all都支持。

自 Zabbix 3.0.0 起支持此键,并且可在多个平台上使用 (请参阅 平台支持的监控项)。
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
进程使用的内存(以字节为单位) 整型 - 当 modemax, min, sum

浮点数 - 当 modeavg
name -进程名 (默认是 all processes)
user - 用户名 (默认是 all users)
mode - 可能的值:
avg, max, min, sum (默认)
cmdline - 按命令行过滤(它是一个正则 表达式)
memtype - 进程使用的内存类型
例如:
=> proc.mem[,root] → 运行在root用户下的所有进程使用的内存
=> proc.mem[zabbix_server,zabbix] → 运行在zabbix用户下的所有zabbix_server进程使用的内存
=> proc.mem[,oracle,max,oracleZABBIX] → 在oracle用户下,包含有oracleZABBIX命令行运行的所有内存最多的内存

需要注意:当多个进程使用共享内存时,进程使用的内存总和可能会导致大到不切实际。

参考 说明 关于选择进程 namecmdline 参数 (指定为Linux).

当此监控项从命令行调用并包含命令行参数时 (例如 使用agent测试模式: zabbix_agentd -t proc.mem[,,,apache2]), 一个额外的进程将被计算在内,因为agent将计算自己。

从Zabbix3.0.0起, memtype 参数开始支持多个 平台
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
进程数量 整型 name - 进程名称 (默认为 all processes)
user - 用户名 (默认为 all users)
state (disktrace 选项从3.4.0起) - 可能值:
all (默认),
disk - 不间断睡眠,
run - 运行,
sleep - 可中断的睡眠,
trace - 停止,
zomb - 僵尸
cmdline - 按命令行过滤(它是一个正则表达式)
zone -目标区域: current (默认), all. 此参数仅在 Solaris 上受支持。
例如:
=> proc.num[,mysql] → 在mysql用户下运行的进程数
=> proc.num[apache2,www-data] → www-data 用户下运行的 apache2 进程数
=> proc.num[,oracle,sleep,oracleZABBIX] → 在oracleZABBIX命令行下的oracle用户运行的睡眠状态进程数

说明 关于选择进程 namecmdline 参数 (指定于Linux)。

在Windows上仅支持nameuser参数

当此监控项从命令行调用并包含命令行参数时 (例如 使用agent测试模式: zabbix_agentd -t proc.num[,,,apache2]), 一个额外的进程将被计算在内,因为agent将计算自己。

请注意 将zone参数设置为current (或默认值)如果agent已在不支持区域的 Solaris 上编译,但在支持区域的较新 Solaris 上运行,则agent将返回 NOTSUPPORTED(agent不能将结果限制为仅当前区域)。但是,在这种情况下,all都支持。
传感器数据
键值
描述 返回值 参数 注释
sensor[device,sensor,<mode>]
硬件传感器读数 浮点型 device - 设备名称
sensor - 传感器名称
mode - 可能的值:
avg, max, min (如果省略此参数,设备和传感器将逐字处理).
在linux2.4上读取 /proc/sys/dev/sensors

例如:
=> sensor[w83781d-i2c-0-2d,temp1]

在 Zabbix 1.8.4之前, sensor[temp1] 格式被使用。
在Linux2.6+上读取 /sys/class/hwmon

请参阅Linux sensor监控项中更详细的说明
读取OpenBSD上的 hw.sensors MIB

例如:
=> sensor[cpu0,temp0] → 一个CPU的温度
=> sensor["cpu[0-2]$",temp,avg] → 前三个CPU温度的平均值

自Zabbix 1.8.4后开始支持OpenBSD
系统数据
键值
描述 返回值 参数 注释
system.boottime
系统启动时间。 整型 (Unix时间戳)
system.cpu.discovery
检测到的CPU/CPUs的内核列表,用于底层自动发现。 JSON 对象 自2.4.0后,支持所有平台
system.cpu.intr
设备中断。 整型
system.cpu.load[<cpu>,<mode>]
CPU 负载. 浮点型 cpu - possible values:
all (default), percpu (从版本2.0开始; 总负载除以在线CPU数)
mode - 可能的值:
avg1 (一分钟的平均值,默认), avg5, avg15
Example:
=> system.cpu.load[,avg5].
system.cpu.num[<type>]
CPU数量。 整型 type - 可能的值:
online (default), max
Example:
=> system.cpu.num
system.cpu.switches
上下文切换次数。 整型
system.cpu.util[<cpu>,<type>,<mode>,<logical_or_physical>]
CPU 利用率百分比。 浮点型 cpu - <CPU number> or all (default)
type - 可能的值:
user (default), idle, nice, system (Windows默认), iowait, interrupt, softirq, steal, guest (Linux内核版本2.6.24及以上), guest_nice (Linux内核版本2.6.33及以上).
可在平台特性 查看更多此参数的细节。
mode - 可能的值:
avg1 (一分钟的平均值,默认), avg5, avg15
logical_or_physical (从5.0.3版本开始; 仅支持AIX) - 可能的值: logical (默认), physical. 此参数仅支持AIX。
Example:
=> system.cpu.util[0,user,avg5]

曾用名: system.cpu.idleX, system.cpu.niceX, system.cpu.systemX, system.cpu.userX
system.hostname[<type>, <transform>]
系统主机名 字符串 type (在版本5.4.7前仅支持Windows) - 可能的值: netbios (Windows默认), host (Linux默认), shorthost (从5.4.7版本开始; 返回第一个"."前的主机名或在没有"."时返回完整的主机名).
transform (从5.4.7版本开始) - 可能的值:
none (默认), lower (转换到小写)
这个值通过Windows的函数 GetComputerName() (netbios)或者gethostname() (host) 和其他操作系统的 "hostname" 命令获取。

返回值示例:
在Linux上:
=> system.hostname → linux-w7x1
=> system.hostname → example.com
=> system.hostname[shorthost] → example
on Windows:
=> system.hostname → WIN-SERV2008-I6
=> system.hostname[host] → Win-Serv2008-I6LonG
=> system.hostname[host,lower] → win-serv2008-i6long

可查看更详细的描述.
system.hw.chassis[<info>]
板卡信息。 字符串 info - one of full (默认), model, serial, type or vendor Example: system.hw.chassis[full]
Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop]

这个键依赖于SMBIOS 表的可用性。
会尝试从sysfs读取DMI表, 如果访问sysfs 失败,会尝试直接读取内存。

需要Root权限因为这个值是通过读取 sysfs 或 memory 获得的。

从Zabbix 2.0开始支持。
system.hw.cpu[<cpu>,<info>]
CPU 信息。 字符串或整型 cpu - <CPU number> or all (默认)
info - 可能的值:
full (默认), curfreq, maxfreq, model or vendor
Example:
=> system.hw.cpu[0,vendor] → AuthenticAMD

从/proc/cpuinfo 和 /sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq 获取信息。

如果设置了CPU数和 curfreqmaxfreq,会返回数字值(Hz)。

从Zabbix 2.0开始支持。
system.hw.devices[<type>]
PCI或USB设备列表。 文本 type (从版本2.0开始) - pci (默认) or usb Example:
=> system.hw.devices[pci] → 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
[..]

返回lspci或lsusb程序的结果(不带参数执行)。
system.hw.macaddr[<interface>,<format>]
MAC地址列表。 字符串 interface - all (默认)或 正则表达式
format - full (默认) 或 short
列出接口名称匹配接口正则表达式的MAC地址列表(all 列出所有接口).

示例:
=> system.hw.macaddr["eth0$",full] → [eth0] 00:11:22:33:44:55

If 如果format被设为short,接口名称和重复的MAC地址将不会列出。

从Zabbix 2.0开始支持。
system.localtime[<type>]
系统时间。 整型 - typeutc

字符串 - typelocal
type (从版本2.0开始) - 可能的值:
utc - (默认)从 (00:00:00 UTC, January 1, 1970) 开始计算的时间, 单位是秒。
local - 格式为'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm'的时间
只能用于被动检查

示例:
=> system.localtime[local] → 用这个键创建一个监控项用于在Clock 仪表盘组件展示主机时间。
system.run[command,<mode>]
在主机上运行特定的命令。 命令的文本结果

1 - modenowait时(无论命令结果如何)
command - 待执行的命令
mode - 可能的值:
wait - 等待执行结束(默认),
nowait - 不等待
包括被截取的空白符,最大可以返回512KB的数据。
命令的输出必须是文本才能正常处理。

示例:
=> system.run[ls -l /] → 根目录的详细文件列表。

Note: system.run监控项默认被禁用。在启用监控项学习如何启用。

这个监控项的返回值是命令产生的标准输出和标准错误,未检查退出码。

从 Zabbix 2.4.0 开始允许空结果。
也可查看命令执行
system.stat[resource,<type>]
系统统计数据。 整型或浮点型 ent - 该区域可获取的处理器单元数量(浮点型)
kthr,<type> - 关于内核线程状态的信息:
r - 可运行的内核线程的平均数(浮点型)
b - 虚拟内存管理器等待队列中内核线程的平均数(浮点型)
memory,<type> - 虚拟和实际内存的使用信息:
avm - 活跃的虚拟页 (整型)
fre - 可用列表的大小 (整型)
page,<type> - 页错误和分页活动的信息:
fi - 每秒文件入页(浮点型)
fo - 每秒文件出页 (浮点型)
pi - 从分页空间入页(浮点型)
po - 向分页空间出页(浮点型)
fr - 页释放(页替换)(浮点型)
sr - 通过页替换算法扫描到的页(浮点型)
faults,<type> - 陷阱和中断率:
in - 设备中断(浮点型)
sy - 系统调用(浮点型)
cs - 内核线程上下文切换 (浮点型)
cpu,<type> - 处理器时间的分类百分比:
us - 用户时间(浮点型)
sy - 系统时间(浮点型)
id - 空闲时间(浮点型)
wa - 系统在磁盘或网络文件系统I/O请求多时的空闲时间(浮点型)
pc - 物理处理器消耗的时间(浮点型)
ec - 标称计算能力的消耗的百分比(浮点型)
lbusy - 在用户级和系统级运行时,逻辑处理器的使用百分比 (浮点型)
app - 共享池中可用物理处理器数量(浮点型)
disk,<type> - 磁盘统计信息:
bps - 磁盘驱动器传输的数据量,单位是字节/秒(整型)
tps - 发送给物理磁盘/磁带的每秒传输次数(浮点型),从Zabbix 1.8.1开始,此监控项仅被AIX支持
请注意这些监控项的以下限制:
=> system.stat[cpu,app] - 仅支持"Shared"类型的AIX LPAR
=> system.stat[cpu,ec] - 仅支持"Shared"和"Dedicated"类型的AIX LPAR("Dedicated"一直返回100(百分比))
=> system.stat[cpu,lbusy] - 仅支持"Shared"类型的AIX LPAR
=> system.stat[cpu,pc] - 仅支持"Shared"和"Dedicated"类型的AIX LPAR
=> system.stat[ent] - 仅支持"Shared"和"Dedicated"类型的AIX LPAR
system.sw.arch
软件架构信息。 字符串 示例:
=> system.sw.arch → i686

通过uname()函数获取信息。

从Zabbix 2.0开始支持。
system.sw.os[<info>]
操作系统信息。 字符串 info - 可能的值:
full (默认), short or name
示例:
=> system.sw.os[short]→ Ubuntu 2.6.35-28.50-generic 2.6.35.11

信息通过以下方式(请注意并非所有发行版本都存在所有文件和选项)获取:
/proc/version (full)
/proc/version_signature (short)
PRETTY_NAME 参数在支持的系统从/etc/os-release获取,或/etc/issue.net (name)

从Zabbix 2.0开始支持。
system.sw.packages[<package>,<manager>,<format>]
已安装的包列表。 文本 package - all (默认) 或正则表达式
manager - all (默认)或包管理器
format - full (默认)或short
按首字母顺序,列出匹配package正则表达式的已安装的包名 (all 列出全部).

示例:
=> system.sw.packages[mini,dpkg,short] → python-minimal, python2.6-minimal, ubuntu-minimal

支持的包管理器(执行的命令):
dpkg (dpkg --get-selections)
pkgtool (ls /var/log/packages)
rpm (rpm -qa)
pacman (pacman -Q)

如果format设为full,包按照包管理器分组(每个包管理器在单独的行,开头是方括号中的包管理器名称)。
如果format设为short,包不会分组,会列在一行中。

从Zabbix 2.0开始支持。
system.swap.in[<device>,<type>]
交换入(从设备到内存)统计 整型 device - 用于交换的设备(默认是all
type - 可能的值:
count (交换入的数量), sectors (交换入的分区), pages (交换入的页).
也可在平台特性查看此参数的详情。
示例:
=> system.swap.in[,pages]

此信息的来源是:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)
system.swap.out[<device>,<type>]
交换出(从内存到设备)统计。 整型 device - 用于交换的设备(默认是all
type - 可能的值:
count (交换出的数量), sectors (交换出的分区), pages (交换出的页)。
也可在平台特性查看此参数的详情。
示例:
=> system.swap.out[,pages]

此信息的来源是:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)
system.swap.size[<device>,<type>]
交换区空间大小,字节数或总量的百分比。 整型 - 字节数的类型

浮点型 - 百分比的类型
device - 用于交换的设备(默认是all)
type - 可能的值:
free (空闲交换空间,默认), pfree (空闲交换空间的百分比), pused (已用交换空间的百分比), total (总交换空间), used (已用交换空间)
请注意 pfree, pused 在交换空间为0时不支持Windows。
也可在平台特性查看此参数的详情。
示例:
=> system.swap.size[,pfree] → 空闲交换空间的百分比

如果未设置device的值,Zabbix agent仅会考虑账户交换设备(文件),忽略物理内存。比如,在 Solaris 系统 swap -s 命令包括物理内存的一部分以及交换设备(不同于swap -l)。

请注意此键在虚拟化(VMware ESXi, VirtualBox)Windows平台可能报告错误的交换空间大小/百分比。在这种情况下你可使用perf_counter[\700(_Total)\702]键来获取正确的交换空间百分比。
system.uname
系统标识 字符串 返回值实例(Unix):
FreeBSD localhost 4.2-RELEASE FreeBSD 4.2-RELEASE #0: Mon Nov i386

返回值实例(Windows):
Windows ZABBIX-WIN 6.0.6001 Microsoft® Windows Server® 2008 Standard Service Pack 1 x86

在 Unix,从 Zabbix 2.2.0 开始,此值通过uname()系统调用获取,在此之前通过调用"uname -a"获取。此监控项的值可能和"uname -a"的输出不同,并且不包括"uname -a"打印的从其他来源获取的额外信息。

在 Windows 系统,从 Zabbix 3.0 开始,此值通过 Win32_OperatingSystem 和 Win32_Processor WMI 类获取。在此之前通过不稳定的 Windows APIs 和无稳定的注册表键获取。OS名(包括版本)可能被翻译到了用户的显示语言。在 Windows 的某些版本,OS 名包括商标符号和额外的空格。

请注意在Windows,此监控项返回 OS 架构,而在 Unix 返回 CPU 架构。
system.uptime
系统运行时间,单位是秒。 整型 监控项配置中,使用 s or uptime 单位获取可读的值。
system.users.num
登录用户数 整型 who 命令是用于在agent处获取值的。
虚拟文件系统数据
键值
描述 返回值 参数 注释
vfs.dev.discovery
块设备和类型的列表,用于底层自动发现。 JSON 对象 此监控项仅支持Linux平台。

从 Zabbix 4.4.0 开始支持。
vfs.dev.read[<device>,<type>,<mode>]
磁盘读取统计信息。 整型 - 当typesectors, operations, bytes 中时

浮点型 - 当typesps, ops, bps 中时

注意: 如果更新间隔在3小时及以上时2, 会一直返回 '0'
device - 磁盘设备(默认是 all 3
type - 可能的值: sectors, operations, bytes, sps, ops, bps
请注意'type'在各平台的支持和默认情况,在平台特性查看详情。
sps, ops, bps 分别代表: sectors, operations, bytes 每秒的值。
mode - 可能的值: avg1 (一分钟的平均值,默认), avg5, avg15.
此参数仅支持type 在 sps, ops, bps中的情况。
你也可使用相关设备名称(如sda)加 /dev/ 前缀(如/dev/sda)。

支持 LVM 逻辑卷。

不同操作系统的'type'默认值:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes

示例:
=> vfs.dev.read[,operations]

sps, ops and bps 在支持的平台曾经支持8个设备(7个单独的和一个all)。从 Zabbix 2.0.1 开始这个限制是1024个设备(1023个单独的和一个all)。
vfs.dev.write[<device>,<type>,<mode>]
磁盘写入统计信息。 整型 - 当typesectors, operations, bytes 中时

浮点型 - 当typesps, ops, bps 中时

注意: 如果更新间隔在3小时及以上时2, 会一直返回 '0'
device - 磁盘设备(默认是 all 3
type - 可能的值: sectors, operations, bytes, sps, ops, bps
请注意'type'在各平台的支持和默认情况,在平台特性查看详情。
sps, ops, bps 分别代表: sectors, operations, bytes 每秒的值。
mode - 可能的值: avg1 (一分钟的平均值,默认), avg5, avg15.
此参数仅支持type 在 sps, ops, bps中的情况。
你也可使用相关设备名称(如sda)加 /dev/ 前缀(如/dev/sda)。

支持 LVM 逻辑卷。

不同操作系统的'type'默认值:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes

示例:
=> vfs.dev.read[,operations]

sps, ops and bps 在支持的平台曾经支持8个设备(7个单独的和一个all)。从 Zabbix 2.0.1 开始这个限制是1024个设备(1023个单独的和一个all)。
vfs.dir.count[dir,<regex_incl>,<regex_excl>,<types_incl>,<types_excl>,<max_depth>,<min_size>,<max_size>,<min_age>,<max_age>,<regex_excl_dir>]
目录条目计数。 整型 dir - 目录的绝对路径
regex_incl - 描述包含的 (文件, 目录, 符号链接 )的名称模式的正则 表达式 ;如果为空,则包含所有 (默认值)
regex_excl - 描述了排除 (文件, 目录, 符号链接) 的名称模式正则 表达式 ; 如果为空,不排除任何实体 (默认)
types_incl - 要计数的目录条目类型, 可能的值:
file - 常规文件, dir - 子目录, sym - 符号链接, sock - 套接字, bdev - 块设备, cdev - 字符设备, fifo - FIFO, dev - "bdev,cdev"同义词, all - 所有类型 (默认), 即 "file,dir,sym,sock,bdev,cdev,fifo".多种类型时需在双引号中用逗号隔开。
types_excl - 不需要计数的目录条目类型 (见 <types_incl>)。 如果某些条目类型同时位于 <types_incl> 和 <types_excl>中, 则不计算此类型的目录条目。
max_depth - 遍历的子目录最大深度 -1 (默认) - 无限制, 0 -不涉及子目录。
min_size -要计数文件的最小大小(以字节为单位)。 小于此的文件不会被计算在内,内存后缀 可以被使用。
max_size - 要计数文件的最大大小(以字节为单位),大于此的文件将不会被计算在内。 内存后缀 可以被使用
min_age - 要计数的目录条目最小创建时间(以秒为单位)。最新的条目不进行计数。 时间后缀 可以被使用。
max_age - 要计数的目录条目最大创建时间(以秒为单位)。 比此旧的条目将不被计算在内 (修改时间)。 时间后缀 can 可以被使用.
regex_excl_dir - 描述要排除的目录的名称模式的正则表达式,目录的所有内容都将被排除 (与 regex_excl相比)
不支持的环境变量, 如 %APP_HOME%, $HOME 和 %TEMP% 。

伪目录 "." 和 ".." 不会被计算在内。

目录遍历不会跟踪符号链接。

在Windows上, 目录符号链接被跳过,硬链接只计算一次。

在计算条目大小时, regex_inclregex_excl 都被应用于文件和目录, 但在选择要遍历的子目录时被忽略 (如果 regex_incl 是 “(?i)^.+\.zip$” 并且 max_depth 未设置, 那么所有子目录都将是遍历,但只会计算 zip 类型的文件)。

执行时间受限于代理 配置 (3秒)的默认时间设置,由于大目录遍历可能需要更长的时间,因此不会返回任何数据并且该监控项项将变为不受支持。 部分计数将不予返回

当按照大小过滤时,只有常规文件的大小具有意义,在Linux和BSD下 ,目录也有非零大小 (通常只有几KB)。设备大小为0 如 /dev/sda1的大小不反映相应分区的大小。因此,在使用 <min_size><max_size>, 建议指定 <types_incl> 为 "file",防止出现意外。

例如:
⇒ vfs.dir.count[/dev] - 监控 /dev (Linux)中的设备数量
⇒ vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] - 监控临时目录下的文件数量 (Windows)

自 Zabbix 4.0.0后支持。
vfs.dir.get[dir,<regex_incl>,<regex_excl>,<types_incl>,<types_excl>,<max_depth>,<min_size>,<max_size>,<min_age>,<max_age>,<regex_excl_dir>]
目录条目列表 JSON dir - 目录的绝对路径
regex_incl - 描述包含的 (文件, 目录, 符号链接 )的名称模式的正则 表达式 ;如果为空,则包含所有 (默认值)
regex_excl - 描述了排除 (文件, 目录, 符号链接) 的名称模式正则 表达式 ; 如果为空,不排除任何实体 (默认)
types_incl - 要计数的目录条目类型, 可能的值:
file - 常规文件, dir - 子目录, sym - 符号链接, sock - 套接字, bdev - 块设备, cdev - 字符设备, fifo - FIFO, dev - "bdev,cdev"同义词, all - 所有类型 (默认), 即 "file,dir,sym,sock,bdev,cdev,fifo".多种类型时需在双引号中用逗号隔开。
types_excl - 不需要计数的目录条目类型 (见 <types_incl>)。 如果某些条目类型同时位于 <types_incl> 和 <types_excl>中, 则不计算此类型的目录条目。
max_depth - 遍历的子目录最大深度 -1 (默认) - 无限制, 0 -不涉及子目录。
min_size -要计数文件的最小大小(以字节为单位)。 小于此的文件不会被计算在内,内存后缀 可以被使用。
max_size - 要计数文件的最大大小(以字节为单位),大于此的文件将不会被计算在内。 内存后缀 可以被使用
min_age - 要计数的目录条目最小创建时间(以秒为单位)。最新的条目不进行计数。 时间后缀 可以被使用。
max_age - 要计数的目录条目最大创建时间(以秒为单位)。 比此旧的条目将不被计算在内 (修改时间)。 时间后缀 can 可以被使用.
regex_excl_dir - 描述要排除的目录的名称模式的正则表达式,目录的所有内容都将被排除 (与 regex_excl相比)
不支持的环境变量, 如 %APP_HOME%, $HOME 和 %TEMP% 。

伪目录 "." 和 ".." 不会被计算在内。

目录遍历不会跟踪符号链接。

在Windows上, 目录符号链接被跳过,硬链接只计算一次。

在计算条目大小时, regex_inclregex_excl 都被应用于文件和目录, 但在选择要遍历的子目录时被忽略 (如果 regex_incl 是 “(?i)^.+\.zip$” 并且 max_depth 未设置, 那么所有子目录都将是遍历,但只会计算 zip 类型的文件)。

执行时间受限于代理 配置 (3秒)的默认时间设置,由于大目录遍历可能需要更长的时间,因此不会返回任何数据并且该监控项项将变为不受支持。 部分计数将不予返回

当按照大小过滤时,只有常规文件的大小具有意义,在Linux和BSD下 ,目录也有非零大小 (通常只有几KB)。设备大小为0 如 /dev/sda1的大小不反映相应分区的大小。因此,在使用 <min_size><max_size>, 建议指定 <types_incl> 为 "file",防止出现意外。

例如:
⇒ vfs.dir.count[/dev] - 监控 /dev (Linux)中的设备数量
⇒ vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] - 监控临时目录下的文件数量 (Windows)

自 Zabbix 6.0.0后支持。
vfs.dir.size[dir,<regex_incl>,<regex_excl>,<mode>,<max_depth>,<regex_excl_dir>]
目录大小(以字节为单位). 整型 dir - 目录的绝对路径
regex_incl - 描述包含的 (文件, 目录, 符号链接 )的名称模式的正则 表达式 ;如果为空,则包含所有 (默认值)
regex_excl - 描述了排除 (文件, 目录, 符号链接) 的名称模式正则 表达式 ; 如果为空,不排除任何实体 (默认)
mode - 可能的值:
apparent (默认) - 获取明确文件大小而不是磁盘使用情况( du -sb dir), disk - 获取磁盘使用情况 ( du -s -B1 dir)。与du 命令不同, vfs.dir.size 监控项在计算目录大小会考虑隐藏文件 (du -sb .[^.]* * 在目录中起作用).
max_depth -目录遍历的最大深度。 -1 (默认) - 无限制, 0 -不下钻到子目录
regex_excl_dir - 描述要排除的目录的名称模式的正则表达式,目录的所有内容都将被排除 (与 regex_excl相比)
只计算 zabbix 用户至少可读权限的目录

在Windows上任何软链接被跳过,硬链接只计算一次

对于大型目录或慢速驱动器,此监控项可能会根据 agentserver/proxy 配置文件中的超时设置而超时,可以根据需要设置超时值。

示例:
⇒ vfs.dir.size[/tmp,log] - 计算 /tmp目录中包含 'log'的所有文件大小;
⇒ vfs.dir.size[/tmp,log,^.+\.old$] -计算 /tmp目录中包含'log'的所有文件大小,排除文件中包含'.old'的文件。

文件大小限制取决于 大文件支持

自Zabbix 3.4.0后开始支持
vfs.file.cksum[file,<mode>]
文件校验和,由 UNIX cksum 算法计算得出。 整型 -mode 作为 crc32

字符串 - mode 作为 md5, sha256
file - 文件模式的全路径
mode - crc32 (默认), md5, sha256
示例:
=> vfs.file.cksum[/etc/passwd]

返回值示例 (分别为crc32/md5/sha256):
675436101
9845acf68b73991eb7fd7ee0ded23c44
ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc

文件大小限制取决于大文件支持

自 Zabbix 6.0后开始支持mode 参数
vfs.file.contents[file,<encoding>]
检索文件的内容。 文本 file - 文件的全路径
encoding - 编码 标识符
如果文件为空或仅包含 LF/CR 字符,则返回空字符串。

字节顺序标记 (BOM) 从输出中排除。

示例:
=> vfs.file.contents[/etc/passwd]

此监控项仅限于不大于 64 KB 的文件。

从Zabbix 2.0开始支持。
vfs.file.exists[file,<types_incl>,<types_excl>]
检查文件是否存在。 0 -没有找到

1 - 指定文件类型存在
file - 文件的完整路径。
types_incl - 包含的文件类型列表, 可能的值: file (常规文件,默认 (如果 types_excl未设置)), dir (目录), sym (符号链接), sock (套接字), bdev (块设备), cdev (字符设备), fifo (FIFO), dev (与 "bdev,cdev"同义), all (所有提到的类型,默认为如果 types_excl设置的值)。
types_excl - 排除的文件类型列表, 参阅 types_incl 获取可能的值 (默认情况下不排除任何类型)
多个类型必须用逗号分隔,整个集合用 引号""括起来.
在Windows上,当使用命令行调用zabbix_get.exe或agent2时,双引号必须用反斜杠 '\' 转义,并且整个项目键用双引号括起来。

如果 <types_incl> 和 <types_excl>中的类型相同,则排除此类型的文件

例如:
=> vfs.file.exists[/tmp/application.pid]
=> vfs.file.exists[/tmp/application.pid,"file,dir,sym"]
=> vfs.file.exists[/tmp/application_dir,dir]

文件大小取决于大文件支持

请注意,如果在不存在的目录中搜索目录,例如vfs.file.exists[C:\no\dir,dir] (其中不存在 'no')则该监控项可能会在Windows上变为不受支持
vfs.file.get[file]
返回有关文件的信息。 JSON 对象 file - 文件的全路径 类 UNIX 系统上支持的文件类型: 常规文件、目录、 符号链接、套接字、块设备、字符设备、FIFO

Windows 上支持的文件类型:常规文件、目录、符号链接

示例:
=> vfs.file.get[/etc/passwd] → 返回一个 JSON,其中包含有关 /etc/passwd 文件的信息(类型、用户、权限、SID、uid 等)

自Zabbix 6.0后开始支持
vfs.file.md5sum[file]
文件的MD5校验和。 字符串 (MD5的哈希文件) file - 文件的全路径 示例:
=> vfs.file.md5sum[/usr/local/etc/zabbix_agentd.conf]

示例的返回值:
b5052decb577e0fffd622d6ddc017e82

版本 1.8.6 中删除了此项目的文件大小限制 (64 MB)。

文件大小限制取决于 大文件支持
vfs.file.owner[file,<ownertype>,<resulttype>]
检索文件的所有者 字符串 file - 文件的全路径
ownertype - user (默认) 或 group (仅Unix)
resulttype - name (默认) 或 id; 对于id - 在Unix上返回 uid/gid,Windows上返回SID
示例:
=> vfs.file.owner[/tmp/zabbix_server.log] → 返回/tmp/zabbix_server.log文件所有者
=> vfs.file.owner[/tmp/zabbix_server.log,,id] → 返回 /tmp/zabbix_server.log文件所有者id

自Zabbix 6.0后开始支持。
vfs.file.permissions[file]
返回一个 4 位字符串,其中包含具有 Unix 权限的八进制数。 字符串 file - 文件的全路径 在Windows上不支持

示例:
=> vfs.file.permissions[/etc/passwd] →返回/etc/passwd的文件权限, 例如, '0644'

自Zabbix 6.0后开始支持
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
在文件中查找字符串。 包含匹配字符串的行,或由可选 output 参数指定的行 file - 文件的全路径
regexp - 描述所需模式编码的正则表达式
encoding - 编码标识符
start line - 要搜索的第一行(默认为文件的第一行).
end line - 要搜索的最后一行的编号(默认为文件的最后一行)。
output - 可选的输出格式模板 \0 转义序列被替换为匹配的文本部分(从匹配开始的第一个字符到匹配结束的字符) 而 \N (其中 N=1...9) 转义序列被替换为第N个匹配组 (如果N超过捕获组的数量,则为空字符串)。
仅返回第一个匹配行。
如果没有行匹配表达式,则返回一个空字符串。

字节顺序标记 (BOM) 从输出中排除。

使用该参数的内容提取output发生在代理上。

从2.2版本开始支持 start line, end line and output 参数。

例如:
=> vfs.file.regexp[/etc/passwd,zabbix]
=> vfs.file.regexp[/path/to/some/file,"([0-9]+)$",,3,5,\1]
=> vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1] → 获取 zabbix用户ID
vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>]
在文件中查找字符串。 0 - 未找到匹配

1 - 找到
file - 文件全路径
regexp - 描述所需模式编码的正则表达式
encoding - 编码标识符
start line - 要搜索的第一行(默认为文件的第一行).
end line - 要搜索的最后一行的编号(默认为文件的最后一行)。
字节顺序标记 (BOM) 被忽略。

从2.2开始支持 start lineend line参数。

示例:
=> vfs.file.regmatch[/var/log/app.log,error]
vfs.file.size[file,<mode>]
文件大小 (以字节为单位). 整型 file - 文件全路径
mode - 可能的值:
bytes (默认) 或 lines (也计算空行)
该文件必须对用户zabbix具有读取权限。

示例:
=> vfs.file.size[/var/log/syslog]

文件大小限制取决于大文件支持

自Zabbix6.0起支持 mode参数。
vfs.file.time[file,<mode>]
文件时间信息。 整型 (Unix 时间戳) file - 文件全路径
mode - 可能的值:
modify (默认) - 最后修改文件内容的时间
access - 最后读文件的时间。
change - 最后更改文件属性的时间。
示例:
=> vfs.file.time[/etc/passwd,modify]

文件大小限制取决于 大文件支持.
vfs.fs.discovery
已安装文件系统及其类型的列表。用于底层自动发现. JSON 对象 从Zabbix 2.0开始支持。

自Zabbix3.0起,Windows支持{#FSDRIVETYPE}宏。

自Zabbix6.0起,Windows支持 {#FSLABEL}宏。
vfs.fs.get
挂载的文件系统列表、它们的类型、磁盘空间和 inode 统计信息。可用于底层自动发现. JSON 对象 自Zabbix 4.4.5后开始支持。

自Zabbix 6.0 起,Windows上支持 {#FSLABEL}宏
vfs.fs.inode[fs,<mode>]
inode数量或百分比 整型 - 表示数量

浮点型 - 用于百分比
fs - 文件系统
mode - 可能的值:
total (默认), free, used, //pfree // (空闲, 百分比), pused (使用, 百分比)
示例:
=> vfs.fs.inode[/,pfree]
vfs.fs.size[fs,<mode>]
磁盘空间(以字节为单位)或占总数的百分比。 整型 - 字节

浮点型 - 百分比
fs - 文件系统
mode - 可能的值:
total (默认), free, used, pfree (空闲, 百分比), pused (使用, 百分比)
如果是已挂载的卷,则返回本地文件系统的磁盘空间。

示例:
=> vfs.fs.size[/tmp,free]

当使用 free 模式时,文件系统的保留空间不考虑在内.
虚拟机数据
键值
描述 返回值 参数 注释
vm.memory.size[<mode>]
内存大小(以字节为单位)或占总数的百分比。 整型 - 字节

浮点型 -百分比
mode - 可能的值:
total (默认), active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired, used, pused (used, percentage), available, pavailable (available, percentage)
参阅平台特性 支持和此参数的 其他详细信息
此监控项接受三类参数:

1) total - 内存总量;
2) 特定于平台的内存类型: active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired;
3) 用户级估计有多少内存已使用和可用: used, pused, available, pavailable
网页监控数据
键值
描述 返回值 参数 注释
web.page.get[host,<path>,<port>]
获取网页内容。 作为文本的网页源(包括标题) host - 主机名或URL (如 scheme://host:port/path, 只有 host是强制的).
允许的URL方案: http, https4. 缺少的方案将被使用 http。如果URL 指定了 pathport必须为空。 连接服务需要验证时需指定用户名和密码,示例: http://user:[email protected] 只有curl4才有可能。
主机名支持Punycode。
path - HTML文档路径(默认为 /)
port - 端口号(默认是 http 80)
如果指定的资源在 host中不存在或不可用,则此监控项将不受支持。

host 可以是主机名、域名、IPv4 或 IPv6 地址。但是对于 IPv6 地址,Zabbix agent必须在启用 IPv6 支持的情况下编译。

示例:
=> web.page.get[www.example.com,index.php,80]
=> web.page.get[https://www.example.com]
=> web.page.get[https://blog.example.com/?s=zabbix]
=> web.page.get[localhost:80]
=> web.page.get["[::1]/server-status"]
web.page.perf[host,<path>,<port>]
整个网页的加载时间(以秒为单位)。 浮点型 host - 主机名或URL (如 scheme://host:port/path, 只有 host是强制的).
允许的URL方案: http, https4. 缺少的方案将被使用 http。如果URL 指定了 pathport必须为空。 连接服务需要验证时需指定用户名和密码,示例: http://user:[email protected] 只有curl4才有可能。
主机名支持Punycode。
path - HTML文档路径(默认为 /)
port - 端口号(默认是 http 80)
如果指定的资源在 host中不存在或不可用,则此监控项将不受支持。

host 可以是主机名、域名、IPv4 或 IPv6 地址。但是对于 IPv6 地址,Zabbix agent必须在启用 IPv6 支持的情况下编译。

示例:
=> web.page.perf[www.example.com,index.php,80]
=> web.page.perf[https://www.example.com]
web.page.regexp[host,<path>,<port>,regexp,<length>,<output>]
在网页上查找字符串。 匹配的字符串, 或由可选output参数指定。 host - 主机名或URL (如 scheme://host:port/path, 只有 host是强制的).
允许的URL方案: http, https4. 缺少的方案将被使用 http。如果URL 指定了 pathport必须为空。 连接服务需要验证时需指定用户名和密码,示例: http://user:[email protected] 只有curl4才有可能。
主机名支持Punycode。
path - HTML文档路径(默认为 /)
port - 端口号(默认是 http 80)
regexp - 描述了所需模式的正则 表达式
length -返回最大的字符数
output - 可选的输出格式模板, \0 转义序列被替换为文本的匹配部分 (从从匹配开始的第一个字符到匹配结束的字符) ,而 \N (其中 N=1...9) 转义序列被替换为第 N 个匹配组 (如果 N 超过捕获的组数,则为空字符串)。
如果指定的资源在 host中不存在或不可用,则此监控项将不受支持。

host 可以是主机名、域名、IPv4 或 IPv6 地址。但是对于 IPv6 地址,Zabbix agent必须在启用 IPv6 支持的情况下编译。

使用该参数的内容提取 output 发生在agent上。

从2.2版本开始支持 output参数。

示例:
=> web.page.regexp[www.example.com,index.php,80,OK,2]
=> web.page.regexp[https://www.example.com,,,OK,2]