本节提供了有关使用与 Zabbix agent 通信以进行数据收集的 监控项 键的详细信息。
存在 passive and active agent 检查。配置 监控项 时,可以选择所需的类型:
请注意,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。 |
除非在监控项详细信息中另有说明,agent 监控项(及其所有参数)支持在以下系统上使用:
许多agent 监控项也在Windows上受支持。详细信息请参见共享监控项页面。
不带尖括号的参数是必填的。用尖括号 < > 标记的参数是可选的。
操作系统支持的最大打开文件数。
返回值:integer。
支持的平台:Linux、FreeBSD、MacOS X、OpenBSD、NetBSD。
操作系统支持的最大进程数。
返回值:integer。
支持的平台:Linux 2.6 及以上版本,FreeBSD、Solaris、MacOS X、OpenBSD、NetBSD。
当前打开的 file 描述符数量。
返回值:integer。
支持的平台:Linux(监控项 在其他类 UNIX 平台可能有效)。
日志监控file。
返回值:Log。
请参阅支持的平台。
参数:
注释:
示例:
使用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中匹配行的计数。
返回值:integer。
参见支持的平台。
参数:
注释:
监控轮转日志file 返回值:Log。
请参阅支持的平台。
参数:
注释:
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"到服务器。
监控日志 file 中匹配行数的计数,该日志会被轮转。
返回值:integer。
参见 支持的平台。
参数:
评论:
file regexp
参数中,日志目录路径和日志 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 数据。
返回值:JSON object。
支持的平台:Linux。
参数:
protocol://connection_string
的端点;参见参数的 detailed description。
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
{#net.dns}
检查DNS服务的状态。
返回值:0 - DNS解析失败(DNS服务器未响应或返回错误);1 - DNS解析成功。
参见支持的平台。
参数:
注释:
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。type
设置为PTR时),您可以同时提供反转和非反转格式的DNS名称(参见下面的示例)。 请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。示例:
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]
检查DNS服务的性能。
返回值:float(0 - 服务已停止;秒数 - 等待服务响应所花费的秒数)。
参见支持的平台。
参数:
注释:
type
的可能值包括:type
设置为PTR时),您可以以反转和非反转格式提供DNS名称(参见下面的示例)。 请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。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]
执行DNS query。
Zabbix agent 2 还提供了 net.dns.get,它提供了更多功能,例如更多记录类型以及对DNS监控的更大控制。 返回值:一个包含所需信息类型的字符 string。
请参阅 支持的平台。
参数:
评论:
type
的可能值包括:type
设置为 PTR 时),您可以提供反转或非反转格式的DNS名称(请参见下面的示例)。 请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。示例:
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 权限。
参数:
网络接口列表。用于低级别自动发现。
返回值:JSON object。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、OpenBSD、NetBSD。
网络接口上的入站流量统计。
返回值:integer。
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。NetBSD上需要root权限。
参数:
备注:
示例:
网络接口上的出站流量统计。
返回值:integer。
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。NetBSD 上需要 root 权限。
参数:
备注:
示例:
net.if.total[if,<mode>]
网络接口上入站和出站流量统计的总和。
返回值:integer。
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。NetBSD上需要root权限。
参数:
备注:
net.if.in
和net.if.out
都能正常用于丢弃的数据包时,才支持丢弃的数据包统计。示例:
net.tcp.listen[port]
检查此TCP端口是否处于LISTEN状态。
返回值:0 - 不在LISTEN状态;1 - 在LISTEN状态。
支持的平台:Linux、FreeBSD、Solaris、MacOS X。
参数:
在Linux内核2.6.14及以上版本中,如果可能,将从内核的NETLINK接口获取关于监听TCP套接字的信息。否则,信息将从/proc/net/tcp和/proc/net/tcp6文件中获取。
示例:
net.tcp.port[<ip>,port]
检查是否可以与指定端口建立TCP连接。
返回值:0 - 无法连接;1 - 可以连接。
参见 支持的平台。
参数:
注释:
net.tcp.service.perf[tcp,<ip>,<port>]
;示例:
net.tcp.service[service,<ip>,<port>]
{#net.tcp.service}
检查服务是否正在运行并接受TCP连接。
返回值:0 - 服务停止;1 - 服务正在运行。
参见 支持的平台。
参数:
备注:
net.tcp.port[]
;示例:
net.tcp.service.perf[service,<ip>,<port>]
检查TCP服务的性能。
返回值:float(0 - 服务已停止;秒数 - 等待服务响应所花费的秒数)。
请参阅支持的平台。
参数:
备注:
net.tcp.service.perf[tcp,<ip>,<port>]
。示例:
返回匹配参数的 TCP 套接字数量。
返回值:integer。
支持的平台:Linux。
参数:
示例:
net.udp.listen[port]
检查此UDP端口是否处于LISTEN状态。
返回值:0 - 不在LISTEN状态;1 - 在LISTEN状态。
支持的平台:Linux,FreeBSD,Solaris,MacOS X。
参数:
示例:
net.udp.service[service,<ip>,<port>]
{#net.udp.service}
检查服务是否正在运行并响应UDP请求。
返回值:0 - 服务已停止;1 - 服务正在运行。
参见 支持的平台。
参数:
示例:
net.udp.service.perf[service,<ip>,<port>]
检查UDP服务的性能。
返回值:float(0 - 服务已停止;秒数 - 等待服务响应所花费的秒数)。
请参阅 支持的平台。
参数:
示例:
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回匹配参数的UDP套接字数量。
返回值:integer。
支持的平台:Linux。
参数:
示例:
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
进程的CPU使用率百分比。
返回值:float。
支持的平台:Linux,Solaris6。
参数:
备注:
zone
参数设置为current(或默认),则agent将返回NOTSUPPORTED(因为agent无法将结果限制为仅当前区域)。然而,在这种情况下支持all。示例:
proc.cpu.util[,root] # 以"root"用户身份运行的所有进程的CPU使用率
proc.cpu.util[zabbix_server,zabbix] # 以zabbix用户身份运行的所有zabbix_server进程的CPU使用率
操作系统进程及其参数列表。可用于低级别自动发现。
返回值:JSON object。
支持的平台:Linux、FreeBSD、Windows、OpenBSD、NetBSD。
参数:
注释:
-1
;name
和 cmdline
参数选择进程的说明(仅适用于 Linux)。示例:
proc.get[zabbix_server,zabbix,,process] #列出 zabbix 用户下运行的所有 zabbix_server 进程,每个 PID 返回一个条目
proc.get[java,,,thread] #列出所有 Java 进程,每个线程返回一个条目
proc.get[,zabbix,,summary] #合并 zabbix 用户下运行的每种类型进程的数据,每个进程名称返回一个条目
进程使用的memory(以字节为单位)。
返回值:integer - 使用 mode 作为 最大值、最小值、总和;float - 使用 mode 作为 平均值
支持的平台: Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。
参数:
注释:
示例:
proc.mem[,root] #所有以"root"用户身份运行的进程所使用的memory
proc.mem[zabbix_server,zabbix] #所有由zabbix用户运行的zabbix_server进程所使用的memory
proc.mem[,oracle,max,oracleZABBIX] #该memory用于命令行中包含oracleZABBIX的Oracle环境下运行的最耗memory的进程
进程数量。
返回值:integer。 支持的平台: Linux、FreeBSD、Solaris6、HP-UX、AIX、OpenBSD、NetBSD。
参数:
注释:
示例:
proc.num[,mysql] #以mysql用户身份运行的进程数量
proc.num[apache2,www-data] #运行在www-data用户下的apache2进程数量
proc.num[,oracle,sleep,oracleZABBIX] #命令行中包含oracleZABBIX的Oracle进程下处于睡眠状态的进程数量
硬件传感器读数。
返回值:float。
支持的平台:Linux,OpenBSD。
参数:
注释:
示例:
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。
检测到的 CPU/ CPU 内核列表。用于低级别自动发现。
返回值:JSON object。
参见 支持的平台。
设备中断。
返回值:integer。
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。
[CPU load](http://en.wikipedia.org/wiki/Load_(computing))。
返回值:float。
参见支持的平台。
参数:
示例:
CPU的数量。
返回值:integer。
支持的平台:Linux,FreeBSD,Solaris,HP-UX,AIX,MacOS X,OpenBSD,NetBSD。
参数:
max 类型参数仅在 Linux、FreeBSD、Solaris 和 MacOS X 上受支持。
示例:
上下文切换次数。
返回值:integer。
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。
CPU利用率百分比。
返回值:float。
支持平台:Linux、FreeBSD、Solaris、HP-UX、AIX、OpenBSD、NetBSD。
参数:
注释:
示例:
系统 主机名。
返回值: string。
参见 支持的平台。
参数:
该值通过从 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
机箱信息。
返回值:string。
支持平台:Linux。
参数:
注释:
示例:
CPU相关信息。
返回值: string 或 integer。
支持的平台:Linux。
参数:
备注:
/proc/cpuinfo
和 /sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq
;示例:
列出PCI或USB设备。
返回值:文本。
支持平台:Linux。
参数:
返回lspci或lsusb工具的输出(执行时不带任何参数)。
示例:
MAC地址列表。
返回值:string。
支持的平台:Linux。
参数:
注释:
interface
正则表达式 概述 的接口的 MAC 地址(all 表示列出所有接口);format
指定为 short,则不列出接口名称和相同的 MAC 地址。示例:
系统时间。
返回值:integer - 当 type
为 utc 时;string - 当 type
为 local 时。
参见 支持的平台。
参数:
只能用作 被动检查。
示例:
system.run[command,<mode>]
在主机上运行指定命令。
返回值:命令的文本结果或1 - 当使用mode作为nowait参数时(无论命令执行结果如何)。
参见支持的平台。
参数:
注释:
示例:
系统统计信息。
返回值:integer 或 float。
支持的平台:AIX。
参数:
备注:
system.stat[cpu,app]
- 仅支持类型为“Shared”的AIX LPARsystem.stat[cpu,ec]
- 支持类型为“Shared”和“Dedicated”的AIX LPAR(“Dedicated”始终返回100(百分比))system.stat[cpu,lbusy]
- 仅支持类型为“Shared”的AIX LPARsystem.stat[cpu,pc]
- 支持类型为“Shared”和“Dedicated”的AIX LPARsystem.stat[ent]
- 支持类型为“Shared”和“Dedicated”的AIX LPAR
软件架构信息。
返回值:string。
参见 支持的平台。
该信息来源于 uname()
函数。
示例:
操作系统信息。
返回值: string。
支持的平台:Linux、Windows。
参数:
信息获取来源(注意并非所有发行版都包含以下所有文件和选项):
/proc/version
(full)在Linux系统上;/proc/version_signature
(short)在Linux系统上;/etc/os-release
的PRETTY_NAME参数或 /etc/issue.net
(name);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。
已安装软件包的列表。
返回值:文本。
支持的平台:Linux。
参数:
注释:
format
指定为 full,软件包将按软件包管理器分组(每个管理器单独一行,行首为方括号中的管理器名称);format
指定为 short,软件包不会分组,而是列在同一行。示例:
已安装软件包的详细列表。
返回值:JSON object。
支持的平台:Linux。
参数:
备注:
交换分区载入(从设备到内存)的统计信息。
返回值:integer。
支持的平台:Linux、FreeBSD、OpenBSD。
参数:
备注:
示例:
交换分区写入(从 memory 写入到设备)的统计信息。
返回值:integer。
支持的平台:Linux,FreeBSD,OpenBSD。
参数:
备注:
/proc/swaps
, /proc/partitions
, /proc/stat
(Linux 2.4)/proc/swaps
, /proc/diskstats
, /proc/vmstat
(Linux 2.6)示例:
交换空间大小,以字节或占总量的百分比表示。
返回值:integer - 表示字节;float - 表示百分比。
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD。
参数:
备注:
swap -s
命令包含一部分物理 memory 和交换设备(不同于 swap -l
)。示例:
系统的标识。
返回值:string。
参见 支持的平台。
备注:
示例:
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
系统正常运行时间,以秒为单位。
返回值:integer。
支持的平台:Linux、FreeBSD、Solaris、AIX、MacOS X、OpenBSD、NetBSD。
在 配置 中,使用 s 或 uptime 单位以使 get 返回可读值。
当前登录用户的数量。
返回值:integer。
参见 支持的平台。
who 命令在 agent 端使用以获取该值。
块设备及其类型的列表。用于低级别自动发现。
返回值:JSON object。
支持的平台:Linux。
vfs.dev.read[<设备>,<类型>,<模式>]
磁盘读取统计信息。
返回值:integer - 以 type
为单位,单位包括 sectors、operations、bytes;float - 以 type
为单位,单位包括 sps、ops、bps。
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD。
参数:
type
为 sps、ops、bps 时支持。备注:
mode
参数仅支持 Linux 和 FreeBSD;sda
),也可以选择性地加上 /dev/ 前缀(例如 /dev/sda
);示例:
vfs.dev.write[<device>,<type>,<mode>]
磁盘写入统计信息。
返回值:integer - 使用 type
单位为 sectors、operations、bytes;float - 使用 type
单位为 sps、ops、bps。
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD。
参数:
type
为 sps、ops、bps 时支持。备注:
mode
参数仅在 Linux 和 FreeBSD 上支持;sda
),也可以选择性地加上 /dev/ 前缀(例如,/dev/sda
);示例:
目录条目计数。
返回值:integer。
参见支持平台。
参数:
注释:
示例:
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。
参见 支持的平台。
参数:
types incl
)。如果某种条目类型同时存在于 types incl
和 types excl
,则该类型的目录条目将不会被列出。regex excl
不同)。备注:
regex incl
和 regex excl
都会应用于文件和目录,但在选择要遍历的子目录时会被忽略(例如,如果 regex incl
是 “(?i)^.+\.zip$” 且 max depth
未设置,则所有子目录都将被遍历,但只列出 zip 类型的文件)。min size
和 max size
时,建议将 types incl
指定为 "file",以避免意外结果。示例:
vfs.dir.get[/dev] #检索 /dev(Linux)中的设备列表
vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #检索临时目录中的 file 列表
目录大小(以字节为单位)。
返回值:integer。
支持平台:Linux。该监控项可能在其他类UNIX平台上工作。
参数:
注释:
示例:
vfs.dir.size[/tmp,log] #计算/tmp中名称包含'日志'的所有文件的大小
vfs.dir.size[/tmp,log,^.+\.old$] #计算/tmp中名称包含'日志'的所有文件的大小,排除名称以'.old'结尾的文件
由UNIX cksum算法计算出的file校验和。
返回值:integer - 当mode
为crc32时,string - 当mode
为md5或sha256时。
参见 支持的平台。
参数:
file的大小限制取决于large file support。
示例:
返回值示例(分别为crc32/md5/sha256):
675436101
9845acf68b73991eb7fd7ee0ded23c44
ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc
vfs.file.contents[file,<encoding>]
参数:
注释:
示例:
检查file是否存在。
返回值:0 - 未找到;1 - 存在指定类型的file。
查看支持的平台。
参数:
注释:
示例:
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。
参见 支持的平台。
参数:
备注:
示例:
vfs.file.md5sum[file]
文件的MD5校验和。
返回值:字符 string(文件的MD5哈希值)。
参见 支持的平台。
参数:
file 的大小限制取决于 large file support。
示例:
返回值示例:
检索文件的所有者。
返回值:string。
请参阅支持的平台。
参数:
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的大小限制取决于large file support。
示例:
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
在文件中检索7中的string。
返回值:包含匹配string的行,或根据可选参数output
指定的方式返回。
查看 支持的平台。
参数:
注释:
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大小(以字节为单位)。
返回值:integer。
请参阅支持的平台。
参数:
注释:
示例:
vfs.file.time[file,<mode>]
file 时间信息。
返回值:integer(Unix时间戳)。
参见支持的平台。
参数:
file的大小限制取决于large file support。
示例:
已挂载文件系统的列表,包含其类型和挂载选项。用于低级别自动发现。
返回值: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 的数量或百分比。
返回值:integer - 表示数量;float - 表示百分比。
参见 支持的平台。
参数:
如果 inode 数量等于零,这在使用动态 inode 的 file 系统中可能出现(例如 btrfs),则 pfree/pused 的值将分别报告为 "100" 和 "0"。
示例:
以字节或占总空间的百分比形式表示的磁盘空间。
返回值:integer - 表示字节;float - 表示百分比。
参见 支持的平台。
参数:
注释:
示例:
memory的大小,以字节或占总量的百分比表示。
返回值:integer - 表示字节;float - 表示百分比。
参见支持的平台。
参数:
注释:
示例:
获取网页内容。
返回值:网页源代码文本(包含头部信息)。
参见支持的平台。
参数:
注释:
示例:
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"]
完整网页的加载时间(以秒为单位)。
返回值:float。
参见支持的平台。
参数:
scheme://host:port/path
,其中只有 主机 是必需的)。允许的 URL 方案:http、https4。缺少方案时将被视为 http。如果指定了 URL,则 path
和 port
必须为空。连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[email protected]
,仅在支持 cURL 时可用4。主机名中支持 Punycode。备注:
host
中指定的资源不存在或不可用,则此 监控项 将变为不支持;host
可以是主机名、域名、IPv4 或 IPv6 地址。但对于 IPv6 地址,Zabbix agent 必须编译为启用 IPv6 支持。示例:
在网页上查找一个 string。
返回值:匹配的 string,或由可选参数 output
指定的内容。
参见 支持的平台。
参数:
scheme://host:port/path
,其中仅 主机 为必填项)。允许的 URL 协议:http、https4。若未指定协议,默认为 http。若指定了 URL,则 path
和 port
必须为空。当连接需要认证的服务器时,仅在支持 cURL 的情况下才可指定用户名/密码,例如:http://user:[email protected]
4。主机名支持 Punycode 编码。备注:
host
中指定的资源不存在或不可用,则此 监控项 将变为不支持;host
可以是主机名、域名、IPv4 或 IPv6 地址。但若使用 IPv6 地址,Zabbix agent 必须编译为启用 IPv6 支持。output
参数进行内容提取是在 agent 上进行的。示例:
agent 主机 的元数据。
返回值:string。
参见 支持的平台。
返回 主机元数据 或 主机元数据项 参数的值,如果均未定义,则返回空的 string。
agent 主机名 的说明。
返回值:string。
参见 支持的平台。
返回值说明:
agent 可用性检查。
返回值:无 - 不可用;1 - 可用。
请参阅 支持的平台。
使用 nodata() 触发器函数来检查 主机 不可用情况。
Zabbix agent 的变体(Zabbix agent 或 Zabbix agent 2)。
返回值:1 - Zabbix agent;2 - Zabbix agent 2。
请参阅 支持的平台。
version 的 Zabbix agent。
返回值:string。
请参阅 支持的平台。
返回值示例:
zabbix.stats[<ip>,<port>]
{#zabbix.stats}
远程返回一组 Zabbix server 或 proxy 内部指标。
返回值:JSON object。
参见 支持的平台。
参数:
说明:
zabbix.stats[<ip>,<port>,queue,<from>,<to>]
返回队列中受监控的监控项数量,这些主机在本地或远程的Zabbix server或proxy上存在延迟。
返回值:JSON object。
参见 支持的平台。
参数:
请注意,统计请求仅接受来自目标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 及之前版本)的回环接口上,不支持 bytes
和 errors
值,因为内核不会存储和/或报告字节、错误和利用率统计信息。但是,如果您通过 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
参数中指定编码,将应用以下解析策略:
对于被动检查,为防止因为服务器请求到agent时超时在先,导致监控项未被get任何值的情况, 以下应予以注意: