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

1 Zabbix agent

概览

本节提供与使用 Zabbix agent 进行数据采集的监控项键值相关的详细信息。

Zabbix agent 支持被动和主动代理检查。在配置监控项时,您可以选择所需的类型:

  • Zabbix agent - 用于被动检查
  • Zabbix agent (active) - 用于主动检查

请注意,所有在 Windows 上由 Zabbix agent 支持的键值也同样被新一代的 Zabbix agent 2 支持。查看additional item keys,这些仅适用于 agent 2。

这些信息帮助您选择适合您需求的代理类型,并了解监控项键值在不同代理配置中的应用和支持情况。

支持的平台

除非在监控项详细信息中另有说明,代理程序项(及所有参数)支持以下平台:

  • Linux
  • FreeBSD
  • Solaris
  • HP-UX
  • AIX
  • Tru64
  • MacOS X
  • OpenBSD
  • NetBSD

许多代理程序项也支持 Windows。有关详细信息,请参阅Windows 代理程序项页面

监控项键值详情

没有尖括号的参数是必填的。带有尖括号 < > 的参数是可选的。

kernel.maxfiles


操作系统支持的最大打开文件数。
返回值:整数
支持的平台:Linux, FreeBSD, MacOS X, OpenBSD, NetBSD.

kernel.maxproc


操作系统支持的最大进程数。
返回值:整数
支持的平台:Linux 2.6及更高版本,FreeBSD,Solaris,MacOS X,OpenBSD,NetBSD。

kernel.openfiles


当前打开文件描述符的数量。
返回值:整数
支持的平台:Linux(该项可能在其他类UNIX平台上也可以工作)。

log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]


监控日志文件。
返回值:日志
参见支持的平台

参数:

  • file - 日志文件的完整路径和名称;
  • regexp - 描述所需模式的正则表达式;
  • encoding - 代码页标识符;
  • maxlines - 代理将每秒发送到Zabbix服务器或代理的最大新行数。此参数会覆盖zabbix_agentd.conf中的'MaxLinesPerSecond'值;
  • mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
  • output - 可选的输出格式化模板。\0转义序列将被匹配文本的匹配部分替换(从匹配开始的第一个字符到匹配结束的字符)。\N(其中N=1...9)转义序列将被第N个匹配组替换(如果N超过了捕获组的数量,则替换为空字符串);
  • maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
  • options - 附加选项:
    mtime-noreread - 非唯一记录,仅在文件大小更改时重新读取(忽略修改时间更改)。(自5.0.2版起,此参数已弃用,因为现在忽略了修改时间。)
  • persistent dir(仅在UNIX系统上的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files

备注:

  • 该项必须配置为主动检查
  • 如果文件丢失或权限不允许访问,则该项将变为不支持状态;
  • 如果output为空 - 将返回包含匹配文本的整行。请注意,除了'Result is TRUE'之外的所有全局正则表达式类型始终返回整个匹配行,而output参数将被忽略。
  • 使用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'到服务器。因为发送的是数字值,因此此项的"信息类型"可以设置为"Numeric (unsigned)",并且该值可以用于图形、触发器等。

使用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 - 代理将分析的每秒新行数的最大值(不能超过10000)。默认值是zabbix_agentd.conf中10倍的'MaxLinesPerSecond'值;
  • mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
  • maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
  • options - 附加选项:
    mtime-noreread - 非唯一记录,仅在文件大小更改时重新读取(忽略修改时间更改)。(自5.0.2版起,此参数已弃用,因为现在忽略了修改时间。)
  • persistent dir(仅在UNIX系统上的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files

备注:

  • 此项必须配置为主动检查
  • 匹配的行数是自代理上次检查日志以来的新行数,因此取决于项的更新间隔;
  • 如果文件丢失或权限不允许访问,则该项将变为不支持状态。
logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]


监控已轮换的日志文件。
返回值:Log
参见支持的平台

参数:

  • file regexp - 描述由正则表达式描述的文件的绝对路径和文件名。注意:只有文件名是正则表达式;
  • regexp - 描述所需内容模式的正则表达式;
  • encoding - 代码页标识符;
  • maxlines - 代理每秒发送到Zabbix server或proxy的最大新行数。此参数覆盖zabbix_agentd.conf中'MaxLinesPerSecond'的值;
  • mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
  • output - 可选的输出格式化模板。\0转义序列被替换为匹配文本的部分(从匹配开始的第一个字符到匹配结束的字符),而\N(其中N=1...9)转义序列被替换为第N个匹配组(如果N超出捕获组数,则替换为空字符串)。
  • maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
  • options - 日志文件轮换类型和其他选项。可能的值:
    rotate(默认),
    copytruncate - 请注意,copytruncate不能与maxdelay一起使用。在这种情况下,maxdelay必须为0或未指定;请参阅copytruncate注释,
    mtime-reread - 非唯一记录,如果修改时间或大小更改,则重新读取(默认),
    mtime-noreread - 非唯一记录,仅在大小更改时重新读取(忽略修改时间更改)。
  • persistent dir(仅在UNIX系统的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files

备注:

  • 此项必须配置为主动检查
  • 日志轮换基于文件的最后修改时间;
  • 请注意,logrt设计用于与一个当前活动日志文件一起工作,其中有几个其他匹配的非活动文件进行轮换。例如,如果一个目录中有许多活动日志文件,则应为每个文件创建单独的logrt项。否则,如果一个logrt项捕获了太多文件,可能会导致内存耗尽和监控崩溃。
  • 如果output为空 - 返回包含匹配文本的整行。请注意,除了“结果为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>]


监控已轮换的日志文件中匹配行的计数。
返回值:Integer
参见支持的平台

参数:

  • file regexp - 文件的绝对路径和描述文件名模式的正则表达式;
  • regexp - 描述所需模式的正则表达式;
  • encoding - 代码页标识符;
  • maxproclines - 代理每秒分析的最大新行数(不能超过10000)。默认值为zabbix_agentd.conf中'MaxLinesPerSecond'的10倍;
  • mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
  • maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
  • options - 日志文件轮换类型和其他选项。可能的值:
    rotate(默认),
    copytruncate - 请注意,copytruncate不能与maxdelay一起使用。在这种情况下,maxdelay必须为0或未指定;请参阅copytruncate注释,
    mtime-reread - 非唯一记录,如果修改时间或大小更改,则重新读取(默认),
    mtime-noreread - 非唯一记录,仅在大小更改时重新读取(忽略修改时间更改)。
  • persistent dir(仅在UNIX系统的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files

备注:

  • 此项必须配置为主动检查
  • 匹配的行在代理上次检查日志后的新行中计数,因此取决于项的更新间隔;
  • 日志轮换基于文件的最后修改时间。
modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]

读取Modbus数据。
返回值:JSON对象
支持的平台:Linux。

参数:

  • endpoint - 定义为 protocol://connection_string 的终端点;
  • slave id - 从机ID;
  • function - Modbus功能码;
  • address - 第一个寄存器、线圈或输入的地址;
  • count - 要读取的记录数;
  • type - 数据类型;
  • endianness - 字节序配置;
  • offset - 从 'address' 开始的寄存器数量,其结果将被丢弃。

查看有关参数的详细描述

net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]

检查DNS服务是否运行。
返回值:0 - DNS不可用(服务器未响应或DNS解析失败);1 - DNS可用。
查看支持的平台

参数:

  • ip(在使用Zabbix agent 2时Windows系统忽略) - DNS服务器的IP地址(留空以使用默认DNS服务器);
  • name - 要查询的DNS名称;
  • type - 要查询的记录类型(默认为SOA);
  • timeout(在使用Zabbix agent 2时Windows系统忽略) - 请求的超时时间,单位为秒(默认为1秒);
  • count(在使用Zabbix agent 2时Windows系统忽略) - 请求的尝试次数(默认为2次);
  • protocol - 执行DNS查询时使用的协议:udp(默认)或 tcp

注释:

  • type 的可能值包括:ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(在Windows上不支持,Zabbix agent 2在所有操作系统上也不支持), HINFO, MINFO, TXT, SRV
  • 对于反向DNS查找(当 type 设置为 PTR 时),您可以提供反向和非反向格式的DNS名称(请参见下面的示例)。请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。
  • 不支持国际化域名,请使用IDNA编码的名称。

示例:

net.dns[198.51.100.1,example.com,MX,2,1]
       
       net.dns[,198.51.100.1,PTR]
       net.dns[,1.100.51.198.in-addr.arpa,PTR]
       
       net.dns[,2a00:1450:400f:800::200e,PTR]
       net.dns[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.perf[<ip>,name,<type>,<timeout>,<count>,<protocol>]

检查DNS服务的性能。
返回值:浮点数(0 - 服务不可用;秒数 - 等待服务响应的秒数)。
查看支持的平台

参数:

  • ip(在使用Zabbix agent 2时Windows系统忽略) - DNS服务器的IP地址(留空以使用默认DNS服务器);
  • name - 要查询的DNS名称;
  • type - 要查询的记录类型(默认为SOA);
  • timeout(在使用Zabbix agent 2时Windows系统忽略) - 请求的超时时间,单位为秒(默认为1秒);
  • count(在使用Zabbix agent 2时Windows系统忽略) - 请求的尝试次数(默认为2次);
  • protocol - 执行DNS查询时使用的协议:udp(默认)或 tcp

注释:

  • type 的可能值包括:ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(在Windows上不支持,Zabbix agent 2在所有操作系统上也不支持), HINFO, MINFO, TXT, SRV
  • 对于反向DNS查找(当 type 设置为 PTR 时),您可以提供反向和非反向格式的DNS名称(请参见下面的示例)。请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。
  • 不支持国际化域名,请使用IDNA编码的名称。

示例:

net.dns.perf[198.51.100.1,example.com,MX,2,1]
       
       net.dns.perf[,198.51.100.1,PTR]
       net.dns.perf[,1.100.51.198.in-addr.arpa,PTR]
       
       net.dns.perf[,2a00:1450:400f:800::200e,PTR]
       net.dns.perf[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]

执行DNS查询。
返回值:一个包含所需信息类型的字符字符串。
查看支持的平台

参数:

  • ip(在使用Zabbix agent 2时Windows系统忽略) - DNS服务器的IP地址(留空以使用默认DNS服务器);
  • name - 要查询的DNS名称;
  • type - 要查询的记录类型(默认为SOA);
  • timeout(在使用Zabbix agent 2时Windows系统忽略) - 请求的超时时间,单位为秒(默认为1秒);
  • count(在使用Zabbix agent 2时Windows系统忽略) - 请求的尝试次数(默认为2次);
  • protocol - 执行DNS查询时使用的协议:udp(默认)或 tcp

注释:

  • type 的可能值包括:ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(在Windows上不支持,Zabbix agent 2在所有操作系统上也不支持), HINFO, MINFO, TXT, SRV
  • 对于反向DNS查找(当 type 设置为 PTR 时),您可以提供反向和非反向格式的DNS名称(请参见下面的示例)。请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。
  • 不支持国际化域名,请使用IDNA编码的名称。

示例:

net.dns.record[198.51.100.1,example.com,MX,2,1]
       
       net.dns.record[,198.51.100.1,PTR]
       net.dns.record[,1.100.51.198.in-addr.arpa,PTR]
       
       net.dns.record[,2a00:1450:400f:800::200e,PTR]
       net.dns.record[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.if.collisions[if]

获取网络接口的窗口外碰撞数。
返回值:整数
支持的平台:Linux、FreeBSD、Solaris、AIX、MacOS X、OpenBSD、NetBSD。在NetBSD上需要root权限。

参数:

  • if - 网络接口名称
net.if.discovery


网络接口列表。用于低级发现。
返回值:JSON 对象
支持的平台:Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD。

net.if.in[if,<mode>]


网络接口上的入站流量统计。
返回值:整数
支持的平台:Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD。在NetBSD上需要root权限。

参数:

  • if - 网络接口名称(Unix),网络接口完整描述或IPv4地址;如果在括号中,则为网络接口GUID(Windows);
  • mode - 可能的取值:
    bytes - 字节数(默认)
    packets - 包数
    errors - 错误数
    dropped - 丢弃的包数
    overruns (fifo) - FIFO缓冲区错误数
    frame - 数据帧错误数
    compressed - 设备驱动程序接收到的压缩包数
    multicast - 设备驱动程序接收到的多播帧数

注释:

  • 您可以在“每秒变化”预处理步骤中使用此键以获取每秒字节数统计信息;
  • dropped 模式仅在Linux, FreeBSD, HP-UX, MacOS X, OpenBSD, NetBSD上支持;
  • overruns, frame, compressed, multicast 模式仅在Linux上支持;
  • 在HP-UX上,此项不提供关于回环接口(例如 lo0)的详细信息。

示例:

net.if.in[eth0]
       net.if.in[eth0,errors]
net.if.out[if,<mode>]

网络接口上的传出流量统计。
返回值:整数
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。在NetBSD上需要root权限。

参数:

  • if - 网络接口名称(Unix);网络接口完整描述或IPv4地址;或者,如果在大括号中,则为网络接口GUID(Windows);
  • mode - 可能的值:
    bytes - 字节数(默认)
    packets - 包数量
    errors - 错误数量
    dropped - 丢弃的包数量
    overruns (fifo) - FIFO缓冲区错误数量
    collisions (colls) - 接口上检测到的冲突数量
    carrier - 设备驱动程序检测到的载波丢失数量
    compressed - 设备驱动程序传输的压缩包数量

备注:

  • 您可以在此键中使用每秒更改预处理步骤,以获取每秒字节数统计信息;
  • dropped 模式仅在Linux、HP-UX上受支持;
  • overrunscollisioncarriercompressed 模式仅在Linux上受支持;
  • 在HP-UX上,此项不提供有关环回接口(例如 lo0)的详细信息。

示例:

net.if.out[eth0]
       net.if.out[eth0,errors]
net.if.total[if,<mode>]

网络接口上传入和传出流量统计的总和。
返回值:整数
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。在NetBSD上需要root权限。

参数:

  • if - 网络接口名称(Unix);网络接口完整描述或IPv4地址;或者,如果在大括号中,则为网络接口GUID(Windows);
  • mode - 可能的值:
    bytes - 字节数(默认)
    packets - 包数量
    errors - 错误数量
    dropped - 丢弃的包数量
    overruns (fifo) - FIFO缓冲区错误数量
    collisions (colls) - 接口上检测到的冲突数量
    compressed - 设备驱动程序传输或接收的压缩包数量

备注:

  • 您可以在此键中使用每秒更改预处理步骤,以获取每秒字节数统计信息;
  • dropped 模式仅在Linux、HP-UX上受支持。仅当您的平台上的net.if.innet.if.out都用于丢弃的包时,才支持丢弃的包。
  • overrunscollisioncompressed 模式仅在Linux上受支持;
  • 在HP-UX上,此项不提供有关环回接口(例如 lo0)的详细信息。

示例:

net.if.total[eth0]
       net.if.total[eth0,errors]
net.tcp.listen[port]

检查此TCP端口是否处于LISTEN状态。
返回值:0 - 不处于LISTEN状态;1 - 处于LISTEN状态。
支持的平台:Linux、FreeBSD、Solaris、MacOS X。

参数:

  • port - TCP端口号

在Linux内核2.6.14及以上版本中,关于正在侦听的TCP套接字的信息是从内核的NETLINK接口获取的(如果可能的话)。否则,将从/proc/net/tcp和/proc/net/tcp6文件中检索信息。

示例:

net.tcp.listen[80]
net.tcp.port[<ip>,port]

检查是否可以连接到指定端口的TCP连接。
返回值:0 - 无法连接;1 - 可以连接。
参见支持的平台

参数:

  • ip - IP地址或DNS名称(默认为127.0.0.1);
  • port - 端口号。

备注:

  • 对于简单的TCP性能测试,请使用net.tcp.service.perf[tcp,<ip>,<port>]
  • 这些检查可能会导致系统守护程序日志文件中出现其他消息(通常会记录SMTP和SSH会话)。

示例:

net.tcp.port[,80] #此项可用于测试运行在端口80上的Web服务器的可用性
net.tcp.service[service,<ip>,<port>]

检查服务是否正在运行并接受TCP连接。
返回值:0 - 服务已停止;1 - 服务正在运行。
参见支持的平台

参数:

  • service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, httpstelnet(参见详细信息);
  • ip - IP地址或DNS名称(默认为127.0.0.1);
  • port - 端口号(默认使用标准服务端口号)。

备注:

  • 这些检查可能会导致系统守护程序日志文件中出现其他消息(通常会记录SMTP和SSH会话);
  • 目前不支持加密协议的检查(如端口993上的IMAP或端口995上的POP)。作为解决方法,请使用net.tcp.port[]进行此类检查。
  • Windows上仅由Zabbix代理程序2支持LDAP和HTTPS的检查;
  • telnet检查会寻找登录提示符(':' 结尾)。

示例:

net.tcp.service[ftp,,45] #此项可用于测试TCP端口45上的FTP服务器的可用性
net.tcp.service.perf[service,<ip>,<port>]

检查TCP服务的性能。
返回值:浮点数(0 - 服务已停止;秒数 - 等待服务响应的秒数)。
参见支持的平台

参数:

  • service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, httpstelnet(参见详细信息);
  • ip - IP地址或DNS名称(默认为127.0.0.1);
  • port - 端口号(默认使用标准服务端口号)。

备注:

  • 目前不支持加密协议的检查(如端口993上的IMAP或端口995上的POP)。作为解决方法,请使用net.tcp.service.perf[tcp,<ip>,<port>]进行此类检查。
  • telnet检查会寻找登录提示符(':' 结尾)。

示例:

net.tcp.service.perf[ssh] #此项可用于测试SSH服务器的初始响应速度
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]

返回与参数匹配的TCP套接字数量。
返回值:整数
支持的平台:Linux。

参数:

  • laddr - 本地IPv4/6地址或CIDR子网;
  • lport - 本地端口号或服务名称;
  • raddr - 远程IPv4/6地址或CIDR子网;
  • rport - 远程端口号或服务名称;
  • state - 连接状态(establishedsyn_sentsyn_recvfin_wait1fin_wait2time_waitcloseclose_waitlast_acklistenclosing)。

示例:

net.tcp.socket.count[,80,,,established] #已建立连接到本地TCP端口80的数量
net.udp.listen[port]

检查此UDP端口是否处于LISTEN状态。
返回值:0 - 不处于LISTEN状态;1 - 处于LISTEN状态。
支持的平台:Linux、FreeBSD、Solaris、MacOS X。

参数:

  • port - UDP端口号

示例:

net.udp.listen[68]
net.udp.service[service,<ip>,<port>]

检查服务是否正在运行并响应UDP请求。
返回值:0 - 服务已停止;1 - 服务正在运行。
参见支持的平台

参数:

  • service - ntp(参见详细信息);
  • ip - IP地址或DNS名称(默认为127.0.0.1);
  • port - 端口号(默认使用标准服务端口号)。

示例:

net.udp.service[ntp,,45] #此项可用于测试UDP端口45上的NTP服务的可用性
net.udp.service.perf[service,<ip>,<port>]

检查UDP服务的性能。
返回值:浮点数(0 - 服务已停止;秒数 - 等待服务响应的秒数)。
参见支持的平台

参数:

  • service - ntp(参见详细信息);
  • ip - IP地址或DNS名称(默认为127.0.0.1);
  • port - 端口号(默认使用标准服务端口号)。

示例:

net.udp.service.perf[ntp] #此项可用于测试从NTP服务获取响应的时间
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]

返回与参数匹配的UDP套接字数量。
返回值:整数
支持的平台:Linux。

参数:

  • laddr - 本地IPv4/6地址或CIDR子网;
  • lport - 本地端口号或服务名称;
  • raddr - 远程IPv4/6地址或CIDR子网;
  • rport - 远程端口号或服务名称;
  • state - 连接状态(establishedunconn)。

示例:

net.udp.socket.count[,,,,established] #返回已连接状态的UDP套接字数量
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]

进程CPU利用率百分比。
返回值:浮点数
支持的平台:Linux、Solaris6

参数:

  • name - 进程名称(默认为所有进程);
  • user - 用户名称(默认为所有用户);
  • type - CPU利用率类型:total(默认)、usersystem
  • cmdline - 按命令行过滤(是一个正则表达式);
  • mode - 数据收集模式:avg1(默认)、avg5avg15
  • zone - 目标区域:current(默认)或all。此参数仅在Solaris上受支持。

备注:

  • 返回值基于单个CPU核心的利用率百分比。例如,完全使用两个核心的进程的CPU利用率为200%。
  • 进程CPU利用率数据由一个收集器收集,支持最多1024个唯一的查询(按名称、用户和命令行)。在最后24小时未访问的查询将从收集器中删除。
  • 当将zone参数设置为current(或默认值)时,在代理程序在不支持区域的Solaris上编译但在支持区域的较新Solaris上运行时,代理程序将返回NOTSUPPORTED(代理程序无法将结果限制为仅当前区域)。但在这种情况下,all是受支持的。

示例:

proc.cpu.util[,root] #所有在“root”用户下运行的进程的CPU利用率
       proc.cpu.util[zabbix_server,zabbix] #所有在zabbix用户下运行的zabbix_server进程的CPU利用率
proc.get[<name>,<user>,<cmdline>,<mode>]

操作系统进程及其参数列表。可用于低级发现。
返回值:JSON对象
支持的平台:Linux、FreeBSD、Windows、OpenBSD、NetBSD。

参数:

  • name - 进程名称(默认为所有进程);
  • user - 用户名称(默认为所有用户);
  • cmdline - 按命令行过滤(是一个正则表达式)。此参数不支持Windows;在其他平台上,如果mode设置为'summary',则不支持此参数。
  • mode - 可能的值:
    process(默认)、thread(不支持NetBSD)、summary。查看每种模式和操作系统返回的进程参数列表。

备注:

  • 如果无法检索值,例如,由于错误(进程已经终止、权限不足、系统调用失败),将返回-1
  • 有关使用namecmdline参数选择进程的注意事项,请参见注释(仅适用于Linux)。

示例:

proc.get[zabbix_server,zabbix,,process] #所有在zabbix用户下运行的zabbix_server进程的列表,每个PID返回一个条目
       proc.get[java,,,thread] #所有Java进程的列表,每个线程返回一个条目
       proc.get[,zabbix,,summary] #每种类型进程的组合数据,运行在zabbix用户下,每个进程名称返回一个条目
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]

进程使用的内存字节数。
返回值:整数 - 当modemaxminsum时;浮点数 - 当modeavg时。
支持的平台:Linux、FreeBSD、Solaris、AIX、Tru64、OpenBSD、NetBSD。

参数:

  • name - 进程名称(默认为所有进程);
  • user - 用户名称(默认为所有用户);
  • mode - 可能的值:avgmaxminsum(默认);
  • cmdline - 按命令行过滤(是一个正则表达式);
  • memtype - 进程使用的内存类型

备注:

  • memtype参数仅在Linux、FreeBSD、Solaris6、AIX上受支持;
  • 当多个进程使用共享内存时,进程使用的内存总和可能会导致较大且不切实际的值。

    有关使用namecmdline参数选择进程的注意事项,请参见注释(仅适用于Linux)。

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

示例:

proc.mem[,root] #所有在“root”用户下运行的进程使用的内存
       proc.mem[zabbix_server,zabbix] #所有在zabbix用户下运行的zabbix_server进程使用的内存
       proc.mem[,oracle,max,oracleZABBIX] #在Oracle下运行,并且其命令行中包含oracleZABBIX的最耗内存进程使用的内存
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]

进程的数量。
返回值:整数
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、Tru64、OpenBSD、NetBSD。

参数:

  • name - 进程名称(默认为所有进程);
  • user - 用户名称(默认为所有用户);
  • state - 可能的值:
    all(默认)、
    disk - 不可中断的睡眠、
    run - 运行、
    sleep - 可中断的睡眠、
    trace - 停止、
    zomb - 僵尸;
  • cmdline - 按命令行过滤(是一个正则表达式);
  • zone - 目标区域:current(默认)或all。此参数仅在Solaris上受支持。

备注:

  • disktrace状态参数仅在Linux、FreeBSD、OpenBSD、NetBSD上受支持;
  • 当从命令行调用此项并包含命令行参数时(例如使用代理测试模式:zabbix_agentd -t proc.num[,,,apache2]),将额外计算一个进程,因为代理将计算自身;
  • 当将zone参数设置为current(或默认值)时,在代理程序在不支持区域的Solaris上编译但在支持区域的较新Solaris上运行时,代理程序将返回NOTSUPPORTED(代理程序无法将结果限制为仅当前区域)。但在这种情况下,all是受支持的。
  • 有关使用namecmdline参数选择进程的注意事项,请参见注释(仅适用于Linux)。

示例:

proc.num[,mysql] #在mysql用户下运行的进程数量
       proc.num[apache2,www-data] #在www-data用户下运行的apache2进程数量
       proc.num[,oracle,sleep,oracleZABBIX] #在Oracle下运行且其命令行中包含oracleZABBIX的睡眠状态进程数量
sensor[device,sensor,<mode>]

硬件传感器读数。
返回值:浮点数
支持的平台:Linux、OpenBSD。

参数:

  • device - 设备名称,如果省略模式,则可以是正则表达式;
  • sensor - 传感器名称,如果省略模式,则可以是正则表达式;
  • mode - 可能的值:avgmaxmin(如果省略此参数,则设备和传感器会被直接处理)。

备注:

  • 在Linux 2.4上读取/proc/sys/dev/sensors;
  • 在Linux 2.6+上读取/sys/class/hwmon。有关Linux上传感器项的更详细描述,请参见sensor
  • 在OpenBSD上读取hw.sensors MIB。

示例:

sensor[w83781d-i2c-0-2d,temp1]
       sensor[cpu0,temp0] #一个CPU的温度
       sensor["cpu[0-2]$",temp,avg] #前三个CPU的平均温度
system.boottime

系统启动时间。
返回值:整数(Unix时间戳)
支持的平台:Linux、FreeBSD、Solaris、MacOS X、OpenBSD、NetBSD。

system.cpu.discovery

检测到的CPU/CPU核心列表。用于低级发现。
返回值:JSON对象
查看支持的平台

system.cpu.intr

设备中断数。
返回值:整数
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。

system.cpu.load[<cpu>,<mode>]

CPU负载
返回值:浮点数
查看支持的平台

参数:

  • cpu - 可能的值:all(默认)或percpu(总负载除以在线CPU数);
  • mode - 可能的值:avg1(一分钟平均值,默认)、avg5avg15

在Tru64上不支持percpu参数。

示例:

system.cpu.load[,avg5]
system.cpu.num[<type>]

CPU的数量。
返回值:整数
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。

参数:

  • type - 可能的值:online(默认)或max

max类型参数仅在Linux、FreeBSD、Solaris、MacOS X上受支持。

示例:

system.cpu.num
system.cpu.switches

上下文切换次数。
返回值:整数
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。

system.cpu.util[<cpu>,<type>,<mode>,<logical or physical>]

CPU利用率百分比。
返回值:浮点数
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、Tru64、OpenBSD、NetBSD。

参数:

  • cpu - <CPU编号>all(默认);
  • type - 可能的值:user(默认)、idlenicesystemiowaitinterruptsoftirqstealguest(仅适用于Linux 2.6.24及以上版本)、guest_nice(仅适用于Linux 2.6.33及以上版本);
  • mode - 可能的值:avg1(一分钟平均值,默认)、avg5avg15
  • logical or physical - 可能的值:logical(默认)或physical。此参数仅在AIX上受支持。

备注:

  • nice类型参数仅在Linux、FreeBSD、HP-UX、Tru64、OpenBSD、NetBSD上受支持。
  • iowait类型参数仅在Linux 2.6及更高版本、Solaris、AIX上受支持。
  • interrupt类型参数仅在Linux 2.6及更高版本、FreeBSD、OpenBSD上受支持。
  • softirqstealguestguest_nice类型参数仅在Linux 2.6及更高版本上受支持。
  • avg5avg15模式参数在Linux、FreeBSD、Solaris、HP-UX、AIX、OpenBSD、NetBSD上受支持。

示例:

system.cpu.util[0,user,avg5]
system.hostname[<type>,<transform>]

系统主机名。
返回值:字符串
查看支持的平台

参数:

  • type - 可能的值:netbios(Windows上的默认值)、host(Linux上的默认值)、shorthost(返回第一个点之前的主机名部分,对于没有点的名称返回完整字符串)、fqdn(返回完全限定域名);
  • transform - 可能的值:none(默认)或lower(转换为小写)。

该值是通过从uname()系统API输出中获取nodename而获得的。

返回值示例:

system.hostname → linux-w7x1
       system.hostname → example.com
       system.hostname[shorthost] → example
       system.hostname → WIN-SERV2008-I6
       system.hostname[host] → Win-Serv2008-I6LonG
       system.hostname[host,lower] → win-serv2008-i6long
       system.hostname[fqdn,lower] → blog.zabbix.com
system.hw.chassis[<info>]

机箱信息。
返回值:字符串
支持的平台:Linux。

参数:

  • info - 可能的值:full(默认)、modelserialtypevendor

备注:

  • 此项目键取决于SMBIOS表的可用性;
  • 它将尝试从sysfs读取DMI表,如果sysfs访问失败,则尝试直接从内存读取;
  • 由于值是通过从sysfs或内存读取而获得的,因此需要根权限

示例:

system.hw.chassis[full] → Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop
system.hw.cpu[<cpu>,<info>]

CPU信息。
返回值:字符串整数
支持的平台:Linux。

参数:

  • cpu - <CPU编号>all(默认);
  • info - 可能的值:full(默认)、curfreqmaxfreqmodelvendor

备注:

  • /proc/cpuinfo/sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq中收集信息;
  • 如果指定了CPU编号和curfreqmaxfreq,则返回数字值(Hz)。

示例:

system.hw.cpu[0,vendor] → AuthenticAMD
system.hw.devices[<type>]

PCI或USB设备列表。
返回值:文本
支持的平台:Linux。

参数:

  • type - pci(默认)或usb

返回lspci或lsusb实用程序的输出(无参数执行)。

示例:

system.hw.devices → 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
system.hw.macaddr[<interface>,<format>]

MAC地址列表。
返回值:字符串
支持的平台:Linux。

参数:

  • interface - all(默认)或正则表达式;
  • format - full(默认)或short

备注:

  • 列出与给定的interface正则表达式匹配的接口的MAC地址(all列出所有接口);
  • 如果format指定为short,则不列出接口名称和相同的MAC地址。

示例:

system.hw.macaddr["eth0$",full] → [eth0] 00:11:22:33:44:55
system.localtime[<type>]

系统时间。
返回值:Integer - typeutc时;String - typelocal时。
支持的平台

参数:

  • type - 可能的值:utc - (默认)自纪元时(1970年1月1日00:00:00 UTC)起的秒数,或local - 'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm'格式的时间

必须仅用作被动检查

示例:

system.localtime[local] # 创建一个使用此键的项目,然后使用它在*时钟*仪表板小部件中显示主机时间。
system.run[command,<mode>]

在主机上运行指定的命令。
返回值:Text 命令的结果或1(modenowait时,无论命令结果如何)。
支持的平台

参数:

  • command - 要执行的命令;
  • mode - 可能的值:wait - 等待执行结束(默认)或 nowait - 不等待。

注:

  • 此项默认处于禁用状态。了解如何启用它们
  • 项的返回值是由命令生成的标准输出和标准错误。不执行退出代码检查
  • 为了正确处理,命令的返回值必须是text数据类型。还允许空结果;
  • 返回值限制为16MB(包括被截断的尾随空格);还适用数据库限制
  • 另请参阅:命令执行

示例:

system.run[ls -l /] # 返回根目录的详细文件列表
system.stat[resource,<type>]

系统统计信息。
返回值:整数浮点数
支持的平台:AIX。

参数:

  • ent - 此分区有权接收的处理器单元数(浮点数);
  • kthr,<type> - 有关内核线程状态的信息:
    r - 可运行内核线程的平均数量(浮点数)
    b - 放置在虚拟内存管理器等待队列中的内核线程的平均数量(浮点数)
  • memory,<type> - 有关虚拟和实际内存使用情况的信息:
    avm - 活动虚拟页(整数)
    fre - 空闲列表的大小(整数)
  • page,<type> - 页面错误和分页活动的信息:
    fi - 每秒文件页面写入数(float)
    fo - 每秒文件页面写出数(float)
    pi - 从分页空间换入的页面数(float)
    po - 从分页空间换出的页面数(float)
    fr - 释放的页面(页面替换)(float)
    sr - 页面替换算法扫描的页面数(float)
  • faults,<type> - 陷阱和中断率:
    in - 设备中断(float)
    sy - 系统调用(float)
    cs - 内核线程上下文切换(float)
  • cpu,<type> - 处理器时间使用百分比的详细情况:
    us - 用户时间(float)
    sy - 系统时间(float)
    id - 空闲时间(float)
    wa - 空闲时间,系统期间有未完成的磁盘/NFS I/O 请求(float)
    pc - 消耗的物理处理器数(float)
    ec - 使用的权利容量的百分比(float)
    lbusy - 指示在执行用户级别和系统级别时发生的逻辑处理器利用率百分比(float)
    app - 指示共享池中可用的物理处理器数(float)
  • disk,<type> - 磁盘统计信息:
    bps - 指示每秒传输到驱动器的数据量(读取或写入)(整数)
    tps - 指示发往物理磁盘/磁带的每秒传输次数(float)

注:

  • 请注意这些项中的以下限制:
    system.stat[cpu,app] - 仅支持AIX LPAR类型为“Shared”
    system.stat[cpu,ec] - 仅支持AIX LPAR类型为“Shared”和“Dedicated”(“Dedicated”始终返回100(百分比))
    system.stat[cpu,lbusy] - 仅支持AIX LPAR类型为“Shared”
    system.stat[cpu,pc] - 仅支持AIX LPAR类型为“Shared”和“Dedicated”
    system.stat[ent] - 仅支持AIX LPAR类型为“Shared”和“Dedicated”
system.sw.arch

软件架构信息。
返回值:字符串
参见支持的平台

信息从uname()函数获取。

示例:

system.sw.arch → i686
system.sw.os[<info>]

操作系统信息。
返回值:字符串
支持的平台:Linux,Windows。

参数:

  • info - 可选值:full(默认),short,或name

信息获取自(请注意,并非所有文件和选项在所有发行版中都存在):

  • Linux上的 /proc/versionfull);
  • Linux上的 /proc/version_signatureshort);
  • 在支持的Linux系统上从/etc/os-release中的PRETTY_NAME参数获取或从/etc/issue.net中获取(name);
  • Windows上的HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion注册表键。

示例:

system.sw.os[short] → Ubuntu 2.6.35-28.50-generic 2.6.35.11
       system.sw.os[full] → [s|Windows 10 Enterprise 22621.1.asd64fre.ni_release.220506-1250 Build 22621.963]
system.sw.os.get

操作系统的详细信息(版本、类型、发行版名称、次要和主要版本等)。
返回值:JSON对象
支持的平台:Linux,Windows.

system.sw.packages[<regexp>,<manager>,<format>]

已安装软件包的列表。
返回值:Text
支持的平台:Linux.

参数:

  • regexp - all(默认)或正则表达式;
  • manager - all(默认)或包管理器;
  • format - full(默认)或short

备注:

  • 列出(按字母顺序)安装的软件包,其名称与给定的正则表达式匹配(all列出所有软件包);
  • 支持的包管理器(执行的命令):
    dpkg(dpkg --get-selections)
    pkgtool(ls /var/log/packages)
    rpm(rpm -qa)
    pacman(pacman -Q)
    portage
  • 如果将format指定为full,则软件包将按包管理器分组(每个管理器在单独的一行上以其名称开始,并用方括号括起来);
  • 如果将format指定为short,则软件包不会分组,并且将列在单行上。

示例:

system.sw.packages[mini,dpkg,short] → python-minimal, python2.6-minimal, ubuntu-minimal
system.sw.packages.get[<regexp>,<manager>]

已安装软件包的详细列表。
返回值:JSON object
支持的平台:Linux.

参数:

  • regexp - all(默认)或正则表达式;
  • manager - all(默认)或包管理器(可能的值:rpmdpkgpkgtoolpacmanportage)。

备注:

  • 返回未格式化的JSON,其中包含与给定正则表达式匹配的已安装软件包;
  • 输出是一个对象数组,每个对象包含以下键:name、manager、version、size、architecture、buildtime和installtime(参见更多细节)。
system.swap.in[<device>,<type>]

交换(从设备到内存)统计信息。
返回值:Integer
支持的平台:Linux, FreeBSD, OpenBSD.

参数:

  • device - 指定用于交换的设备(仅限Linux)或all(默认);
  • type - 可能的值:count(交换次数,非Linux平台上的默认值),sectors(换入的扇区)或pages(换入的页,在Linux上的默认值)。

备注:

  • 这些信息的来源是:
    /proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
    /proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)
  • 注意,如果未指定设备,pages将无效;
  • sectors类型参数仅在Linux上受支持。

示例:

system.swap.in[,pages]
system.swap.out[<device>,<type>]

交换出(从内存到设备)统计信息。
返回值:Integer
支持的平台:Linux, FreeBSD, OpenBSD.

参数:

  • device - 指定用于交换的设备(仅限Linux)或all(默认);
  • type - 可能的值:count(交换次数,非Linux平台上的默认值),sectors(换出的扇区)或pages(换出的页,在Linux上的默认值)。

备注:

  • 这些信息的来源是:
    /proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
    /proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)
  • 注意,如果未指定设备,pages将无效;
  • sectors类型参数仅在Linux上受支持。

示例:

system.swap.out[,pages]
system.swap.size[<device>,<type>]

交换空间大小(以字节或总量的百分比表示)。
返回值:Integer - 字节;Float - 百分比。
支持的平台:Linux, FreeBSD, Solaris, AIX, Tru64, OpenBSD.

参数:

  • device - 指定用于交换的设备(仅限FreeBSD)或all(默认);
  • type - 可能的值:free(可用交换空间,默认),pfree(可用交换空间,百分比),pused(已用交换空间,百分比),total(交换空间总量)或used(已用交换空间)。

备注:

  • 注意,如果交换大小为0,则在Windows上不支持pfreepused;
  • 如果未指定设备,Zabbix代理程序将仅考虑交换设备(文件),物理内存将被忽略。例如,在Solaris系统上,swap -s命令包括一部分物理内存和交换设备(不像swap -l)。

示例:

system.swap.size[,pfree] → 可用交换空间百分比
system.uname

系统标识。
返回值:String
参见支持的平台

备注:

  • 在UNIX上,此项的值是使用uname()系统调用获得的;
  • 在Windows上,该项返回操作系统体系结构,而在UNIX上返回CPU体系结构。

示例:

 system.uname → FreeBSD localhost 4.2-RELEASE FreeBSD 4.2-RELEASE #0: Mon Nov i386
        system.uname → Windows ZABBIX-WIN 6.0.6001 Microsoft® Windows Server® 2008 Standard Service Pack 1 x86
system.uptime

系统运行时间(以秒为单位)。
返回值:Integer
支持的平台:Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD. Tru64上的支持情况未知。

item配置中,使用suptime单位以获得可读性更强的值。

system.users.num

已登录用户数。
返回值:Integer
参见支持的平台

代理端使用who命令来获取该值。

vfs.dev.discovery


块设备列表及其类型。用于低级发现。
返回值:JSON对象
支持的平台:Linux。

vfs.dev.read[<device>,<type>,<mode>]

磁盘读取统计信息。
返回值:Integer - typesectors, operations, bytes; Float - typesps, ops, bps.
支持的平台:Linux, FreeBSD, Solaris, AIX, OpenBSD。

参数:

  • device - 磁盘设备 (默认为 all);
  • type - 可能的值: sectors, operations, bytes, sps, ops, 或 bps (sps, ops, bps 分别代表每秒扇区数, 操作数, 字节数);
  • mode - 可能的值: avg1 (一分钟平均, 默认), avg5, 或 avg15。此参数仅适用于 type 为 sps, ops, bps 时。

Comments:

  • 如果使用三小时或更长时间间隔进行更新2,此项将始终返回'0';
  • sectorssps 类型参数仅在Linux上受支持;
  • ops 类型参数仅在Linux和FreeBSD上受支持;
  • bps 类型参数仅在FreeBSD上受支持;
  • bytes 类型参数仅在FreeBSD,Solaris,AIX,OpenBSD上受支持;
  • mode 参数仅在Linux,FreeBSD上受支持;
  • 您可以使用相对设备名称(例如,sda)以及可选的 /dev/ 前缀(例如,/dev/sda);
  • 支持 LVM 逻辑卷;
  • 不同 OS 的 'type' 参数的默认值:
    AIX - operations
    FreeBSD - bps
    Linux - sps
    OpenBSD - operations
    Solaris - bytes
  • 在支持的平台上,sps, opsbps 限制为 1024 个设备(1023 个个体设备和一个用于 all)。

Example:

vfs.dev.read[,operations]
vfs.dev.read[<device>,<type>,<mode>]

磁盘读取统计信息。
返回值:Integer - typesectors, operations, bytes; Float - typesps, ops, bps
支持的平台:Linux, FreeBSD, Solaris, AIX, OpenBSD。

参数:

  • device - 磁盘设备 (默认为 all);
  • type - 可能的值: sectors, operations, bytes, sps, ops, 或 bps (sps, ops, bps 分别代表每秒扇区数, 操作数, 字节每秒);
  • mode - 可能的值: avg1 (一分钟平均, 默认), avg5, 或 avg15。此参数仅适用于 type 为 sps, ops, bps 时。

Comments:

  • 如果更新间隔大于三小时2,此项将始终返回'0';
  • sectorssps 类型参数仅在Linux上支持;
  • ops 类型参数仅在Linux和FreeBSD上支持;
  • bps 类型参数仅在FreeBSD上支持;
  • bytes 类型参数仅在FreeBSD,Solaris,AIX,OpenBSD上支持;
  • mode 参数仅在Linux,FreeBSD上支持;
  • 您可以使用相对设备名称(例如,sda)以及可选的 /dev/ 前缀(例如,/dev/sda);
  • 支持 LVM 逻辑卷;
  • 不同 OS 的 'type' 参数的默认值:
    AIX - operations
    FreeBSD - bps
    Linux - sps
    OpenBSD - operations
    Solaris - bytes
  • 在支持的平台上,sps, opsbps 限制为 1024 个设备(1023 个个体设备和一个用于 all)。

Example:

vfs.dev.read[,operations]
vfs.dev.write[<device>,<type>,<mode>]

磁盘写入统计信息。
返回值:Integer - typesectors, operations, bytes; Float - typesps, ops, bps
支持的平台:Linux, FreeBSD, Solaris, AIX, OpenBSD。

参数:

  • device - 磁盘设备 (默认为 all);
  • type - 可能的值: sectors, operations, bytes, sps, ops, 或 bps (sps, ops, bps 分别代表每秒扇区数, 操作数, 字节每秒);
  • mode - 可能的值: avg1 (一分钟平均, 默认), avg5, 或 avg15。此参数仅适用于 type 为 sps, ops, bps 时。

Comments:

  • 如果更新间隔大于三小时2,此项将始终返回'0';
  • sectorssps 类型参数仅在Linux上支持;
  • ops 类型参数仅在Linux和FreeBSD上支持;
  • bps 类型参数仅在FreeBSD上支持;
  • bytes 类型参数仅在FreeBSD,Solaris,AIX,OpenBSD上支持;
  • mode 参数仅在Linux,FreeBSD上支持;
  • 您可以使用相对设备名称(例如,sda)以及可选的 /dev/ 前缀(例如,/dev/sda);
  • 支持 LVM 逻辑卷;
  • 不同 OS 的 'type' 参数的默认值:
    AIX - operations
    FreeBSD - bps
    Linux - sps
    OpenBSD - operations
    Solaris - bytes
  • 在支持的平台上,sps, opsbps 限制为 1024 个设备(1023 个个体设备和一个用于 all)。

示例:

vfs.dev.write[,operations]
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>]

目录条目计数。
返回值:Integer
支持的平台

参数:

  • dir - 目录的绝对路径;
  • regex incl - 描述要包含的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则包含所有 (默认值);
  • regex excl - 描述要排除的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则不排除任何 (默认值);
  • types incl - 要计数的目录条目类型,可能的值: file - 普通文件, dir - 子目录, sym - 符号链接, sock - socket, 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 - 要计数的目录条目的最大年龄(以秒为单位)。此年龄及更早的条目将不会被计数(修改时间)。时间后缀 可以使用。
  • regex excl dir - 描述要排除的目录名称模式的正则表达式。将排除目录的所有内容(与 regex_excl 不同)。

Comments:

  • 环境变量,例如 %APP_HOME%, $HOME 和 %TEMP% 不受支持;
  • 伪目录“.”和“..”永远不会被计数;
  • 不会跟随符号链接进行目录遍历;
  • 计算条目计数时,regex inclregex excl 都应用于文件和目录,但在选择要遍历的子目录时会被忽略(如果 regex incl 为“(?i)^.+\.zip$”,并且未设置 max depth,则将遍历所有子目录,但仅计数类型为 zip 的文件)。
  • 执行时间受代理 配置 中的超时值限制(3秒)。由于大型目录遍历可能需要更长的时间,因此不会返回任何数据,项目将变为不受支持。不会返回部分计数。
  • 在按大小过滤时,只有普通文件具有有意义的大小。在 Linux 和 BSD 下,目录也具有非零大小(通常几 KB)。设备大小为零,例如 /dev/sda1 的大小不反映相应分区的大小。因此,在使用 <min_size><max_size> 时,建议将 <types_incl> 指定为 "file",以避免意外。

Examples:

vfs.dir.count[/dev] #监视 /dev 中的设备数 (Linux)
       vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] #监视临时目录中的文件数
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 object
支持的平台

参数:

  • dir - 目录的绝对路径;
  • regex incl - 描述要包含的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则包含所有 (默认值);
  • regex excl - 描述要排除的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则不排除任何 (默认值);
  • types incl - 要列出的目录条目类型,可能的值: file - 普通文件, dir - 子目录, sym - 符号链接, sock - socket, 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 - 要列出的目录条目的最大年龄(以秒为单位)。此年龄及更早的条目将不会被列出(修改时间)。时间后缀 可以使用。
  • regex excl dir - 描述要排除的目录名称模式的正则表达式。将排除目录的所有内容(与 regex excl 不同)。

Comments:

  • 环境变量,例如 %APP_HOME%, $HOME 和 %TEMP% 不受支持;
  • 伪目录“.”和“..”永远不会被列出;
  • 不会跟随符号链接进行目录遍历;
  • 计算条目列表时,regex inclregex excl 都应用于文件和目录,但在选择要遍历的子目录时会被忽略(如果 regex incl 为“(?i)^.+\.zip$”,并且未设置 max depth,则将遍历所有子目录,但仅列出类型为 zip 的文件)。
  • 执行时间受代理 配置 中的超时值限制。由于大型目录遍历可能需要更长的时间,因此不会返回任何数据,项目将变为不受支持。不会返回部分列表。
  • 在按大小过滤时,只有普通文件具有有意义的大小。在 Linux 和 BSD 下,目录也具有非零大小(通常几 KB)。设备大小为零,例如 /dev/sda1 的大小不反映相应分区的大小。因此,在使用 min sizemax size 时,建议将 types incl 指定为 "file",以避免意外。

示例:

vfs.dir.get[/dev] #检索 /dev 中的设备列表 (Linux)
       vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #检索临时目录中的文件列表
vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]


The directory size (in bytes).
Return value: Integer.
Supported platforms: Linux. The item may work on other UNIX-like platforms.

Parameters:

  • dir - the absolute path to directory;
  • regex incl - a regular expression describing the name pattern of the entity (file, directory, symbolic link) to include; include all if empty (default value);
  • regex excl - a regular expression describing the name pattern of the entity (file, directory, symbolic link) to exclude; don't exclude any if empty (default value);
  • mode - possible values: apparent (default) - gets apparent file sizes rather than disk usage (acts as du -sb dir), disk - gets disk usage (acts as du -s -B1 dir). Unlike the du command, the vfs.dir.size item takes hidden files in account when calculating the directory size (acts as du -sb .[^.]* * within dir).
  • max depth - the maximum depth of subdirectories to traverse: -1 (default) - unlimited, 0 - no descending into subdirectories.
  • regex excl dir - a regular expression describing the name pattern of the directory to exclude. All content of the directory will be excluded (in contrast to regex excl)

Comments:

  • Only directories with at least the read permission for zabbix user are calculated. For directories with read permission only, the size of the directory itself is calculated. Directories with read & execute permissions are calculated including contents.
  • With large directories or slow drives this item may time out due to the Timeout setting in agent and server/proxy configuration files. Increase the timeout values as necessary.
  • The file size limit depends on large file support.

示例:

vfs.dir.size[/tmp,log] #calculates the size of all files in /tmp containing 'log' in their names
       vfs.dir.size[/tmp,log,^.+\.old$] #calculates the size of all files in /tmp containing 'log' in their names, excluding files with names ending with '.old'
vfs.file.cksum[file,<mode>]

文件校验和,使用 UNIX cksum 算法计算。
返回值:Integer - 当 modecrc32 时,String - 当 modemd5sha256 时。
请参阅支持的平台

参数:

  • file - 文件的完整路径;
  • mode - crc32(默认)、md5sha256

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

示例:

vfs.file.cksum[/etc/passwd]

返回值示例(分别为 crc32/md5/sha256):

675436101
       9845acf68b73991eb7fd7ee0ded23c44
       ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc
vfs.file.contents[file,<encoding>]

获取文件内容7
返回值:Text
请参阅支持的平台

参数:

  • file - 文件的完整路径;
  • encoding - 编码的代码页标识符。

注释:

  • 返回值限制为16MB(包括被截断的尾随空白字符);同样适用数据库限制
  • 如果文件为空或仅包含 LF/CR 字符,则返回空字符串;
  • 字节顺序标记(BOM)不包含在输出中。

示例:

vfs.file.contents[/etc/passwd]
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 中可能的值(默认情况下不排除任何类型)

注释:

  • 多种类型必须用逗号分隔,并将整个集合括在引号中“”;
  • 如果同一类型同时出现在 <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.get[file]

返回有关文件的信息。
返回值:JSON 对象
请参阅支持的平台

参数:

  • file - 文件的完整路径

注释:

  • UNIX-like 系统上支持的文件类型:常规文件、目录、符号链接、套接字、块设备、字符设备、FIFO。
  • 文件大小限制取决于大文件支持

示例:

vfs.file.get[/etc/passwd] #返回有关 /etc/passwd 文件的信息(类型、用户、权限、SID、uid 等)
vfs.file.md5sum[file]

文件的 MD5 校验和。
返回值:字符串(文件的 MD5 散列值)。
请参阅支持的平台

参数:

  • file - 文件的完整路径

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

示例:

vfs.file.md5sum[/usr/local/etc/zabbix_agentd.conf]

返回值示例:

b5052decb577e0fffd622d6ddc017e82
vfs.file.owner[file,<ownertype>,<resulttype>]

获取文件的所有者。
返回值:String
请参阅支持的平台

参数:

  • 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
vfs.file.permissions[file]

返回包含 UNIX 权限的八进制数字的四位字符串。
返回值:String
支持的平台:Linux。此项可能在其他类 UNIX 平台上工作。

参数:

  • file - 文件的完整路径

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

示例:

vfs.file.permissions[/etc/passwd] #返回 /etc/passwd 的权限,例如 '0644'
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]

在文件中检索字符串7
返回值:包含匹配字符串的行,或按可选的 output 参数指定的内容。
请参阅支持的平台

参数:

  • file - 文件的完整路径;
  • regexp - 描述所需模式的正则表达式
  • encoding - 编码的代码页标识符;
  • start line - 要搜索的第一行的行号(默认为文件的第一行);
  • end line - 要搜索的最后一行的行号(默认为文件的最后一行);
  • output - 可选的输出格式化模板。\0 转义序列将被匹配文本的匹配部分替换(从匹配开始的第一个字符到匹配结束的字符), 而 \N(其中 N=1...9)转义序列将被替换为第 N 个匹配组(如果 N 超过捕获组的数量,则替换为空字符串)。

注释:

  • 文件大小限制取决于大文件支持
  • 仅返回第一匹配行;
  • 如果没有行与表达式匹配,则返回空字符串;
  • 字节顺序标记(BOM)不包含在输出中;
  • 使用 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>]

在文件中查找字符串7
返回值:0 - 未找到匹配;1 - 找到匹配。
请参阅支持的平台

参数:

  • file - 文件的完整路径;
  • regexp - 描述所需模式的正则表达式
  • encoding - 编码的代码页标识符;
  • start line - 要搜索的第一行的行号(默认为文件的第一行);
  • end line - 要搜索的最后一行的行号(默认为文件的最后一行)。

注释:

  • 文件大小限制取决于大文件支持
  • 忽略字节顺序标记(BOM)。

示例:

vfs.file.regmatch[/var/log/app.log,error]
vfs.file.size[file,<mode>]

文件大小(以字节为单位)。
返回值:Integer
请参阅支持的平台

参数:

  • file - 文件的完整路径;
  • mode - 可能的值:bytes(默认)或 lines(空行也会被计算在内)。

注释:

  • 文件必须对用户 zabbix 有读取权限;
  • 文件大小限制取决于大文件支持

示例:

vfs.file.size[/var/log/syslog]
vfs.file.time[file,<mode>]

文件时间信息。
返回值:Integer(Unix 时间戳)。
请参阅支持的平台

参数:

  • file - 文件的完整路径;
  • mode - 可能的值:
    modify(默认)- 修改文件内容的最后时间,
    access - 读取文件的最后时间,
    change - 更改文件属性的最后时间

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

示例:

vfs.file.time[/etc/passwd,modify]
vfs.fs.discovery

挂载的文件系统列表,包含它们的类型和挂载选项。用于低级发现。
返回值:JSON 对象
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。

vfs.fs.get

挂载的文件系统列表,包含它们的类型、可用磁盘空间、inode 统计信息和挂载选项。可用于低级发现。
返回值:JSON 对象
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。

注释:

  • inode 计数等于零的文件系统(例如具有动态 inode 的文件系统(例如 btrfs))也会被报告;
  • 另请参阅:挂载的文件系统的发现
vfs.fs.inode[fs,<mode>]

inode 的数量或百分比。
返回值:Integer - 表示数量;Float - 表示百分比。
请参阅支持的平台

参数:

  • fs - 文件系统;
  • mode - 可能的值:total(总数,默认)、free(空闲)、used(已使用)、pfree(空闲百分比)或 pused(已使用百分比)。

如果 inode 计数等于零,这可能是具有动态 inode 的文件系统(例如 btrfs)的情况,则 pfree/pused 值将分别报告为 "100" 和 "0"。

示例:

vfs.fs.inode[/,pfree]
vfs.fs.inode[fs,<mode>]

inode 的数量或百分比。
返回值:Integer - 表示数量;Float - 表示百分比。
请参阅支持的平台

参数:

  • fs - 文件系统;
  • mode - 可能的值:total(总数,默认)、free(空闲)、used(已使用)、pfree(空闲百分比)或 pused(已使用百分比)。

如果 inode 计数等于零,这可能是具有动态 inode 的文件系统(例如 btrfs)的情况,则 pfree/pused 值将分别报告为 "100" 和 "0"。

示例:

vfs.fs.inode[/,pfree]
vm.memory.size[<mode>]

内存大小(以字节为单位或作为总量的百分比)。
返回值:Integer - 表示字节;Float - 表示百分比。
请参阅支持的平台

参数:

  • mode - 可能的值:total(总数,默认)、active(活跃)、anon(匿名)、buffers(缓冲)、cached(缓存)、exec(可执行)、file(文件)、free(空闲)、inactive(不活跃)、pinned(固定)、shared(共享)、slabwired(已绑定)、used(已使用)、pused(已使用的百分比)、available(可用)、pavailable(可用的百分比)。

注释:

  • 此项接受三类参数:
    1)total - 总内存量
    2)特定于平台的内存类型:activeanonbufferscachedexecfilefreeinactivepinnedsharedslabwired
    3)关于已使用和可用内存量的用户级估计:usedpusedavailablepavailable
  • active 模式参数仅在 FreeBSD、HP-UX、MacOS X、OpenBSD、NetBSD 上受支持;
  • anonexecfile 模式参数仅在 NetBSD 上受支持;
  • buffers 模式参数仅在 Linux、FreeBSD、OpenBSD、NetBSD 上受支持;
  • cached 模式参数仅在 Linux、FreeBSD、AIX、OpenBSD、NetBSD 上受支持;
  • inactivewired 模式参数仅在 FreeBSD、MacOS X、OpenBSD、NetBSD 上受支持;
  • pinned 模式参数仅在 AIX 上受支持;
  • shared 模式参数仅在 Linux 2.4、FreeBSD、OpenBSD、NetBSD 上受支持;
  • 也可参阅此项的附加细节

示例:

vm.memory.size[pavailable]
web.page.get[host,<path>,<port>]

获取网页内容。
返回值:网页源代码文本(包括头部)。
请参阅支持的平台

参数:

  • host - 主机名或 URL(形式为 scheme://host:port/path,其中只有 host 是必需的)。允许的 URL 方案:httphttps4。如果缺少方案,则将其视为 http。如果指定了 URL,则 pathport 必须为空。仅在具有 cURL 支持时,才可以在连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[email protected] 4。主机名支持 Punycode
  • path - HTML 文档的路径(默认为 /);
  • port - 端口号(默认为 HTTP 的 80 端口)。

注释:

  • 如果 host 中指定的资源不存在或不可用,则此项将变为不受支持;
  • host 可以是主机名、域名、IPv4 或 IPv6 地址。但是,对于 IPv6 地址,Zabbix 代理必须启用 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>]

完整网页加载时间(秒为单位)。
返回值:Float
请参阅支持的平台

参数:

  • host - 主机名或 URL(形式为 scheme://host:port/path,其中只有 host 是必需的)。允许的 URL 方案:httphttps4。如果缺少方案,则将其视为 http。如果指定了 URL,则 pathport 必须为空。仅在具有 cURL 支持时,才可以在连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[email protected] 4。主机名支持 Punycode。
  • path - HTML 文档的路径(默认为 /);
  • port - 端口号(默认为 HTTP 的 80 端口)。

注释:

  • 如果 host 中指定的资源不存在或不可用,则此项将变为不受支持;
  • host 可以是主机名、域名、IPv4 或 IPv6 地址。但是,对于 IPv6 地址,Zabbix 代理必须启用 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 方案:httphttps4。如果缺少方案,则将其视为 http。如果指定了 URL,则 pathport 必须为空。仅在具有 cURL 支持时,才可以在连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[email protected] 4。主机名支持 Punycode。
  • path - HTML 文档的路径(默认为 /);
  • port - 端口号(默认为 HTTP 的 80 端口);
  • regexp - 描述所需模式的正则表达式;
  • length - 要返回的最大字符数;
  • output - 可选的输出格式化模板。\0 转义序列将被匹配文本的匹配部分替换(从匹配开始的第一个字符到匹配结束的字符),而 \N(其中 N=1...9) 转义序列将被替换为第 N 个匹配组(如果 N 超过了捕获组的数量,则为空字符串)。

注释:

  • 如果 host 中指定的资源不存在或不可用,则此项将变为不受支持;
  • host 可以是主机名、域名、IPv4 或 IPv6 地址。但是,对于 IPv6 地址,Zabbix 代理必须启用 IPv6 支持编译。
  • 使用 output 参数进行内容提取是在代理上进行的。

示例:

web.page.regexp[www.example.com,index.php,80,OK,2]
       web.page.regexp[https://www.example.com,,,OK,2]|
agent.hostmetadata

代理主机元数据。
返回值:String
请参阅支持的平台

返回 HostMetadataHostMetadataItem 参数的值,如果没有定义则返回空字符串。

agent.hostname

代理主机名。
返回值:String
请参阅支持的平台

返回值:

  • 作为被动检查 - 在代理配置文件的 Hostname 参数中列出的第一个主机的名称;
  • 作为主动检查 - 当前主机名的名称。
agent.ping

代理可用性检查。
返回值:无 - 不可用;1 - 可用。
请参阅支持的平台

使用 nodata() 触发器函数检查主机的不可用性。

agent.variant

Zabbix agent的变体(Zabbix agent或 Zabbix agent 2)。
返回值:1 - Zabbix agent;2 - Zabbix agent 2。
请参阅支持的平台

agent.version

Zabbix 代理的版本。
返回值:String
请参阅支持的平台

返回值示例:

6.0.3
zabbix.stats[<ip>,<port>]

远程返回一组 Zabbix 服务器或代理的内部指标。
返回值:JSON 对象
请参阅支持的平台

参数:

  • ip - 要远程查询的服务器/代理的 IP/DNS/网络掩码列表(默认为 127.0.0.1);
  • port - 要远程查询的服务器/代理的端口(默认为 10051)

注释:

zabbix.stats[<ip>,<port>,queue,<from>,<to>]

远程返回在 Zabbix 服务器或代理上延迟的监视项目队列中的项目数量。
返回值:JSON 对象
请参阅支持的平台

参数:

  • ip - 要远程查询的服务器/代理的 IP/DNS/网络掩码列表(默认为 127.0.0.1);
  • port - 要远程查询的服务器/代理的端口(默认为 10051);
  • queue - 常量(原样使用);
  • from - 至少延迟(默认为 6 秒);
  • to - 至多延迟(默认为无穷大)

请注意,统计信息请求仅会从目标实例的 'StatsAllowedIP' server/proxy 参数中列出的地址接受。

支持的监控项键值

以下是您可以与 Zabbix agent 使用的监控项键值列表。

这些监控项键值列出了没有参数和额外信息。点击监控项键值以查看详细信息。

监控项键值 描述 监控项组
kernel.maxfiles 操作系统支持的最大打开文件数。 Kernel
kernel.maxproc 操作系统支持的最大进程数。
kernel.openfiles 当前打开文件描述符的数量。
log 监控日志文件。 日志监控
log.count 监控的日志文件中匹配行的数量。
logrt 监控已轮转的日志文件。
logrt.count 监控已轮转的日志文件中匹配行的数量。
modbus.get 读取 Modbus 数据。 Modbus
net.dns 检查 DNS 服务是否运行。 Network
net.dns.perf 检查 DNS 服务的性能。
net.dns.record 执行 DNS 查询。
net.if.collisions 网络接口上窗外冲突的数量。
net.if.discovery 网络接口列表。
net.if.in 网络接口上的入站流量统计。
net.if.out 网络接口上的出站流量统计。
net.if.total 网络接口上入站和出站流量统计的总和。
net.tcp.listen 检查此 TCP 端口是否处于监听状态。
net.tcp.port 检查是否可以连接到指定端口的 TCP 连接。
net.tcp.service 检查服务是否正在运行并接受 TCP 连接。
net.tcp.service.perf 检查 TCP 服务的性能。
net.tcp.socket.count 返回与参数匹配的 TCP 套接字数量。
net.udp.listen 检查此 UDP 端口是否处于监听状态。
net.udp.service 检查服务是否正在运行并响应 UDP 请求。
net.udp.service.perf 检查 UDP 服务的性能。
net.udp.socket.count 返回与参数匹配的 UDP 套接字数量。
proc.cpu.util 进程 CPU 利用率百分比。 Processes
proc.get 操作系统进程及其参数列表。
proc.mem 进程使用的内存字节数。
proc.num 进程数量。
sensor 硬件传感器读数。 Sensors
system.boottime 系统启动时间。 System
system.cpu.discovery 检测到的 CPU/CPU 核心列表。
system.cpu.intr 设备中断。
system.cpu.load CPU 负载。
system.cpu.num CPU 数量。
system.cpu.switches 上下文切换次数。
system.cpu.util CPU 利用率百分比。
system.hostname 系统主机名。
system.hw.chassis 机箱信息。
system.hw.cpu CPU 信息。
system.hw.devices 安装的 PCI 或 USB 设备列表。
system.hw.macaddr MAC 地址列表。
system.localtime 系统时间。
system.run 在主机上运行指定命令。
system.stat 系统统计信息。
system.sw.arch 软件架构信息。
system.sw.os 操作系统信息。
system.sw.os.get 操作系统的详细信息(版本、类型、发行名称、次要和主要版本等)。
system.sw.packages 已安装软件包列表。
system.sw.packages.get 已安装软件包的详细列表。
system.swap.in 交换入(从设备到内存)统计。
system.swap.out 交换出(从内存到设备)统计。
system.swap.size 交换空间大小(字节或占总量的百分比)。
system.uname 系统标识。
system.uptime 系统运行时间(秒)。
system.users.num 登录用户数。
vfs.dev.discovery 块设备及其类型列表。 Virtual file systems
vfs.dev.read 磁盘读取统计。
vfs.dev.write 磁盘写入统计。
vfs.dir.count 目录条目计数。
vfs.dir.get 目录条目列表。
vfs.dir.size 目录大小。
vfs.file.cksum 使用 UNIX cksum 算法计算的文件校验和。
vfs.file.contents 获取文件的内容。
vfs.file.exists 检查文件是否存在。
vfs.file.get 返回文件的信息。
vfs.file.md5sum 文件的 MD5 校验和。
vfs.file.owner 检索文件的所有者。
vfs.file.permissions 返回包含 UNIX 权限的四位字符串。
vfs.file.regexp 在文件中检索字符串。
vfs.file.regmatch 在文件中查找字符串。
vfs.file.size 文件大小。
vfs.file.time 文件时间信息。
vfs.fs.discovery 挂载的文件系统列表及其类型和挂载选项。
vfs.fs.get 挂载的文件系统列表及其类型、可用磁盘空间、inode 统计和挂载选项。
vfs.fs.inode inode 数量或百分比。
vfs.fs.size 磁盘空间(字节或占总量的百分比)。
vm.memory.size 内存大小(字节或占总量的百分比)。 Virtual memory
web.page.get 获取网页内容。 Web 监控
web.page.perf 完整网页的加载时间。
web.page.regexp 在网页中查找字符串。
agent.hostmetadata 代理主机元数据。 Zabbix
agent.hostname 代理主机名。
agent.ping 代理可用性检查。
agent.variant Zabbix agent 的变体(Zabbix agent 或 Zabbix agent 2)。
agent.version Zabbix agent 的版本。
zabbix.stats 远程返回一组 Zabbix

脚注

1 Linux 特定的注意事项。Zabbix 代理必须对 /proc 文件系统具有只读访问权限。来自 www.grsecurity.org 的内核补丁限制了非特权用户的访问权限。

2 vfs.dev.read[], vfs.dev.write[]:如果超过 3 小时没有访问项目值,则 Zabbix 代理将终止“过时的”设备连接。如果系统具有动态更改路径的设备,或者手动移除设备,可能会发生这种情况。还要注意,如果使用 3 小时或更长时间的更新间隔,则这些项目将始终返回 '0'。

3 vfs.dev.read[], vfs.dev.write[]:如果对第一个参数使用默认值 all,则该键将返回摘要统计信息,包括所有块设备(如 sda、sdb 等)及其分区(sda1、sda2、sdb3...)以及基于这些块设备/分区的多个设备(MD RAID)和基于这些块设备/分区的逻辑卷(LVM)。在这种情况下,返回的值应仅被视为相对值(随时间动态变化),而不是绝对值。

4 仅当代理使用 cURL 支持编译时,才支持 SSL(HTTPS)。否则,该项将变为不支持。

5 在 Solaris 系统中,对于环回接口,直到 Solaris 10 6/06 版本为止,不支持 byteserrors 值,因为内核未存储和/或报告字节、错误和利用率统计信息。但是,如果通过 net-snmp 监控 Solaris 系统,则可能会返回值,因为 net-snmp 具有来自 cmu-snmp 的旧代码,日期可以追溯到 1997 年,该代码在无法从接口统计信息中读取字节值时返回包计数器(在环回接口上存在)乘以任意值 308。这是一种非常粗略的估计,因为 Solaris 系统中环回接口的 MTU 限制为 8892 字节。这些值不应被认为是正确的,甚至是准确的。它们是估计值。Zabbix 代理不进行任何猜测,但 net-snmp 将为这些字段返回一个值。

6 在 Solaris 上,从 /proc/pid/psinfo 获取的命令行长度限制为 80 字节,并且包含进程启动时的命令行。

7 vfs.file.contents[], vfs.file.regexp[], vfs.file.regmatch[] 项可用于检索文件内容。如果要限制对具有敏感信息的特定文件的访问,请在没有查看这些文件权限的用户下运行 Zabbix 代理。

与命令行工具一起使用

请注意,在使用 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]

编码设置

为了确保获取的数据不会损坏,您可以在 encoding 参数中指定正确的编码来处理检查(例如 'vfs.file.contents')。支持的编码列表(代码页标识符)可以在 libiconv(GNU 项目)的文档中或者在 Microsoft Windows SDK 文档中的 "Code Page Identifiers" 中找到。

如果在 encoding 参数中未指定编码,则将应用以下解析策略:

  • 如果未指定编码(或为空字符串),则假定为 UTF-8,数据将按原样处理;
  • BOM 分析 - 适用于项目 'vfs.file.contents'、'vfs.file.regexp'、'vfs.file.regmatch'。将尝试通过使用文件开头的字节顺序标记(BOM)来确定正确的编码。如果没有 BOM,则会应用标准解析(参见上文)。

监控项故障排除

对于被动检查,为了防止由于服务器请求到代理的超时而导致监控项无法获得任何值,应注意以下事项: