1 Zabbix agent

概述

本节提供了有关使用与 Zabbix agent 通信以进行数据收集的 监控项 键的详细信息。

存在 passive and active agent 检查。配置 监控项 时,可以选择所需的类型:

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

请注意,Zabbix agent 在 Windows 上支持的所有 监控项 键也由新一代的 Zabbix agent 2 支持。
请参见 additional item keys,这些键只能与 agent 2 一起使用。

支持的监控项键

与 Zabbix agent 一起使用的 监控项 键如下所示。

监控项 键列示时不带参数和附加信息。单击 监控项 键以查看完整详细信息。

监控项 监控项 键值 描述 监控项 监控项 组
kernel.maxfiles 操作系统支持的最大打开文件数。 内核
kernel.maxproc 操作系统支持的最大进程数。
kernel.openfiles 当前打开的 file 描述符数量。
log 日志文件的监控。 Log monitoring
log.count 监控日志文件中匹配行的数量。
logrt 监控一个被轮换的日志 file。
logrt.count 在被监控的日志 file 中匹配行的数量,该日志会被轮换。
modbus.get 读取 Modbus 数据。 Modbus
net.dns 检查 DNS 服务的状态。 网络
net.dns.perf 检查 DNS 服务的性能。
net.dns.record 执行 DNS query。
net.if.collisions 窗口外冲突的数量。
net.if.discovery 网络接口列表。
net.if.in 网络接口上的入站流量统计。
net.if.out 网络接口上的出站流量统计信息。
net.if.total 网络接口上入站和出站流量统计的总和。
net.tcp.listen 检查此 TCP 端口是否处于 LISTEN 状态。
net.tcp.port 检查是否可以建立到指定端口的 TCP 连接。
net.tcp.service 检查服务是否正在运行并接受 TCP 连接。
net.tcp.service.perf 检查 TCP 服务的性能。
net.tcp.socket.count 返回符合参数的 TCP 套接字数量。
net.udp.listen 检查此UDP端口是否处于LISTEN状态。
net.udp.service 检查服务是否正在运行并响应UDP请求。
net.udp.service.perf 检查UDP服务的性能。
net.udp.socket.count 返回与参数匹配的 UDP 套接字数量。
proc.cpu.util 进程CPU利用率百分比。 进程
proc.get 操作系统进程及其参数列表。
proc.mem 进程使用的 memory 字节数。
proc.num 进程数量。
sensor 硬件传感器读数。 传感器
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 交换出去(从 memory 到设备上)的统计信息。
system.swap.size 交换空间大小,以字节或占总量的百分比表示。
system.uname 系统的标识。
system.uptime 系统正常运行时间(以秒为单位)。
system.users.num 登录用户的数量。
vfs.dev.discovery 块设备及其类型的列表。 虚拟 file 系统
vfs.dev.read 磁盘读取统计信息。
vfs.dev.write 磁盘写入统计信息。
vfs.dir.count 目录条目数。
vfs.dir.get 目录条目列表。
vfs.dir.size 目录大小。
vfs.file.cksum 由 UNIX cksum 算法计算出的 file 校验和。
vfs.file.contents 检索文件的内容。
vfs.file.exists 检查 file 是否存在。
vfs.file.get 返回有关文件的信息。
vfs.file.md5sum 文件的MD5校验和。
vfs.file.owner 检索文件的所有者。
vfs.file.permissions 返回一个 4 位数的 string,其中包含带有 UNIX 权限的八进制数字。
vfs.file.regexp 在文件中检索一个 string。
vfs.file.regmatch 在文件中查找一个 string。
vfs.file.size file 大小。
vfs.file.time 最后一次 file 时间信息。
vfs.fs.discovery 已挂载文件系统的列表,包括它们的类型和挂载选项。
vfs.fs.get 已挂载文件系统的列表,包含其类型、可用磁盘空间、inode 统计信息和挂载选项。
vfs.fs.inode inode 的数量或百分比。
vfs.fs.size 以字节或占总量的百分比形式表示的磁盘空间。
vm.memory.size 以字节或占总量的百分比表示的 memory 大小。 虚拟内存
web.page.get 获取网页内容。 Web 监控
web.page.perf 完整网页的加载时间。
web.page.regexp 在网页上查找一个 string。
agent.hostmetadata agent 主机 的元数据。 Zabbix
agent.hostname agent 主机名。
agent.ping agent 可用性检查。
agent.variant Zabbix agent 的变体(Zabbix agent 或 Zabbix agent 2)。
agent.version version 的 Zabbix agent。
zabbix.stats | 返回一组Zabbix server或proxy内部指标的远程数据。 | ^ |
zabbix.stats | 返回队列中在 Zabbix server 或 proxy 上延迟的受监控 监控项 数量。 | ^ |

支持平台

除非在监控项详细信息中另有说明,agent 监控项(及其所有参数)支持在以下系统上使用:

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

许多agent 监控项也在Windows上受支持。详细信息请参见共享监控项页面。

监控项 键详情

不带尖括号的参数是必填的。用尖括号 < > 标记的参数是可选的。

内核最大文件数


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

内核最大进程数


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

内核打开的文件数


当前打开的 file 描述符数量。
返回值:integer
支持的平台:Linux(监控项 在其他类 UNIX 平台可能有效)。

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


日志监控file。
返回值:Log
请参阅支持的平台

参数:

  • file - 日志文件file的完整路径及名称;
  • regexp - 描述所需模式的正则表达式概述
  • encoding - 代码页 编码设置
  • maxlines - agent每秒向Zabbix server或proxy发送的最大换行数。该参数会覆盖zabbix_agentd.conf中的'MaxLinesPerSecond'值;
  • mode - 可选值:all(默认)或 skip - 跳过对旧数据的处理(仅影响新创建的 监控项);
  • output - 可选的输出格式化模板。\0 转义序列会被替换为匹配的文本部分(从匹配开始的第一个字符到匹配结束的字符),而 \N(其中N=1...9)转义序列会被替换为第N个匹配组(如果N超过捕获组的数量,则替换为空string);
  • maxdelay - 最大延迟(秒)。类型:float。取值:0 - (默认)永不忽略日志file行;> 0.0 - 为get在"maxdelay"秒内分析的最新行而忽略旧行。使用前请阅读使用-maxdelay-参数注意事项!
  • options - 附加选项:
    mtime-noreread - 非唯一记录,仅当file大小变化时重新读取(忽略修改时间变化)。(该参数自5.0.2起已弃用,因为现在会忽略mtime。)
  • 持久化目录(仅适用于Unix系统中的zabbix_agentd;Zabbix agent 2不支持)——用于存储持久化文件的目录绝对路径。另请参阅日志持久化文件注意事项-监控项的附加说明。

注释:

  • 监控项 必须配置为 主动检查
  • 如果file缺失或权限不允许访问,监控项将转为不支持状态;
  • 如果output留空 - 将返回包含匹配文本的整行。请注意,除"结果为TRUE"外的所有全局正则表达式类型始终返回整条匹配行,此时output参数将被忽略。
  • 使用output参数的内容提取操作在agent上执行。

示例:

日志[/var/log/syslog]
       log[/var/log/syslog,error]
       log[/home/zabbix/logs/logfile,,,100]

使用output参数从日志记录中提取数字的示例:

log[/app1/app.log,"任务 run [0-9.]+ 秒,处理了 ([0-9]+) 条记录,[0-9]+ 个错误",,,,\1] #此 监控项 将匹配日志记录"2015-11-13 10:08:26 任务 run 6.08 秒,处理了 6080 条记录,0 个错误"并仅发送'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"到服务器。
日志计数[file,<正则表达式>,<编码>,<最大处理行数>,<模式>,<最大延迟>,<选项>,<持久化目录>]


监控日志file中匹配行的计数。
返回值:integer
参见支持的平台

参数:

  • file - 日志file的完整路径及名称;
  • regexp - 描述所需模式的正则概述
  • encoding - 代码页编码设置
  • maxproclines - agent每秒分析的最大新行数(不得超过10000)。默认值为zabbix_agentd.conf中的10*'MaxLinesPerSecond'。
  • mode - 可选值:all(默认)或skip - 跳过旧数据处理(仅影响新创建的监控项)。
  • maxdelay - 最大延迟秒数。类型:float。取值:0 - (默认)永不忽略日志file行;> 0.0 - 为get在"maxdelay"秒内分析的最新行而忽略旧行。使用前请阅读使用-maxdelay-参数说明!
  • options - 附加选项:
    mtime-noreread - 非唯一记录,仅当file大小变化时重读(忽略修改时间变化)。(该参数自5.0.2起废弃,因现忽略mtime。)
  • persistent dir(仅限Unix系统的zabbix_agentd;Zabbix agent 2不支持) - 持久化文件存储目录的绝对路径名。另见日志持久化文件注意事项-监控项的附加说明。

注释:

  • 监控项必须配置为主动检查
  • 匹配行数统计自上次agent检查日志后的新增行,因此取决于监控项的update间隔;
  • 若file缺失或权限不足,监控项将转为不支持状态。
logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]


监控轮转日志file 返回值:Log
请参阅支持的平台

参数:

  • file regexp - file的绝对路径,其中file名称通过正则expression指定。需注意该正则表达式仅适用于file名称,无需匹配完整路径(例如/path/to/agent可匹配zabbix_agentd.log)。
  • regexp - 描述所需内容模式的正则表达式概述
  • encoding - 代码页 编码设置
  • maxlines - agent每秒向Zabbix server或proxy发送的最大换行数。此参数会覆盖zabbix_agentd.conf中的'MaxLinesPerSecond'值。
  • mode - 可选值:all(默认)或 skip - 跳过对旧数据的处理(仅影响新创建的 监控项)。
  • output - 可选的输出格式化模板。转义序列 \0 会被替换为匹配的文本部分(从匹配开始的第一个字符到匹配结束的字符),而 \N(其中N=1...9)转义序列会被替换为第N个匹配组(如果N超过捕获组的数量,则替换为空值string)。
  • maxdelay - 最大延迟秒数。类型:float。取值:0 - (默认)永不忽略日志file行;> 0.0 - 为get在"maxdelay"秒内分析的最新行而忽略旧行。使用前请阅读使用-maxdelay-参数说明!
  • options - 日志file轮转类型及其他选项。可选值:
    rotate(默认值),
    copytruncate - 注意copytruncate不能与maxdelay同时使用。此时maxdelay必须为0或不指定;参见关于处理copytruncate日志文件轮转的注意事项说明,
    mtime-reread - 非唯一记录,当修改时间或大小变化时重新读取(默认),
    mtime-noreread - 非唯一记录,仅当大小变化时重新读取(忽略修改时间变化)。
  • 持久化目录(仅适用于Unix系统中的zabbix_agentd;Zabbix agent 2不支持)——用于存储持久化文件的目录绝对路径名。另请参阅日志持久化文件注意事项-监控项的附加说明。

注释:

  • 监控项 必须配置为 主动检查
  • 日志轮转基于文件的最后修改时间;
  • 请注意,logrt设计用于处理一个当前活跃的日志file,同时匹配多个已轮转的非活跃文件。例如,若某目录中存在多个活跃日志文件,应为每个文件单独创建logrt监控项。否则,若单个logrt监控项捕获过多文件,可能导致memory耗尽并引发监控崩溃。
  • 如果output留空 - 则返回包含匹配文本的整行。请注意,除"结果为TRUE"外的所有全局正则表达式类型始终返回整行匹配内容,此时output参数将被忽略。
  • 使用 output 参数的内容提取发生在 agent 上。
  • 在 file regexp 参数中,日志目录路径和日志 file 正则表达式必须使用正确的目录分隔符进行分隔:
    • 在Windows系统上,分隔符必须为反斜杠(\);其他位置可能允许使用正斜杠,但用于分隔日志目录路径与日志file正则表达式的分隔符除外(参见下方示例)。
    • 在其他系统上,必须使用正斜杠(/)。

Windows示例:

logrt["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #该监控项将从"c:/dir1/dir2/dir3"目录下收集日志文件数据,其中file文件名以"filename"开头且扩展名匹配".log"结尾。
       logrt["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #该监控项将从网络共享路径"//example.com/share/dir1/dir2/dir3"中收集日志文件数据,其中file文件名以"filename"开头且扩展名匹配".log"结尾。

其他系统示例:

logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] #该监控项将匹配类似"logfile1"的file(不会匹配".logfile1")。
       logrt["/home/user/^logfile_.*_[0-9]{1,3}$","匹配模式","UTF-8",100] #此监控项将从诸如"logfile_abc_1"或"logfile__001"等文件中收集数据。

使用output参数从日志记录中提取数字的示例:

logrt[/app1/^test.*log$,"任务 run [0-9.]+ 秒,处理了 ([0-9]+) 条记录,[0-9]+ 个错误",,,,\1] #该 监控项 将匹配日志记录"2015-11-13 10:08:26 任务 run 6.08 秒,处理了 6080 条记录,0 个错误"并仅将'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 中匹配行数的计数,该日志会被轮转。
返回值:integer
参见 支持的平台

参数:

  • file regexp - 文件的绝对路径,使用正则 expression 指定 file 名称。请注意,正则表达式仅适用于 file 名称,并且不需要完全匹配整个名称(例如,/path/to/agent 将匹配 zabbix_agentd.log)。
  • regexp - 描述所需模式的正则 概述
  • encoding - 代码页 编码设置
  • maxproclines - 每秒 agent 将分析的新行数的最大值(不能超过 10000)。默认值为 10*'MaxLinesPerSecond' 在 zabbix_agentd.conf 中。
  • mode - 可能值:all(默认)或 skip - 跳过旧数据的处理(仅影响新创建的 监控项)。
  • maxdelay - 最大延迟时间(以秒为单位)。类型:float。值:0 - (默认)从不忽略日志 file 行;> 0.0 - 忽略较旧的行以便在 "maxdelay" 秒内 get 最近的行进行分析。使用前请阅读 使用-maxdelay-参数 注意事项!
  • options - 日志 file 轮转类型及其他选项。可能值:
    rotate(默认),
    copytruncate - 注意 copytruncate 不能与 maxdelay 一起使用。在这种情况下,maxdelay 必须为 0 或未指定;请参见 关于处理copytruncate日志文件轮转的注意事项 注意事项,
    mtime-reread - 非唯一记录,如果修改时间或大小发生变化则重新读取(默认),
    mtime-noreread - 非唯一记录,仅当大小发生变化时重新读取(忽略修改时间变化)。
  • persistent dir(仅在 Unix 系统上的 zabbix_agentd 中支持;Zabbix agent 2 中不支持)- 存储持久文件的目录的绝对路径。另请参见有关 日志持久化文件注意事项-监控项 的其他注意事项。

评论:

  • 监控项 必须配置为一个 主动检查
  • 匹配的行数是自上次 agent 检查日志以来新增行中的匹配行数,因此依赖于 监控项 update 的间隔;
  • 日志轮转基于文件的最后修改时间;
  • file regexp 参数中,日志目录路径和日志 file 正则表达式必须使用正确的目录分隔符分隔:
    • 在 Windows 上,分隔符必须是反斜杠(\);在其他位置可以容忍正斜杠,但日志目录路径和日志 file 正则表达式之间的分隔符除外(请参见下面的示例)。
    • 在其他系统上,必须使用正斜杠(/)。

Windows 示例:

logrt.count["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #此 监控项 将计算位于 "c:/dir1/dir2/dir3" 中的日志文件中与模式 "pattern_to_match" 匹配的行数。
       logrt.count["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #此 监控项 将计算位于网络共享 "//example.com/share/dir1/dir2/dir3" 中的日志文件中与模式 "pattern_to_match" 匹配的行数。

其他系统示例:

logrt.count["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] #此 监控项 将计算位于 "/home/zabbix/logs" 目录中的日志文件中与模式 "^logfile[0-9]{1,3}$" 匹配的行数。
       logrt.count["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #此 监控项 将计算位于 "/home/user" 中的日志文件中与模式 "pattern_to_match" 匹配的行数。
modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]


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

参数:

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

参见参数的 detailed description

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


检查DNS服务的状态。
返回值:0 - DNS解析失败(DNS服务器未响应或返回错误);1 - DNS解析成功。
参见支持的平台

参数:

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

注释:

  • type的可能取值包括:ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(Windows上Zabbix agent不支持,所有操作系统上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.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服务的性能。
返回值:float(0 - 服务已停止;秒数 - 等待服务响应所花费的秒数)。
参见支持的平台

参数:

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

注释:

  • type的可能值包括:
    ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(Windows上Zabbix agent不支持,所有操作系统上Zabbix agent 2不支持)、HINFO, MINFO, TXT, SRV
  • 对于反向DNS查找(当将type设置为PTR时),您可以以反转和非反转格式提供DNS名称(参见下面的示例)。 请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。
  • 不支持国际化域名,请改用IDNA编码的名称。
  • 自Zabbix 7.0.1起,当DNS服务器以错误代码响应时(例如,NXDOMAIN或SERVFAIL),监控项返回响应时间而不是0

示例:

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.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 query。

Zabbix agent 2 还提供了 net.dns.get,它提供了更多功能,例如更多记录类型以及对DNS监控的更大控制。 返回值:一个包含所需信息类型的字符 string。
请参阅 支持的平台

参数:

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

评论:

  • type 的可能值包括:
    ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(在Windows上 Zabbix agent 不支持,所有操作系统上的 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.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
网络接口冲突数[接口]


窗口外冲突的数量。
返回值:integer
支持的平台:Linux、FreeBSD、Solaris、AIX、MacOS X、OpenBSD、NetBSD。NetBSD 上需要 root 权限。

参数:

  • if - 网络接口名称
网络接口发现


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

网络接口入站流量[接口,<模式>]


网络接口上的入站流量统计。
返回值:integer
支持的平台: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 - 设备驱动程序接收的多播帧数

备注:

  • 您可以将此键与每秒更改预处理步骤一起使用,以get每秒字节统计信息;
  • dropped模式仅支持Linux、FreeBSD、HP-UX、MacOS X、OpenBSD、NetBSD;
  • overrunsframecompressedmulticast模式仅支持Linux;
  • 在HP-UX上,此监控项不提供环回接口(例如lo0)的详细信息。

示例:

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


网络接口上的出站流量统计。
返回值:integer
支持的平台: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 - 设备驱动传输的压缩数据包数

备注:

  • 您可以将此键与 每秒变化量 预处理步骤一起使用,以 get 每秒字节统计信息;
  • dropped 模式仅支持 Linux、HP-UX;
  • overrunscollisioncarriercompressed 模式仅支持 Linux;
  • 在 HP-UX 上,此 监控项 不提供环回接口(例如 lo0)的详细信息。

示例:

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


网络接口上入站和出站流量统计的总和。
返回值:integer
支持的平台: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 - 设备驱动程序传输或接收的压缩数据包数

备注:

  • 您可以将此监控项键值与每秒变化值预处理步骤一起使用,以get每秒字节统计信息;
  • 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及以上版本中,如果可能,将从内核的NETLINK接口获取关于监听TCP套接字的信息。否则,信息将从/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>] {#net.tcp.service}


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

参数:

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

备注:

  • 这些检查可能会在系统守护进程日志文件中产生额外的消息(通常会记录SMTP和SSH会话);
  • 当前不支持加密协议的检查(例如端口993上的IMAP或端口995上的POP)。作为变通方案,请对这类检查使用 net.tcp.port[]
  • 在Windows上对LDAP和HTTPS的检查仅由 Zabbix agent 2 支持;
  • Telnet检查会查找 login 提示符(以冒号 ':' 结尾)。

示例:

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


检查TCP服务的性能。
返回值:float(0 - 服务已停止;秒数 - 等待服务响应所花费的秒数)。
请参阅支持的平台

参数:

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

备注:

  • 当前不支持加密协议的检查(如端口993上的IMAP或端口995上的POP)。作为变通方案,请对这类检查使用 net.tcp.service.perf[tcp,<ip>,<port>]
  • Telnet检查会查找 login 提示符(以 ':' 结尾)。

示例:

net.tcp.service.perf[ssh] #这个 监控项 可用于测试SSH服务器初始响应的速度
net.tcp.socket.count[<本地地址>,<本地端口>,<远程地址>,<远程端口>,<状态>]


返回匹配参数的 TCP 套接字数量。
返回值:integer
支持的平台: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] #处于 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>] {#net.udp.service}


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

参数:

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

示例:

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


检查UDP服务的性能。
返回值:float(0 - 服务已停止;秒数 - 等待服务响应所花费的秒数)。
请参阅 支持的平台

参数:

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

示例:

net.udp.service.perf[ntp] #这个 监控项 可用于测试来自NTP服务的响应时间
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]


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

参数:

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

示例:

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


进程的CPU使用率百分比。
返回值:float
支持的平台:Linux,Solaris6

参数:

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

备注:

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

示例:

proc.cpu.util[,root] # 以"root"用户身份运行的所有进程的CPU使用率
       proc.cpu.util[zabbix_server,zabbix] # 以zabbix用户身份运行的所有zabbix_server进程的CPU使用率
proc.get[<名称>,<用户>,<命令行>,<模式>]


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

参数:

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

注释:

  • 如果某个值无法获取,例如由于错误(进程已终止、权限不足、系统调用失败),将返回 -1
  • 查看 notes 中关于使用 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>]


进程使用的memory(以字节为单位)。
返回值:integer - 使用 mode 作为 最大值最小值总和float - 使用 mode 作为 平均值
支持的平台: Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。

参数:

  • name - 进程名称(默认为所有进程);
  • user - 用户名(默认为所有用户);
  • mode - 可选值:avg(平均值)、max(最大值)、min(最小值)或 sum(总和)(默认值);
  • cmdline - 按命令行筛选(这是一个正则表达式概述);
  • memtype - 进程所使用的type of memory

注释:

  • memtype 参数仅在 Linux、FreeBSD、Solaris6、AIX 系统上受支持;
  • 当多个进程共享memory时,各进程使用的memory总和可能会产生过大且不切实际的值。

    关于如何使用name和cmdline参数(Linux特有)筛选进程,请参阅notes

    当从命令行调用此监控项且包含命令行参数时(例如使用agent测试模式:zabbix_agentd -t proc.mem[,,,apache2]),由于agent会统计自身,因此会多计算一个进程。

示例:

proc.mem[,root] #所有以"root"用户身份运行的进程所使用的memory
       proc.mem[zabbix_server,zabbix] #所有由zabbix用户运行的zabbix_server进程所使用的memory
       proc.mem[,oracle,max,oracleZABBIX] #该memory用于命令行中包含oracleZABBIX的Oracle环境下运行的最耗memory的进程
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]


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

参数:

  • name - 进程名称(默认为所有进程);
  • user - 用户名(默认为所有用户);
  • state - 可能取值:
    all(默认值),
    disk - 不可中断休眠状态,
    run - 运行中,
    sleep - 可中断休眠状态,
    trace - 已停止,
    zomb - 僵尸进程;
  • cmdline - 按命令行筛选(这是一个正则概述);
  • zone - 目标区域:current(默认)或 all。此参数仅在 Solaris 上受支持。

注释:

  • disktrace 状态参数仅在 Linux、FreeBSD、OpenBSD、NetBSD 系统上受支持;
  • 当从命令行调用此监控项且包含命令行参数时(例如使用agent测试模式:zabbix_agentd -t proc.num[,,,apache2]),由于agent会统计自身进程,因此会多计算一个额外进程;
  • 当将参数zone设置为current(或默认值)时,若agent是在不支持区域的Solaris系统上编译,但运行于支持区域的新版Solaris环境中,则agent将返回NOTSUPPORTED(因为agent无法将结果限制在当前区域内)。不过,此场景下仍支持all选项。
  • 关于使用name和cmdline参数选择进程(Linux特有功能),请参阅notes

示例:

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


硬件传感器读数。
返回值:float
支持的平台: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的平均温度
系统启动时间


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

system.cpu.discovery


检测到的 CPU/ CPU 内核列表。用于低级别自动发现。
返回值:JSON object
参见 支持的平台

系统CPU中断


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

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


[CPU load](http://en.wikipedia.org/wiki/Load_(computing))。
返回值:float
参见支持的平台

参数:

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

示例:

system.cpu.load[,avg5]
system.cpu.num[<类型>]


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

参数:

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

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

示例:

system.cpu.num
系统CPU切换


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

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


CPU利用率百分比。
返回值:float
支持平台:Linux、FreeBSD、Solaris、HP-UX、AIX、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、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[<类型>,<转换>]


系统 主机名。
返回值: string
参见 支持的平台

参数:

  • type - 可选值: netbios (Windows 上默认), 主机 (Linux 上默认), shorthost (返回主机名中第一个点之前的部分,对于不含点的名称则返回完整的 string), 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[主机] → Win-Serv2008-I6LonG
       system.hostname[主机,lower] → win-serv2008-i6long
       system.hostname[fqdn,lower] → blog.zabbix.com
system.hw.chassis[<info>]


机箱信息。
返回值:string
支持平台:Linux。

参数:

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

注释:

  • 该 监控项 键依赖于 SMBIOS 表的可用性;
  • 它将尝试从 sysfs 读取 DMI 表,如果 sysfs 访问失败,则尝试直接从 memory 读取;
  • 需要root权限,因为该值是通过从 sysfs 或 memory 读取获取的。

示例:

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


CPU相关信息。
返回值: stringinteger
支持的平台: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[<类型>]


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

参数:

  • type - pci(默认)或usb

返回lspci或lsusb工具的输出(执行时不带任何参数)。

示例:

system.hw.devices → 00:00.0 主机 桥接器:Advanced Micro Devices [AMD] RS780 主机 桥接
system.hw.macaddr[<接口>,<格式>]


MAC地址列表。
返回值:string
支持的平台: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[<类型>]


系统时间。
返回值: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] #create 使用此键创建一个监控项,然后将其用于在 *Clock* 仪表板小部件中显示主机时间。
system.run[command,<mode>]


在主机上运行指定命令。
返回值:命令的文本结果或1 - 当使用mode作为nowait参数时(无论命令执行结果如何)。
参见支持的平台

参数:

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

注释:

  • 该监控项默认处于禁用状态。了解如何enable them
  • 监控项的返回值包含命令产生的标准输出和标准错误输出。退出码检查不会被执行;
  • 为确保正确处理,命令返回值必须是text数据类型。空结果也被允许;
  • 返回值限制为16MB(包括会被截断的尾部空格);文本数据限制同样适用;
  • 另请参阅:Command execution

示例:

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


系统统计信息。
返回值:integerfloat
支持的平台:AIX。

参数:

  • ent - 本分区有权获得的处理器单元数量(float);
  • kthr,<type> - 关于内核线程状态的信息:
    r - 可运行的内核线程平均数量(float)
    b - 放入虚拟内存管理器等待队列的内核线程平均数量(float)
  • memory,<type> - 关于虚拟内存和实内存使用情况的信息:
    avm - 活跃的虚拟页面(integer)
    fre - 空闲列表的大小(integer)
  • page,<type> - 关于页面错误和分页活动的信息:
    fi - 每秒的file页面输入(float)
    fo - 每秒的file页面输出(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 - 指示每秒传输到驱动器的数据量(读或写),单位为字节(integer)
    tps - 指示每秒发送到物理磁盘/磁带的传输次数(float)

备注:

  • 请注意以下监控项中的限制:
    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
系统软件架构


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

该信息来源于 uname() 函数。

示例:

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


操作系统信息。
返回值: string
支持的平台:Linux、Windows。

参数:

  • info - 可能的值:full(默认),shortname

信息获取来源(注意并非所有发行版都包含以下所有文件和选项):

  • /proc/versionfull)在Linux系统上;
  • /proc/version_signatureshort)在Linux系统上;
  • 来自支持该参数的Linux系统上的 /etc/os-release 的PRETTY_NAME参数或 /etc/issue.netname);
  • 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]
系统软件操作系统获取


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

system.sw.packages[<正则表达式>,<包管理器>,<输出格式>]


已安装软件包的列表。
返回值:文本
支持的平台: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[<正则表达式>,<管理器>]


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

参数:

  • regexp - all(默认)或一个正则表达式 概述
  • manager - all(默认)或一个软件包管理器(可选值:rpmdpkgpkgtoolpacmanportage)。

备注:

  • 返回未格式化的 JSON,包含名称匹配给定正则表达式的已安装软件包;
  • 输出是一个 array,其中每个 objects 包含以下键:name、manager、version、size、architecture、buildtime 和 installtime(参见 more details)。
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>]


交换分区写入(从 memory 写入到设备)的统计信息。
返回值: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、OpenBSD。

参数:

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

备注:

  • 请注意,如果交换空间大小为 0,Windows 上不支持 pfreepused
  • 如果未指定设备,Zabbix agent 将仅考虑交换设备(文件),物理的 memory 将被忽略。例如,在 Solaris 系统上,swap -s 命令包含一部分物理 memory 和交换设备(不同于 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。

配置 中,使用 suptime 单位以使 get 返回可读值。

系统用户数


当前登录用户的数量。
返回值:integer
参见 支持的平台

who 命令在 agent 端使用以获取该值。

vfs.dev.discovery


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

vfs.dev.read[<设备>,<类型>,<模式>]


磁盘读取统计信息。
返回值:integer - 以 type 为单位,单位包括 sectorsoperationsbytesfloat - 以 type 为单位,单位包括 spsopsbps
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD。

参数:

  • device - 磁盘设备(默认为 all 3);
  • type - 可选值:sectorsoperationsbytesspsopsbpsspsopsbps 分别表示每秒的扇区数、操作数、字节数);
  • mode - 可选值:avg1(一分钟平均值,默认值)、avg5avg15。该参数仅在 type 为 sps、ops、bps 时支持。

备注:

  • 如果 update 的间隔为三小时或更长2,该 监控项 将始终返回 '0';
  • sectorssps 类型参数仅支持 Linux;
  • ops 类型参数仅支持 Linux 和 FreeBSD;
  • bps 类型参数仅支持 FreeBSD;
  • bytes 类型参数仅支持 FreeBSD、Solaris、AIX、OpenBSD;
  • mode 参数仅支持 Linux 和 FreeBSD;
  • 您可以使用相对设备名(例如 sda),也可以选择性地加上 /dev/ 前缀(例如 /dev/sda);
  • 支持 LVM 逻辑卷;
  • 不同操作系统下 '类型' 参数的默认值:
    AIX - operations
    FreeBSD - bps
    Linux - sps
    OpenBSD - operations
    Solaris - bytes
  • 在支持的平台上,spsopsbps 仅支持最多 1024 个设备(1023 个单独设备和一个 all 设备)。

示例:

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


磁盘写入统计信息。
返回值:integer - 使用 type 单位为 sectorsoperationsbytesfloat - 使用 type 单位为 spsopsbps
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD。

参数:

  • device - 磁盘设备(默认为 all 3);
  • type - 可选值:sectorsoperationsbytesspsopsbpsspsopsbps 分别表示每秒的扇区数、操作数、字节数);
  • mode - 可选值:avg1(一分钟平均值,默认值)、avg5avg15。此参数仅在 type 为 sps、ops、bps 时支持。

备注:

  • 如果使用 update 间隔为三小时或更长2,此 监控项 将始终返回 '0';
  • sectorssps 类型参数仅在 Linux 上支持;
  • ops 类型参数仅在 Linux 和 FreeBSD 上支持;
  • bps 类型参数仅在 FreeBSD 上支持;
  • bytes 类型参数仅在 FreeBSD、Solaris、AIX、OpenBSD 上支持;
  • mode 参数仅在 Linux 和 FreeBSD 上支持;
  • 您可以使用相对设备名称(例如,sda),也可以选择性地加上 /dev/ 前缀(例如,/dev/sda);
  • 支持 LVM 逻辑卷;
  • 不同操作系统下 '类型' 参数的默认值:
    AIX - operations
    FreeBSD - bps
    Linux - sps
    OpenBSD - operations
    Solaris - bytes
  • 在支持的平台上,spsopsbps 支持最多 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 - 用于描述要包含的实体(file、目录、符号链接)名称模式的正则概述;若为空则包含所有(默认值);
  • regex excl - 用于描述要排除的实体(file、目录、符号链接)名称模式的正则概述;若为空则不排除任何内容(默认值);
  • types incl - 要计数的目录条目类型,可能值:file - 常规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 - 要计数的file的最小大小(字节)。更小的文件不会被计数。可使用内存大小后缀
  • max size - 要计数的file的最大大小(字节)。更大的文件不会被计数。可使用内存大小后缀
  • min age - 要计数的目录条目的最小年龄(秒)。更新的条目不会被计数。可使用时间后缀
  • max age - 要计数的目录条目的最大年龄(秒)。如此旧及更旧的条目不会被计数(修改时间)。可使用时间后缀
  • regex excl dir - 用于描述要排除的目录名称模式的正则概述。该目录的所有内容将被排除(与regex_excl不同)。

注释:

  • 不支持环境变量,如%APP_HOME%、$HOME和%TEMP%;
  • 伪目录"."和".."从不计数;
  • 符号链接在目录遍历时不会被跟随;
  • 在计算条目计数时,regex incl和regex excl同时应用于文件和目录,但在选择要遍历的子目录时会被忽略(如果regex incl是“(?i)^.+\.zip$”且max depth未设置,则所有子目录都会被遍历,但仅zip类型的文件会被计数)。
  • 执行时间受agent超时中的超时值限制(3秒)。由于大型目录遍历可能耗时更长,因此不会返回数据且监控项将变为不支持。不会返回部分计数。
  • 按大小过滤时,仅常规文件具有有意义的大小。在Linux和BSD下,目录也有非零大小(通常为几KB)。设备大小为零,例如/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"] #监控临时目录中的文件数量
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 - 套接字,bdev - 块设备,cdev - 字符设备,fifo - FIFO,dev - 等同于 "bdev,cdev",all - 所有类型(默认值),即 "file,dir,sym,sock,bdev,cdev,fifo"。多个类型必须用逗号分隔并加引号。
  • types excl - 不列出的目录条目类型(参见 types incl)。如果某种条目类型同时存在于 types incltypes excl,则该类型的目录条目将不会被列出。
  • max depth - 遍历子目录的最大深度:
    -1(默认值)- 无限制,
    0 - 不进入子目录。
  • min size - 要列出的 file 的最小大小(以字节为单位)。更小的文件将不会被列出。可以使用 内存大小后缀
  • max size - 要列出的 file 的最大大小(以字节为单位)。更大的文件将不会被列出。可以使用 内存大小后缀
  • min age - 要列出的目录条目的最小年龄(以秒为单位)。较新的条目将不会被列出。可以使用 时间后缀
  • max age - 要列出的目录条目的最大年龄(以秒为单位)。如此旧或更旧的条目将不会被列出(修改时间)。可以使用 时间后缀
  • regex excl dir - 用于描述要排除的目录名称模式的正则表达式 概述。该目录下的所有内容都将被排除(与 regex excl 不同)。

备注:

  • 不支持环境变量,例如 %APP_HOME%、$HOME 和 %TEMP%;
  • 伪目录 "." 和 ".." 永远不会被列出;
  • 目录遍历时永远不会跟随符号链接;
  • 在生成条目列表时,regex inclregex excl 都会应用于文件和目录,但在选择要遍历的子目录时会被忽略(例如,如果 regex incl 是 “(?i)^.+\.zip$” 且 max depth 未设置,则所有子目录都将被遍历,但只列出 zip 类型的文件)。
  • 执行时间受 agent 中 超时 设置的超时值限制。由于遍历大型目录可能耗时更长,因此可能不会返回数据,且 监控项 将变为不支持状态。不会返回部分列表。
  • 按大小进行过滤时,只有普通文件具有有意义的大小。在 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"] #检索临时目录中的 file 列表
vfs.dir.size[dir,<正则表达式包含>,<正则表达式排除>,<模式>,<最大深度>,<目录正则表达式排除>]


目录大小(以字节为单位)。
返回值:integer
支持平台:Linux。该监控项可能在其他类UNIX平台上工作。

参数:

  • dir - 目录的绝对路径;
  • regex incl - 用于描述要包含的实体(file、目录、符号链接)名称模式的正则概述;若为空则包含所有(默认值);
  • regex excl - 用于描述要排除的实体(file、目录、符号链接)名称模式的正则概述;若为空则不排除任何内容(默认值);
  • mode - 可选值:apparent(默认)- 获取表观file大小而非磁盘使用量(作用同du -sb dir),disk - 获取磁盘使用量(作用同du -s -B1 dir)。与du命令不同,vfs.dir.size 监控项在计算目录大小时会考虑隐藏文件(作用同目录内的du -sb .[^.]* *)。
  • max depth - 要遍历的子目录最大深度:-1(默认)- 无限制,0 - 不进入子目录。
  • regex excl dir - 用于描述要排除的目录名称模式的正则概述。该目录的所有内容将被排除(与regex excl形成对比)

注释:

  • 仅计算对zabbix用户至少具有读取权限的目录。对于仅具有读取权限的目录,仅计算目录本身的大小。具有读取和execute权限的目录会计算包括内容在内的大小。
  • 对于大型目录或慢速驱动器,由于agentserver/proxy配置文件中的超时设置,此监控项可能会超时。请根据需要增加超时值。
  • file大小限制取决于large file support

示例:

vfs.dir.size[/tmp,log] #计算/tmp中名称包含'日志'的所有文件的大小
       vfs.dir.size[/tmp,log,^.+\.old$] #计算/tmp中名称包含'日志'的所有文件的大小,排除名称以'.old'结尾的文件
vfs.file.cksum[file,<mode>]


由UNIX cksum算法计算出的file校验和。
返回值:integer - 当modecrc32时,string - 当modemd5sha256时。
参见 支持的平台

参数:

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

file的大小限制取决于large file support

示例:

vfs.file.cksum[/etc/passwd]

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

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


获取file7的内容。
返回值:文本
参见支持的平台

参数:

  • file - file的完整路径;
  • encoding - 代码页编码设置

注释:

  • 返回值限制为16MB(包括被截断的尾部空格);文本数据限制同样适用;
  • 如果file为空或仅包含LF/CR字符,则返回空string;
  • 字节顺序标记(BOM)将从输出中排除。

示例:

vfs.file.contents[/etc/passwd]
vfs.file.exists[file,<types incl>,<types excl>]


检查file是否存在。
返回值:0 - 未找到;1 - 存在指定类型的file。
查看支持的平台

参数:

  • file - 文件的完整路径;
  • 包含的类型 - 要包含的file类型列表,可能的值:file(常规文件,默认值(如果未设置types_excl))、dir(目录)、sym(符号链接)、sock(套接字)、bdev(块设备)、cdev(字符设备)、fifo(FIFO)、dev(等同于"bdev,cdev")、all(所有上述类型,如果设置了types_excl则为默认值)。
  • 排除的类型 - 要排除的file类型列表,请参见types_incl的可能值(默认情况下不排除任何类型)。

注释:

  • 多个类型必须用逗号分隔,并将整个集合用引号""括起来;
  • 如果同一类型同时出现在<types_incl>和<types_excl>中,则该类型的文件将被排除;
  • file的大小限制取决于large file support

示例:

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 object
参见 支持的平台

参数:

  • file - file 的完整路径

备注:

  • UNIX 类系统上支持的 file 类型:普通文件、目录、符号链接、套接字、块设备、字符设备、FIFO。
  • file 的大小限制取决于 large file support

示例:

vfs.file.get[/etc/passwd] # 返回一个包含 /etc/passwd file 信息的 JSON(类型、用户、权限、SID、uid 等)
vfs.file.md5sum[file]


文件的MD5校验和。
返回值:字符 string(文件的MD5哈希值)。
参见 支持的平台

参数:

  • file - file 的完整路径

file 的大小限制取决于 large file support

示例:

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。

file 大小限制取决于 large file support

示例:

vfs.file.owner[/tmp/zabbix_server.log] # 返回 /tmp/zabbix_server.log 的 file 所有者
       vfs.file.owner[/tmp/zabbix_server.log,,id] # 返回 /tmp/zabbix_server.log 的 file 所有者ID
vfs.file.permissions[file]


返回一个4位数字string,其中包含带有UNIX权限的八进制数。
返回值:string
支持的平台:Linux。监控项可能在其他类UNIX平台也可用。

参数:

  • file - 到file的完整路径

file的大小限制取决于large file support

示例:

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


在文件中检索7中的string。
返回值:包含匹配string的行,或根据可选参数output指定的方式返回。
查看 支持的平台

参数:

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

注释:

  • file的大小限制取决于large file support
  • 仅返回第一个匹配的行;
  • 如果没有行匹配表达式,则返回空的string;
  • 输出中不包含字节顺序标记(BOM);
  • 使用output参数进行内容提取时,操作发生在agent。

示例:

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>]


在文件中查找一个 string7
返回值:0 - 未找到匹配;1 - 已找到。
请参阅 支持的平台

参数:

  • file - 文件的完整路径;
  • regexp - 描述所需模式的正则概述
  • encoding - 代码页编码设置
  • 起始行 - 要搜索的第一行的编号(默认为file的第一行);
  • 结束行 - 要搜索的最后一行的编号(默认为file的最后一行)。

备注:

  • file的大小限制取决于large file support
  • 字节顺序标记(BOM)将被忽略。

示例:

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


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

参数:

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

注释:

  • 用户 zabbix 必须对file具有读取权限;
  • file的大小限制取决于large file support

示例:

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


file 时间信息。
返回值:integer(Unix时间戳)。
参见支持的平台

参数:

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

file的大小限制取决于large file support

示例:

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


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

vfs.fs.get


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

备注:

  • inode 数量为零的文件系统(例如使用动态 inode 的 file 系统(如 btrfs))也会被报告;
  • 另请参阅:Discovery of mounted filesystems
vfs.fs.inode[文件系统,<模式>]


inode 的数量或百分比。
返回值:integer - 表示数量;float - 表示百分比。
参见 支持的平台

参数:

  • fs - 文件系统;
  • mode - 可选值:total(默认)、freeusedpfree(空闲,百分比)或 pused(已使用,百分比)。

如果 inode 数量等于零,这在使用动态 inode 的 file 系统中可能出现(例如 btrfs),则 pfree/pused 的值将分别报告为 "100" 和 "0"。

示例:

vfs.fs.inode[/,pfree]
vfs.fs.size[fs,<模式>]


以字节或占总空间的百分比形式表示的磁盘空间。
返回值:integer - 表示字节;float - 表示百分比。
参见 支持的平台

参数:

  • fs - 文件系统;
  • mode - 可选值:total(默认),freeusedpfree(空闲,百分比),或 pused(已使用,百分比)。

注释:

  • 如果文件系统未挂载,则返回挂载点所在本地文件系统的大小;
  • 当使用 free 模式时,file 系统的保留空间会被考虑在内且不包含在空闲空间中。

示例:

vfs.fs.size[/tmp,free]
vm.memory.size[<模式>]


memory的大小,以字节或占总量的百分比表示。
返回值:integer - 表示字节;float - 表示百分比。
参见支持的平台

参数:

  • mode - 可选值:total(默认)、activeanonbufferscachedexecfilefreeinactivepinnedsharedslabwiredusedpused(已使用,百分比)、availablepavailable(可用,百分比)。

注释:

  • 此监控项接受三类参数:
    1) total - memory的总量
    2) 平台特定的memory类型:activeanonbufferscachedexecfilefreeinactivepinnedsharedslabwired
    3) 用户级别的估计,关于memory的使用和可用情况: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上支持;
  • 关于此监控项,另见additional details

示例:

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


获取网页内容。
返回值:网页源代码文本(包含头部信息)。
参见支持的平台

参数:

  • 主机 - 主机名或URL(格式为scheme://host:port/path,其中仅主机为必填项)。允许的URL方案:httphttps4。未指定方案时默认视为http。若指定URL,则path和port必须为空。为需要认证的服务器指定用户名/密码时(例如:http://user:[email protected])仅在使用cURL支持时有效4。主机名支持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>]


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

参数:

  • 主机 - 主机名或 URL(作为 scheme://host:port/path,其中只有 主机 是必需的)。允许的 URL 方案:httphttps4。缺少方案时将被视为 http。如果指定了 URL,则 pathport 必须为空。连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[email protected],仅在支持 cURL 时可用4。主机名中支持 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>]


在网页上查找一个 string。
返回值:匹配的 string,或由可选参数 output 指定的内容。
参见 支持的平台

参数:

  • 主机 - 主机名或 URL(格式为 scheme://host:port/path,其中仅 主机 为必填项)。允许的 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 超出捕获组数量,则表示空 string)。

备注:

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

示例:

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

##### agent.hostmetadata


agent 主机 的元数据。
返回值:string
参见 支持的平台

返回 主机元数据主机元数据项 参数的值,如果均未定义,则返回空的 string。

agent.hostname


agent 主机名 的说明。
返回值:string
参见 支持的平台

返回值说明:

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


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

使用 nodata() 触发器函数来检查 主机 不可用情况。

agent.variant


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

agent.version


version 的 Zabbix agent。
返回值:string
请参阅 支持的平台

返回值示例:

6.0.3
zabbix.stats[<ip>,<port>] {#zabbix.stats}


远程返回一组 Zabbix server 或 proxy 内部指标。
返回值:JSON object
参见 支持的平台

参数:

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

说明:

  • 此 监控项 返回一组选定的内部指标。详细信息,请参见 暴露的指标
  • 请注意,只有来自 'StatsAllowedIP' server/proxy 参数中列出的地址的统计请求才会被目标 get 实例接受。
zabbix.stats[<ip>,<port>,queue,<from>,<to>]


返回队列中受监控的监控项数量,这些主机在本地或远程的Zabbix server或proxy上存在延迟。
返回值:JSON object
参见 支持的平台

参数:

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

请注意,统计请求仅接受来自目标get实例的“StatsAllowedIP” server/proxy参数中列出的地址的请求。

脚注

1一个仅适用于Linux的说明。Zabbix agent 必须具有对文件系统 /proc 的只读访问权限。来自 www.grsecurity.org 的内核补丁会限制非特权用户的访问权限。

2 vfs.dev.read[], vfs.dev.write[]: 如果 监控项值 超过 3 小时未被访问,Zabbix agent 将终止“过时”的设备连接。当系统具有路径动态变化的设备或设备被手动移除时,可能会发生这种情况。另外请注意,如果这些 监控项 使用了等于或超过 3 小时的 update 间隔,则它们将始终返回 '0'。

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

4 仅当 agent 编译时包含 cURL 支持时,才支持 SSL(HTTPS)。否则,监控项 将变为不支持状态。

5 在 Solaris 系统(包括 Solaris 10 6/06 及之前版本)的回环接口上,不支持 byteserrors 值,因为内核不会存储和/或报告字节、错误和利用率统计信息。但是,如果您通过 net-snmp 监控 Solaris 系统,可能会返回这些值,因为 net-snmp 包含了自1997年以来的 cmu-snmp 遗留代码,当无法从接口统计信息中读取字节值时,它会返回数据包计数器(回环接口上存在)乘以任意值 308。这假设了数据包的平均长度为 308 字节,但实际上这是一个非常粗略的估计,因为 Solaris 系统上回环接口的 MTU 限制为 8892 字节。这些值不应被视为正确或接近准确,它们只是估算值。Zabbix agent 不会进行任何猜测,但 net-snmp 会为这些字段返回值。

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

7 vfs.file.contents[], vfs.file.regexp[], vfs.file.regmatch[] 监控项 可用于检索 file 内容。如果您希望限制对包含敏感信息的特定文件的访问,请在没有查看这些文件权限的用户下运行 run 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]

编码设置

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

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

  • 若未指定编码(或为空string),则默认采用UTF-8编码,数据将按"原样"处理;
  • BOM分析 - 适用于监控项 'vfs.file.contents'、'vfs.file.regexp'和'vfs.file.regmatch'。系统会尝试通过file开头的字节顺序标记(BOM)来确定正确编码。若不存在BOM,则应用标准解析策略(见上文)。

故障排除 agent 监控项

对于被动检查,为防止因为服务器请求到agent时超时在先,导致监控项未被get任何值的情况, 以下应予以注意:

  • 当 agent version 的版本比服务器版本旧时,配置(或 超时)中的 超时 值可能需要大于 agent 超时 中的 Timeout 值。
  • 当 agent version 比服务器版本更新时,服务器 超时 中的 Timeout 值可能需要高于 agent 超时 中的 Timeout 值。