1 Zabbix agent
概述
本节提供使用与 Zabbix agent 通信进行数据采集的监控项键的详细信息。
Zabbix agent 检查分为被动和主动两种。 配置监控项时,您可以选择所需的类型:
- Zabbix agent - 用于被动检查
- Zabbix agent (active) - 用于主动检查
请注意,Zabbix agent 支持的所有监控项键也同样受新一代 Zabbix agent 2 支持。 请参阅仅可与 agent 2 一起使用的附加监控项键。
支持的监控项键值
下面列出了可与 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 端口是否处于 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 利用率百分比。 | 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 | 返回一个 4 位字符串,其中包含 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 monitoring |
| web.page.perf | 完整网页的加载时间。 | |
| web.page.regexp | 在网页上查找字符串。 | |
| agent.hostmetadata | agent 主机元数据。 | Zabbix |
| agent.hostname | agent 主机名。 | |
| agent.ping | agent 可用性检查。 | |
| agent.variant | Zabbix agent 的变体(Zabbix agent 或 Zabbix agent 2)。 | |
| agent.version | Zabbix agent 版本。 | |
| zabbix.stats | 返回一组 Zabbix 服务器或 proxy 的内部指标。如果指定了 ip 和 port,则从远程实例获取指标;否则,从本地实例获取。 |
|
| zabbix.stats (queue) | 返回 Zabbix 服务器或 proxy 上队列中延迟的监控项数量。如果指定了 ip 和 port,则从远程实例获取指标;否则,从本地实例获取。 |
支持平台
除在监控项详情中另有说明外,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>]
监控日志文件。
返回值:Log。
参见支持的平台。
参数:
- file - 日志文件的完整路径和名称;
- regexp - 描述所需模式的正则表达式;
- encoding - 代码页标识符;
- maxlines - agent 每秒发送到 Zabbix 服务器或 proxy 的最大新行数。
此参数会覆盖 zabbix_agentd.conf 中 'MaxLinesPerSecond' 的值;
- mode - 可选值:all(默认)或 skip - 跳过处理较旧的数据(仅影响新创建的监控项);
- output - 可选的输出格式化模板。
\0 转义序列会被匹配到的文本部分替换(从匹配开始的第一个字符到匹配结束的字符),而 \N(其中 N=1...9)转义序列会被第 N 个匹配组替换(如果 N 超过捕获组数量,则替换为空字符串);
- maxdelay - 最大延迟,单位为秒。
类型:float。
取值:0 -(默认)永远不忽略日志文件行;> 0.0 - 为了在 "maxdelay" 秒内分析到最新的行,忽略较旧的行。
在使用前请先阅读 maxdelay 说明!
- options - 附加选项:
mtime-noreread - 非唯一记录,仅在文件大小发生变化时重新读取(忽略修改时间变化)。 (自 5.0.2 起此参数已弃用,因为现在会忽略 mtime。) - persistent dir(仅适用于 Unix 系统上的 zabbix_agentd;Zabbix agent 2 不支持)- 用于存储持久化文件的目录绝对路径。 另请参见关于日志监控项持久化文件的附加说明。
注释:
- 该监控项必须配置为主动检查;
- 如果文件缺失或权限不允许访问,该监控项将变为不受支持;
- 如果
output为空,则返回包含匹配文本的整行。 请注意,除 'Result is TRUE' 之外的所有全局正则表达式类型始终返回整条匹配行,并且会忽略output参数。 - 使用
output参数进行内容提取是在 agent 上完成的。
示例:
log[/var/log/syslog]
log[/var/log/syslog,error]
log[/home/zabbix/logs/logfile,,,100]
使用 output 参数从日志记录中提取数字的示例:
log[/app1/app.log,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #此监控项将匹配一条日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 并仅向服务器发送 '6080'。由于发送的是数值,因此该监控项的“信息类型”可以设置为“数值(无符号)”,并且该值可用于图形、触发器等。
使用 output 参数在发送到服务器之前重写日志记录的示例:
log[/app1/app.log,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] #此监控项将匹配一条日志记录 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 并将修改后的记录 "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" 发送到服务器。
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
监控的日志文件中匹配行的数量。
返回值:Integer。
请参见支持的平台。
参数:
- file - 日志文件的完整路径和名称;
- regexp - 描述所需模式的正则表达式;
- encoding - 代码页标识符;
- maxproclines - agent 每秒将分析的新行最大数量(不能超过 10000)。
默认值为 zabbix_agentd.conf 中的 10*'MaxLinesPerSecond'。
- mode - 可能的值:all(默认)或 skip - 跳过对较旧数据的处理(仅影响新创建的监控项)。
- maxdelay - 最大延迟,单位为秒。
类型:float。
取值:0 -(默认)从不忽略日志文件行;> 0.0 - 为了让最近的行在 "maxdelay" 秒内完成分析,忽略较旧的行。
使用前请先阅读 maxdelay 说明!
- options - 额外选项:
mtime-noreread - 非唯一记录,仅在文件大小发生变化时重新读取(忽略修改时间变化)。 (由于现在会忽略 mtime,因此该参数自 5.0.2 起已弃用。) - persistent dir(仅适用于 Unix 系统上的 zabbix_agentd;Zabbix agent 2 不支持)- 用于存储持久文件的目录绝对路径。 另请参见关于持久文件的附加说明。
注释:
- 该监控项必须配置为主动检查;
- 匹配行会统计 agent 自上次日志检查以来新增的行,因此取决于监控项更新间隔;
- 如果文件缺失或权限不允许访问,该监控项将变为不受支持。
logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
监控已轮转的日志文件。
返回值:Log。
请参见支持的平台。
参数:
- file regexp - 文件的绝对路径,文件名使用正则表达式指定。
请注意,正则表达式仅适用于文件名,不需要匹配整个名称(例如,/path/to/agent 将匹配 zabbix_agentd.log)。
- regexp - 描述所需内容模式的正则表达式。
- encoding - 代码页标识符。
- maxlines - agent 每秒向 Zabbix 服务器或 proxy 发送的最大新行数。
此参数会覆盖 zabbix_agentd.conf 中的 'MaxLinesPerSecond' 值。
- mode - 可选值:all(默认)或 skip - 跳过处理较旧的数据(仅影响新创建的监控项)。
- output - 可选的输出格式化模板。
\0 转义序列会被匹配到的文本部分替换(从匹配开始的第一个字符到匹配结束的字符),而 \N(其中 N=1...9)转义序列会被第 N 个匹配组替换(如果 N 超过捕获组数量,则替换为空字符串)。
- maxdelay - 最大延迟,单位为秒。
类型:float。
取值:0 -(默认)从不忽略日志文件行;> 0.0 - 为了在 "maxdelay" 秒内分析到最新的行,忽略较旧的行。
使用前请先阅读 maxdelay 说明!
- options - 日志文件轮转类型及其他选项。
可选值:
rotate(默认),
copytruncate - 请注意,copytruncate 不能与 maxdelay 同时使用。 在这种情况下,maxdelay 必须为 0 或未指定;请参见 copytruncate 说明,
mtime-reread - 非唯一记录,当修改时间或大小发生变化时重新读取(如果未显式设置任何mtime-*选项,则默认使用),
mtime-noreread - 非唯一记录,仅在大小发生变化时重新读取(忽略修改时间变化)。 - persistent dir(仅适用于 Unix 系统上的 zabbix_agentd;Zabbix agent 2 不支持)- 用于存储持久文件的目录绝对路径。 另请参见关于 persistent files 的附加说明。
注释:
- 该监控项必须配置为主动检查;
- 日志轮转基于文件的最后修改时间;
- 请注意,logrt 设计用于处理一个当前处于活动状态的日志文件,以及若干匹配到的已轮转非活动文件。 例如,如果某个目录中有许多活动日志文件,应为每个文件分别创建一个 logrt 监控项。 否则,如果一个 logrt 监控项拾取了过多文件,可能会导致内存耗尽并使监控崩溃。
- 如果
output为空,则返回包含匹配文本的整行。 请注意,除 'Result is TRUE' 之外的所有全局正则表达式类型始终返回整条匹配行,并且会忽略output参数。 - 使用
output参数进行内容提取是在 agent 端完成的。 - 在
file regexp参数中,日志目录路径和日志文件正则表达式必须使用正确的目录分隔符分隔:- 在 Windows 上,分隔符必须是反斜杠 (\);在其他位置可以容忍使用正斜杠,但用于分隔日志目录路径和日志文件正则表达式的那个分隔符除外(见下方示例)。
- 在其他系统上,必须使用正斜杠 (/)。
Windows 示例:
logrt["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #此监控项将从 "c:/dir1/dir2/dir3" 中的日志文件收集数据,其中文件名以 "filename" 开头,并以任何与 ".log" 匹配的扩展名结尾。
logrt["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #此监控项将从网络共享 "//example.com/share/dir1/dir2/dir3" 中的日志文件收集数据,其中文件名以 "filename" 开头,并以任何与 ".log" 匹配的扩展名结尾。
其他系统示例:
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。
参见 supported platforms。
参数:
- file regexp - 文件的绝对路径,文件名使用正则 expression 指定。
请注意,正则表达式仅适用于文件名,不需要匹配整个名称(例如,/path/to/agent 将匹配 zabbix_agentd.log)。
- regexp - 描述所需模式的正则 expression。
- encoding - 代码页 identifier。
- maxproclines - agent 每秒将分析的新行最大数量(不能超过 10000)。
默认值为 zabbix_agentd.conf 中
MaxLinesPerSecond的 10*。 - mode - 可能的值:all(默认)或 skip - 跳过处理较旧的数据(仅影响新创建的监控项)。
- maxdelay - 最大延迟,单位为秒。
类型:float。
取值: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 的补充说明。
注释:
- 该监控项必须配置为 active check;
- 匹配行的计数基于 agent 上次检查日志以来新增的行,因此取决于监控项更新间隔;
- 日志轮转基于文件的最后修改时间;
- 在
file regexp参数中,日志目录路径和日志文件正则表达式必须使用正确的目录分隔符分隔:- 在 Windows 上,分隔符必须是反斜杠 (\);其他位置可以容忍使用正斜杠,但分隔日志目录路径和日志文件正则表达式的那个位置除外(见下面示例)。
- 在其他系统上,必须使用正斜杠 (/)。
Windows 示例:
logrt.count["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will count the number of matches for the pattern "pattern_to_match" in log files located in "c:/dir1/dir2/dir3".
logrt.count["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will count the number of matches for the pattern "pattern_to_match" in log files on the network share "//example.com/share/dir1/dir2/dir3".
其他系统示例:
logrt.count["/home/zabbix/logs/.*","^logfile[0-9]{1,3}$",,100] #this item will count the number of matches for the pattern "^logfile[0-9]{1,3}$" in log files in the "/home/zabbix/logs" directory.
logrt.count["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #this item will count the number of occurrences of the pattern "pattern_to_match" in log files located in "/home/user".
modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]
读取 Modbus 数据。
返回值:JSON 对象。
支持的平台:Linux、Windows。
参数:
- endpoint - 以
protocol://connection_string定义的端点; - slave id - 从站 ID;
- function - Modbus 功能码;
- address - 第一个寄存器、线圈或输入的地址;
- count - 要读取的记录数量;
- type - 数据类型;
- endianness - 字节序配置;
- offset - 从 'address' 开始的寄存器数量,其结果将被丢弃。
在 Windows 上,此监控项会遵循 endpoint 参数中的 UNC 路径,这可能带来安全风险。
有关参数的详细说明,请参见。
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
检查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 - 用于执行DNSqueries的协议: 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和所有OS上的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>]
执行DNSquery.
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 - 用于执行DNSqueries的协议: 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]
net.if.collisions[if]
窗口外碰撞次数.
返回值: integer.
支持的平台: Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD.
NetBSD系统需要root权限.
参数:
- if - 网络接口名称
net.if.discovery
网络接口列表。
用于低级别发现。
返回值:JSON 对象。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、OpenBSD、NetBSD、Windows。
net.if.in[if,<mode>]
网络接口上的入站流量统计。
返回值:Integer。
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD、Windows。
NetBSD 需要 root 权限。
参数:
- if - 网络接口名称(Unix);网络接口完整描述或 IPv4 地址;或者,如果用大括号括起,则为网络接口 GUID(Windows);
- mode - 可选值:
bytes - 字节数(默认)
packets - 数据包数
errors - 错误数
dropped - 丢弃的数据包数
overruns (fifo) - FIFO 缓冲区错误数
frame - 数据包帧错误数
compressed - 设备驱动程序接收的压缩数据包数
multicast - 设备驱动程序接收的多播帧数
注释:
- 你可以将此 key 与 Change per second 预处理步骤一起使用,以获取每秒字节数统计;
- 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>]
网络接口上的出站流量统计。
返回值:Integer。
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD、Windows。
在 NetBSD 上需要 root 权限。
参数:
- if - 网络接口名称(Unix);网络接口完整描述或 IPv4 地址;或者,如果用大括号括起,则为网络接口 GUID(Windows);
- mode - 可能的值:
bytes - 字节数(默认)
packets - 数据包数
errors - 错误数
dropped - 丢弃的数据包数
overruns (fifo) - FIFO 缓冲区错误数
collisions (colls) - 检测到的接口冲突数
carrier - 设备驱动程序检测到的载波丢失数
compressed - 设备驱动程序发送的压缩数据包数
注释:
- 你可以将此键与 Change per second 预处理步骤一起使用,以获取每秒字节统计信息;
- dropped 模式仅支持 Linux、HP-UX;
- overruns、collision、carrier、compressed 模式仅支持 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、Windows。
在 NetBSD 上需要 root 权限。
参数:
- if - 网络接口名称(Unix);网络接口完整描述或 IPv4 地址;或者,如果用大括号括起,则为网络接口 GUID(Windows);
- mode - 可能的值:
bytes - 字节数(默认)
packets - 数据包数
errors - 错误数
dropped - 丢弃的数据包数
overruns (fifo) - FIFO 缓冲区错误数
collisions (colls) - 检测到的接口冲突数
compressed - 设备驱动程序发送或接收的压缩数据包数
注释:
- 您可以将此 key 与 Change per second 预处理步骤一起使用,以获取每秒字节统计信息;
- dropped 模式仅在 Linux、HP-UX 上受支持。
只有当您平台上的
net.if.in和net.if.out都支持丢弃数据包时,才支持丢弃的数据包。 - overruns、collision、compressed 模式仅在 Linux 上受支持;
- 在 HP-UX 上,此监控项不提供回环接口(例如 lo0)的详细信息。
示例:
net.if.total[eth0]
net.if.total[eth0,errors]
net.tcp.listen[port]
检查此 TCP 端口是否处于 LISTEN 状态。
返回值:0 - 不处于 LISTEN 状态;1 - 处于 LISTEN 状态。
Supported platforms:Linux、FreeBSD、Solaris、MacOS X、Windows。
参数:
- port - TCP 端口号
在 Linux 内核 2.6.14 及以上版本中,如果可能,会从内核的 NETLINK 接口获取处于监听状态的 TCP 套接字信息。 否则,将从 /proc/net/tcp 和 /roc/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] #this item can be used to test the web server availability running on port 80
net.tcp.service[service,<ip>,<port>]
检查服务是否正在运行并接受TCP连接。
返回值:0 - 服务停止;1 - 服务运行中。
参见支持的平台。
参数:
- service - ssh、ldap、smtp、ftp、http、pop、nntp、imap、tcp、https或telnet(见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] #this item can be used to test the availability of FTP server on TCP port 45
net.tcp.service.perf[service,<ip>,<port>]
检查TCP服务的性能。
返回值:float(0 - 服务不可用;秒数 - 等待服务响应所花费的秒数)。
参见支持的平台。
参数:
- service - ssh、ldap、smtp、ftp、http、pop、nntp、imap、tcp、https或telnet(参见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] #this item can be used to test the speed of initial response from the SSH server
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回匹配参数的 TCP 套接字数量。
返回值:Integer。
Supported platforms:Linux、Windows。
参数:
- laddr - 本地 IPv4/6 地址或 CIDR 子网;
- lport - 本地端口号或服务名称;
- raddr - 远程 IPv4/6 地址或 CIDR 子网;
- rport - 远程端口号或服务名称;
- state - 连接状态(established、syn_sent、syn_recv、fin_wait1、fin_wait2、time_wait、close、close_wait、last_ack、listen、closing)。
示例:
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>]
检查服务是否正在运行并响应UDP请求.
返回值: 0 - 服务停止; 1 - 服务正在运行.
查看支持的平台.
参数:
- service - ntp (参见details);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号).
示例:
net.udp.service[ntp,,45] #this item can be used to test the availability of NTP service on UDP port 45
net.udp.service.perf[service,<ip>,<port>]
检查UDP服务的性能.
返回值: float (0 - 服务不可用; seconds - 等待服务响应的秒数).
查看支持的平台.
参数:
- service - ntp (参见 details);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号).
示例:
net.udp.service.perf[ntp] #this item can be used to test response time from NTP service
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回与参数匹配的 UDP 套接字数量。
返回值:Integer。
Supported platforms:Linux、Windows。
参数:
- 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(默认)、user或system;
- cmdline - 按命令行过滤(这是一个正则概述);
- mode - 数据收集模式:avg1(默认)、avg5或avg15;
- zone - 目标区域:current(默认)或all。 此参数仅在Solaris上受支持。
注释:
- 返回值基于单个CPU核心的使用率百分比。 例如,完全使用两个核心的进程CPU使用率为200%。
- 进程CPU使用率数据由收集器收集,该收集器最多支持1024个唯一的(按名称、用户和命令行)queries。 超过24小时未访问的queries将从收集器中移除。
- 当在Solaris上设置
zone参数为current(或默认值)时,如果agent是在不支持区域的Solaris上编译的,但在支持区域的新版Solaris上运行,则agent将返回NOTSUPPORTED(agent无法将结果限制在当前区域)。 然而,在这种情况下支持all。
示例:
proc.cpu.util[,root] #CPU utilization of all processes running under the "root" user
proc.cpu.util[zabbix_server,zabbix] #CPU utilization of all zabbix_server processes running under the zabbix user
proc.get[<name>,<user>,<cmdline>,<mode>]
操作系统进程及其参数的列表。
可用于低级发现。
返回值:JSON object。
支持的平台: Linux, FreeBSD, Windows, OpenBSD, NetBSD.
参数:
- name - 进程名称(默认为所有进程);
- user - 用户名(默认为所有用户);
- cmdline - 按命令行过滤(这是一个正则概述)。 此参数在Windows上不受支持;在其他平台上,如果模式设置为'summary',则也不支持。
- mode - 可能的值:
process(默认),thread(NetBSD不支持),summary。 查看每种模式和操作系统返回的process parameters列表。
注释:
- 如果无法获取值,例如由于错误(进程已终止、权限不足、系统调用失败),将返回
-1; - 查看使用
name和cmdline参数选择进程的notes(特定于Linux)。
示例:
proc.get[zabbix_server,zabbix,,process] #list of all zabbix_server processes running under the zabbix user, returns one entry per PID
proc.get[java,,,thread] #list of all Java processes, returns one entry per thread
proc.get[,zabbix,,summary] #combined data for processes of each type running under the zabbix user, returns one entry per process name
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
进程使用的memory(以字节为单位)
返回值:integer - 使用mode作为max、min、sum;float - 使用mode作为avg
支持平台: 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总和可能会产生不切实际的大数值
参见notes了解如何使用name和cmdline参数选择进程(Linux特有)
当从命令行调用此监控项并包含命令行参数时(例如使用agent测试模式:zabbix_agentd -t proc.mem[,,,apache2]),会多统计一个进程,因为agent会统计自身
示例:
proc.mem[,root] #the memory used by all processes running under the "root" user
proc.mem[zabbix_server,zabbix] #the memory used by all zabbix_server processes running under the zabbix user
proc.mem[,oracle,max,oracleZABBIX] #the memory used by the most memory-hungry process running under Oracle having oracleZABBIX in its command line
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
进程数量。
返回值:Integer。
支持的平台:Linux、FreeBSD、Solaris6、HP-UX、AIX、OpenBSD、NetBSD、Windows。
参数:
- name - 进程名称(默认是 all processes);
- user - 用户名(默认是 all users);
- state - 可能的值:
all(默认)、
disk - 不可中断睡眠、
run - 运行中、
sleep - 可中断睡眠、
trace - 已停止、
zomb - 僵尸进程; - cmdline - 按命令行过滤(这是一个正则表达式);
- zone - 目标 zone:current(默认)或 all。 此参数仅在 Solaris 上受支持。
注释:
- disk 和 trace 状态参数仅在 Linux、FreeBSD、OpenBSD、NetBSD 上受支持;
- 在 Windows 上,仅支持
name和user参数; - 当此监控项从命令行调用并包含命令行参数时(例如使用 agent 测试模式:
zabbix_agentd -t proc.num[,,,apache2]),会额外统计一个进程,因为 agent 会统计自身; - 当将
zone参数设置为 current(或默认值)时,如果 agent 是在不支持 zone 的 Solaris 上编译的,但运行在支持 zone 的较新 Solaris 上,则 agent 将返回 NOTSUPPORTED(agent 无法将结果限制为仅当前 zone)。 不过,在这种情况下支持 all。 - 有关使用
name和cmdline参数选择进程的说明,请参见注释(仅适用于 Linux)。
示例:
proc.num[,mysql] #mysql 用户下运行的进程数量
proc.num[apache2,www-data] #以 www-data 用户运行的 apache2 进程数量
proc.num[,oracle,sleep,oracleZABBIX] #处于 sleep 状态、以 Oracle 身份运行且命令行中包含 oracleZABBIX 的进程数量
sensor[device,sensor,<mode>]
硬件传感器读数。
返回值:Float。
支持的平台:Linux、OpenBSD。
参数:
- device - 设备名称;
- sensor - 传感器名称;
- mode - 可能的值:avg、max 或 min。
注释:
- 在 Linux 2.4 上读取 /proc/sys/dev/sensors;
- 在 Linux 2.6+ 上读取 /sys/class/hwmon。 有关 Linux 上 sensor 监控项的更详细说明,请参见;
- 在 OpenBSD 上读取 hw.sensors MIB;
- 在 Linux 2.4 上,如果指定了 mode,则 device 和 sensor 会被视为正则表达式;
- 在 Linux 2.6+ 和 OpenBSD 上,或者如果省略 mode,则 device 和 sensor 会被按原样处理。
示例:
sensor[w83781d-i2c-0-2d,temp1]
sensor[cpu0,temp0] #the temperature of one CPU
sensor["cpu[0-2]$",temp,avg] #the average temperature of the first three CPUs
系统启动时间
系统启动时间。
返回值: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.
返回值: float.
参见支持的平台.
参数:
- cpu - 可选值: all (默认) 或 percpu (总负载除以在线CPU数量);
- mode - 可选值: avg1 (一分钟平均值,默认), avg5, 或 avg15.
示例:
system.cpu.load[,avg5]
system.cpu.num[<type>]
CPU 的数量。
返回值:Integer。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD、Windows。
参数:
- 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、Windows。
参数:
- cpu - <CPU number> 或 all(默认);
- type - 可选值:user(默认)、idle、nice、system、iowait、interrupt、softirq、steal、guest(适用于 Linux 内核 2.6.24 及以上),或 guest_nice(适用于 Linux 内核 2.6.33 及以上);
- mode - 可选值:avg1(1 分钟平均值,默认)、avg5 或 avg15;
- 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 上受支持。
- softirq、steal、guest、guest_nice 类型参数仅在 Linux 2.6 及更高版本上受支持。
- avg5 和 avg15 模式参数在 Linux、FreeBSD、Solaris、HP-UX、AIX、OpenBSD、NetBSD 上受支持。
示例:
system.cpu.util[0,user,avg5]
system.hostname[<type>,<transform>]
系统主机名.
返回值: 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[host] → Win-Serv2008-I6LonG
system.hostname[host,lower] → win-serv2008-i6long
system.hostname[fqdn,lower] → blog.zabbix.com
system.hw.chassis[<info>]
机箱信息.
返回值: string.
支持平台: Linux.
参数:
- info - 可选值: full (默认), model, serial, type, 或 vendor
注释:
- 该监控项键值依赖于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信息.
返回值: string 或 integer.
支持平台: Linux.
参数:
- cpu - <CPU编号> 或 all (默认);
- info - 可选值: full (默认), curfreq, maxfreq, model 或 vendor.
注释:
- 从
/proc/cpuinfo和/sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq收集信息; - 如果指定了CPU编号和curfreq或maxfreq,则返回数值(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地址列表.
返回值: 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[<type>]
系统时间。
返回值:Integer - 当 type 为 utc 时;String - 当 type 为 local 时。
请参见 supported platforms。
参数:
- type - 可选值:utc -(默认)自 Epoch(1970 年 1 月 1 日 00:00:00 UTC)以来的时间,以秒为单位;或 local - 采用 'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm' 格式的时间
必须作为 Zabbix agent 的 passive check 使用;在 Zabbix agent 2 上,它也可以配置为 active check。
示例:
system.localtime[local] #使用此键创建一个监控项,然后用它在 *Clock* 仪表板小部件中显示主机时间。
system.run[command,<mode>]
在主机上运行指定命令。
返回值:命令的文本结果,或当使用mode作为nowait时返回1(无论命令执行结果如何)。
参见支持的平台。
参数:
- command - 待执行的命令;
- mode - 可选值:wait - 等待执行结束(默认)或 nowait - 不等待。
注释:
- 该监控项默认处于禁用状态。 了解如何enable them;
- 该监控项的返回值包含命令产生的标准输出和标准错误。 退出码检查不会被执行;
- 为确保正确处理,命令返回值必须为
text数据类型。 空结果同样允许; - 返回值限制为16MB(包括会被截断的尾部空格);文本数据限制同样适用;
- 另见:Command execution。
示例:
system.run[ls -l /] #return a detailed file list of the root directory
system.stat[resource,<type>]
系统统计信息。
返回值:integer 或 float。
支持的平台: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
system.sw.arch
软件架构信息.
返回值: string.
参见支持的平台.
该信息从uname()函数获取.
示例:
system.sw.arch → i686
system.sw.os[<info>]
操作系统信息.
返回值: string.
支持的平台: Linux, Windows.
参数:
- info - 可选值: full (默认), short, 或 name
信息获取来源(注意并非所有文件和选项在所有发行版中都存在):
/proc/version(full) 在Linux系统;/proc/version_signature(short) 在Linux系统;- 来自支持该参数的Linux系统的
/etc/os-release或/etc/issue.net中的PRETTY_NAME参数 (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]
系统软件操作系统获取
有关操作系统的详细信息(版本、类型、发行版名称、次版本和主版本等)。
返回值:JSON object。
支持的平台:Linux,Windows。
system.sw.packages[<regexp>,<manager>,<format>]
已安装软件包的列表。
返回值:文本。
支持平台: 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(默认)或一个软件包管理器(可选值:rpm、dpkg、pkgtool、pacman 或 portage)。
备注:
- 返回未格式化的 JSON,包含名称匹配给定正则表达式的已安装软件包;
- 输出是一个 array,其中每个 objects 包含以下键:name、manager、version、size、architecture、buildtime 和 installtime(参见 more details)。
system.swap.in[<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.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 - 表示百分比。
Supported platforms:Linux、FreeBSD、Solaris、AIX、OpenBSD、Windows。
参数:
- device - 指定用于交换的设备(仅限 FreeBSD)或 all(默认);
- type - 可能的值:free(可用交换空间,默认)、pfree(可用交换空间,百分比)、pused(已用交换空间,百分比)、total(交换空间总量)或 used(已用交换空间)。
注释:
- 请注意,如果 swap 大小为 0,Windows 上不支持 pfree、pused;
- 如果未指定 device,Zabbix agent 只会考虑交换设备(文件),物理内存将被忽略。
例如,在 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。
Supported platforms:Linux、FreeBSD、Solaris、AIX、MacOS X、OpenBSD、NetBSD、Windows。
在 监控项配置 中,使用 s 或 uptime 单位可获得可读值。
系统用户数
当前登录用户的数量。
返回值:integer。
参见 支持的平台。
who 命令在 agent 端使用以获取该值。
vfs.dev.discovery
块设备列表及其类型.
用于低级发现.
返回值: JSON object.
支持的平台: Linux.
vfs.dev.read[<device>,<type>,<mode>]
磁盘读取统计信息.
返回值: integer - 包含type的sectors, operations, bytes; float - 包含type的sps, ops, bps.
支持平台: Linux, FreeBSD, Solaris, AIX, OpenBSD.
参数:
- device - 磁盘设备(默认为all 3);
- type - 可选值: sectors, operations, bytes, sps, ops, 或bps (sps, ops, bps分别代表: 每秒扇区数, 每秒操作数, 每秒字节数);
- mode - 可选值: avg1 (一分钟平均值, 默认), avg5, 或avg15.
该参数仅在
type为: sps, ops, bps时支持.
注释:
- 如果使用update间隔为三小时或更长2, 该监控项将始终返回'0';
- sectors和sps类型参数仅在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 - 在支持的平台上sps, ops和bps最多支持1024个设备(1023个独立设备和1个all).
示例:
vfs.dev.read[,operations]
vfs.dev.write[<device>,<type>,<mode>]
磁盘写入统计。
返回值:integer - 包含type的sectors、operations、bytes;float - 包含type的sps、ops、bps。
支持平台: Linux、FreeBSD、Solaris、AIX、OpenBSD。
参数:
- device - 磁盘设备(默认为all 3);
- type - 可选值:sectors、operations、bytes、sps、ops或bps(sps、ops、bps分别代表:每秒扇区数、每秒操作数、每秒字节数);
- mode - 可选值:avg1(一分钟平均值,默认)、avg5或avg15。
此参数仅在
type为sps、ops、bps时支持。
注释:
- 如果使用update间隔为三小时或更长2,此监控项将始终返回'0';
- sectors和sps类型参数仅在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 - 在支持的平台上,sps、ops和bps最多支持1024个设备(1023个独立设备和1个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。
参见 supported platforms。
参数:
- dir - 目录的绝对路径;
- regex incl - 描述要包含的实体(文件、目录、符号链接)名称模式的正则 expression;如果为空,则包含全部(默认值);
- regex excl - 描述要排除的实体(文件、目录、符号链接)名称模式的正则 expression;如果为空,则不排除任何内容(默认值);
- types incl - 要统计的目录项类型,可选值:file - 普通文件,dir - 子目录,sym - 符号链接,sock - 套接字,bdev - 块设备,cdev - 字符设备,fifo - FIFO,dev - 与 "bdev,cdev" 同义,all - 所有类型(默认),即 "file,dir,sym,sock,bdev,cdev,fifo"。 多个类型必须用逗号分隔并加引号。
- types excl - 不应统计的目录项类型(参见
types incl)。 如果某种条目类型同时出现在types incl和types excl中,则不会统计该类型的目录项。 - max depth - 要遍历的子目录最大深度:
-1(默认)- 不限制,
0 - 不进入子目录。 - min size - 要统计的文件最小大小(以字节为单位)。 更小的文件不会被统计。 可以使用 Memory suffixes。
- max size - 要统计的文件最大大小(以字节为单位)。 更大的文件不会被统计。 可以使用 Memory suffixes。
- min age - 要统计的目录项最小存在时间(以秒为单位)。 更新的条目不会被统计。 可以使用 Time suffixes。
- max age - 要统计的目录项最大存在时间(以秒为单位)。 如此老及更老的条目不会被统计(修改时间)。 可以使用 Time suffixes。
- regex excl dir - 描述要排除的目录名称模式的正则 expression。 该目录中的所有内容都会被排除(与 regex_excl 相比)。
注释:
- 在 Windows 上,此监控项会跟随 UNC 路径,这可能带来 security risk;
- 不支持环境变量,例如 %APP_HOME%、$HOME 和 %TEMP%;
- 伪目录 "." 和 ".." 从不计数;
- 目录遍历时从不跟随符号链接;
- 在计算目录项数量时,
regex incl和regex excl都会应用于文件和目录,但在选择要遍历的子目录时会被忽略(如果regex incl为 "(?i)^.+\.zip$" 且未设置max depth,则会遍历所有子目录,但只统计 zip 类型的文件)。 - 执行时间受 agent configuration 中的超时值限制(3 秒)。 由于遍历大型目录可能耗时更长,因此不会返回任何数据,且该监控项将变为不受支持。 不会返回部分统计结果。
- 按大小过滤时,只有普通文件的大小才有实际意义。
在 Linux 和 BSD 下,目录也有非零大小(通常为几 KB)。
设备的大小为 0,例如 /dev/sda1 的大小并不反映相应分区的大小。
因此,在使用
<min_size>和<max_size>时,建议将<types_incl>指定为 "file",以避免意外情况。
示例:
vfs.dir.count[/dev] #监控 /dev 中设备的数量(Linux)
vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] #监控临时目录中的文件数量
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。
参见 supported platforms。
参数:
- dir - 目录的绝对路径;
- regex incl - 描述要包含的实体(文件、目录、符号链接)名称模式的正则 expression;如果为空(默认值),则包含全部;
- regex excl - 描述要排除的实体(文件、目录、符号链接)名称模式的正则 expression;如果为空(默认值),则不排除任何内容;
- types incl - 要列出的目录条目类型,可能的值:file - 普通文件,dir - 子目录,sym - 符号链接,sock - 套接字,bdev - 块设备,cdev - 字符设备,fifo - FIFO,dev - 与 "bdev,cdev" 同义,all - 所有类型(默认),即 "file,dir,sym,sock,bdev,cdev,fifo"。 多个类型必须用逗号分隔并加引号。
- types excl - 不要列出的目录条目类型(参见
types incl)。 如果某个条目类型同时出现在types incl和types excl中,则不会列出该类型的目录条目。 - max depth - 要遍历的子目录最大深度:
-1(默认)- 不限深度,
0 - 不进入子目录。 - min size - 要列出的文件的最小大小(以字节为单位)。 更小的文件不会被列出。 可使用 Memory suffixes。
- max size - 要列出的文件的最大大小(以字节为单位)。 更大的文件不会被列出。 可使用 Memory suffixes。
- min age - 要列出的目录条目的最小年龄(以秒为单位)。 更新的条目不会被列出。 可使用 Time suffixes。
- max age - 要列出的目录条目的最大年龄(以秒为单位)。 如此老及更老的条目不会被列出(按修改时间计算)。 可使用 Time suffixes。
- regex excl dir - 描述要排除的目录名称模式的正则 expression。
该目录的所有内容都会被排除(与
regex excl不同)
注释:
- 在 Windows 上,此监控项会跟随 UNC 路径,这可能带来 安全风险;
- 不支持环境变量,例如 %APP_HOME%、$HOME 和 %TEMP%;
- 伪目录 "." 和 ".." 从不列出;
- 目录遍历时从不跟随符号链接;
- 在生成条目列表时,
regex incl和regex excl都会应用于文件和目录,但在选择要遍历的子目录时会被忽略(如果regex incl为 "(?i)^.+\.zip$" 且未设置max depth,则会遍历所有子目录,但只会统计 zip 类型的文件)。 - 执行时间受 agent configuration 中 timeout 值的限制。 由于大型目录遍历可能耗时更长,因此不会返回任何数据,且该监控项将变为不受支持。 不会返回部分列表。
- 按大小过滤时,只有普通文件的大小才有实际意义。
在 Linux 和 BSD 下,目录也有非零大小(通常为几 KB)。
设备的大小为 0,例如 /dev/sda1 的大小并不反映相应分区的大小。
因此,在使用
min size和max size时,建议将types incl指定为 "file",以避免意外情况。
示例:
vfs.dir.get[/dev] #检索 Linux 中 /dev 目录下的设备列表
vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #检索临时目录中的文件列表
vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]
目录大小(以字节为单位)。
返回值:Integer。
支持的平台:Linux、Windows。
该监控项也可能在其他类 UNIX 平台上工作。
参数:
- dir - 目录的绝对路径;
- regex incl - 用于描述要包含的实体(文件、目录、符号链接)名称模式的正则表达式;如果为空,则包含全部(默认值);
- regex excl - 用于描述要排除的实体(文件、目录、符号链接)名称模式的正则表达式;如果为空,则不排除任何内容(默认值);
- mode - 可能的值:apparent(默认)- 获取表观文件大小,而不是磁盘占用(相当于
du -sb dir),disk - 获取磁盘占用(相当于du -s -B1 dir)。 与du命令不同,vfs.dir.size 监控项在计算目录大小时会考虑隐藏文件(在 dir 内部相当于du -sb .[^.]* *)。 - max depth - 要遍历的子目录最大深度:-1(默认)- 不限制,0 - 不进入子目录。
- regex excl dir - 用于描述要排除的目录名称模式的正则表达式。
目录的全部内容都将被排除(与
regex excl不同)
注释:
- 在 Windows 上,此监控项会遵循 UNC 路径,这可能带来安全风险;
- 仅计算至少对 zabbix 用户具有读取权限的目录。 对于仅具有读取权限的目录,仅计算目录本身的大小。 具有读取和执行权限的目录会连同其内容一起计算。
- 对于大型目录或较慢的磁盘,由于 agent 和 server/proxy 配置文件中的 Timeout 设置,此监控项可能会超时。 请根据需要增加超时值。
- 文件大小限制取决于 large file support。
示例:
vfs.dir.size[/tmp,log] #计算 /tmp 中所有名称包含 'log' 的文件大小
vfs.dir.size[/tmp,log,^.+\.old$] #计算 /tmp 中所有名称包含 'log' 的文件大小,但排除名称以 '.old' 结尾的文件
vfs.file.cksum[file,<mode>]
使用 UNIX cksum 算法计算的文件校验和。
返回值:Integer - 当 mode 为 crc32 时,String - 当 mode 为 md5、sha256 时。
请参见支持的平台。
参数:
- file - 文件的完整路径;
- mode - crc32(默认)、md5 或 sha256。
注释:
示例:
vfs.file.cksum[/etc/passwd]
返回值示例(分别对应 crc32/md5/sha256):
675436101
9845acf68b73991eb7fd7ee0ded23c44
ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc
vfs.file.contents[file,<encoding>]
参数:
- file - 文件的完整路径;
- encoding - 代码页标识符。
注释:
- 在 Windows 上,此监控项会遵循 UNC 路径,这可能带来安全风险;
- 返回值限制为 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(默认不排除任何类型)
注释:
- 在 Windows 上,此监控项会跟随 UNC 路径,这可能带来安全风险;
- 多个类型必须用英文逗号分隔,并且整个集合需用引号 "" 括起来;
- 如果同一种类型同时出现在 <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 object。
请参见支持的平台。
参数:
- file - 文件的完整路径
注释:
- 在 Windows 上,此监控项遵循 UNC 路径,这可能带来安全风险;
- UNIX 类系统支持的文件类型:普通文件、目录、符号链接、套接字、块设备、字符设备、FIFO。
- 文件大小限制取决于大文件支持。
示例:
vfs.file.get[/etc/passwd] #返回一个包含 /etc/passwd 文件信息(类型、用户、权限、SID、uid 等)的 JSON
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权限八进制数的4位string.
返回值: string.
支持平台: Linux.
该监控项可能在其他类UNIX平台上工作.
参数:
- file - file的完整路径
file的大小限制取决于large file support.
示例:
vfs.file.permissions[/etc/passwd] #return permissions of /etc/passwd, for example, '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 超过捕获组数量,则替换为空字符串)。
注释:
- 在 Windows 上,此 item 会遵循 UNC 路径,这可能带来安全风险;
- 文件大小限制取决于大文件支持;
- 仅返回第一条匹配的行;
- 如果没有任何行匹配该表达式,则返回空字符串;
- 字节顺序标记(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>]
在文件中查找字符串7。
返回值:0 - 未找到匹配;1 - 已找到。
请参见受支持的平台。
参数:
- file - 文件的完整路径;
- regexp - 描述所需模式的正则表达式;
- encoding - 代码页标识符;
- start line - 要搜索的起始行号(默认是文件的第一行);
- end line - 要搜索的结束行号(默认是文件的最后一行)。
注释:
示例:
vfs.file.regmatch[/var/log/app.log,error]
vfs.file.size[file,<mode>]
文件大小(以字节为单位)。
返回值:Integer。
请参见支持的平台。
参数:
- file - 文件的完整路径;
- mode - 可能的值:bytes(默认)或 lines(空行也会被计数)。
注释:
示例:
vfs.file.size[/var/log/syslog]
vfs.file.time[file,<mode>]
文件时间信息。
返回值:Integer(Unix 时间戳)。
参见 supported platforms。
参数:
- file - 文件的完整路径;
- mode - 可能的值:
modify(默认)- 文件内容最后修改时间,
access - 文件最后读取时间,
change - 文件属性最后变更时间
注释:
- 在 Windows 上,此监控项会遵循 UNC 路径,这可能构成 安全风险;
- 文件大小限制取决于 large file support。
示例:
vfs.file.time[/etc/passwd,modify]
vfs.fs.discovery
已挂载文件系统的列表及其类型和挂载选项。
用于低级别发现。
返回值:JSON 对象。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD、Windows。
vfs.fs.get
已挂载文件系统的列表,包括其类型、可用磁盘空间、inode 统计信息和挂载选项。
可用于低级别发现。
返回值:JSON object。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD、Windows。
注释:
- inode 数量等于零的文件系统也会被报告,这种情况可能出现在具有动态 inode 的文件系统中(例如 btrfs)。
- 只有当 Zabbix agent 用户对挂载点路径中的每个目录都具有遍历权限时,才会返回可用磁盘空间和 inode 统计信息;否则,该文件系统将不会出现在输出中。
- 另请参见:已挂载文件系统的发现。
vfs.fs.inode[fs,<mode>]
inode的数量或百分比.
返回值: integer - 表示数量; float - 表示百分比.
参见支持的平台.
参数:
- fs - 文件系统;
- mode - 可能的值: total (默认), free, used, pfree (空闲百分比), 或 pused (已用百分比).
如果inode计数为零(对于动态inode的file系统如btrfs可能出现这种情况), pfree/pused值将分别报告为"100"和"0".
示例:
vfs.fs.inode[/,pfree]
vfs.fs.size[fs,<mode>]
以字节或占总空间的百分比表示的磁盘空间。
返回值:integer - 表示字节;float - 表示百分比。
参见支持的平台。
参数:
- fs - 文件系统;
- mode - 可能的值:total(默认)、free、used、pfree(空闲百分比)或 pused(已用百分比)。
注释:
- 如果文件系统未挂载,则返回挂载点所在的本地文件系统的大小;
- 使用 free 模式时,file 系统的保留空间会被考虑在内且不包含在内。
示例:
vfs.fs.size[/tmp,free]
vm.memory.size[<mode>]
以字节或占总量的百分比表示的内存大小。
返回值:Integer - 表示字节;Float - 表示百分比。
请参见 supported platforms。
参数:
- mode - 可能的值:total(默认)、active、anon、buffers、cached、exec、file、free、inactive、pinned、shared、slab、wired、used、pused(已使用,百分比)、available 或 pavailable(可用,百分比)。
注释:
- 此监控项接受三类参数:
- total - 内存总量;
- 平台相关的内存类型:active、anon、buffers、cached、exec、file、free、inactive、pinned、shared、slab、wired;
- 用户级别的内存使用和可用估算:used、pused、available、pavailable;
- active 模式参数仅支持 FreeBSD、HP-UX、MacOS X、OpenBSD、NetBSD;
- anon、exec、file 模式参数仅支持 NetBSD;
- buffers 模式参数仅支持 Linux、FreeBSD、OpenBSD、NetBSD;
- cached 模式参数仅支持 Linux、FreeBSD、AIX、OpenBSD、NetBSD;
- inactive、wired 模式参数仅支持 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方案:http、https4。 未指定协议时默认使用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方案:http、https4。 未指定方案时将默认为http。 若指定URL,则path和port必须为空。 仅当支持cURL时4,可为需要认证的服务器指定用户名/密码,例如:http://user:[email protected]。 主机名支持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方案: http, https4. 缺失的方案将被视为http. 如果指定了URL, 则path和port必须为空. 为需要认证的服务器指定用户名/密码, 例如:http://user:[email protected]仅在支持cURL时可用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 服务器或 proxy 的内部指标。
如果指定了 ip 和 port,则从远程实例获取指标;否则,从本地实例获取。
返回值:JSON 对象。
请参见 支持的平台。
参数:
- ip - 要远程查询的服务器/proxy 的 IP/DNS/网络掩码列表(默认值为 127.0.0.1);
- port - 要远程查询的服务器/proxy 的端口(默认值为 10051)
注释:
- 此监控项返回一组选定的内部指标。 有关详细信息,请参见 Zabbix stats 的远程监控;
- 请注意,stats 请求只会接受来自目标实例上 'StatsAllowedIP' 服务器/proxy 参数中列出的地址。
zabbix.stats[<ip>,<port>,queue,<from>,<to>]
返回队列中延迟于 Zabbix 服务器或 proxy 的受监控监控项数量。
如果指定了 ip 和 port,则从远程实例检索指标;否则,从本地实例检索。
返回值:JSON 对象。
请参见支持的平台。
参数:
- ip - 要远程查询的服务器/proxy 的 IP/DNS/网络掩码列表(默认值为 127.0.0.1);
- port - 要远程查询的服务器/proxy 的端口(默认值为 10051)
- queue - 常量(按原样使用)
- from - 至少延迟(默认值为 6 秒)
- to - 最多延迟(默认值为无限)
请注意,stats 请求仅会接受来自目标实例上 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 10 6/06及更早版本的Solaris系统上,回环接口不支持bytes和errors值,因为内核不存储和/或报告字节、错误和利用率统计信息
但如果您通过net-snmp监控Solaris系统,可能会返回值,因为net-snmp包含可追溯至1997年的cmu-snmp遗留代码,在无法从接口统计信息读取字节值时,会返回数据包计数器(回环接口上确实存在)乘以任意值308
这是假设数据包平均长度为308个八位字节,这个估算非常粗略,因为Solaris系统上回环接口的MTU限制为8892字节
这些值不应被视为正确或接近准确,它们只是猜测值
Zabbix agent不会进行任何猜测工作,但net-snmp会返回这些字段的值
6 从/proc/pid/psinfo获取的Solaris命令行限制为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"文档中找到。
请注意,微软有时会将某些代码页标记为"仅限托管应用程序使用"——即仅通过.NET运行时公开,而不通过原生Win32 API提供。Zabbix agent实现了自己的编码转换逻辑,因此即使原生Windows函数不提供这些代码页,Zabbix agent也支持它们。
如果未在encoding参数中指定编码,则应用以下解析策略:
- 如果未指定编码(或为空string),则假定为UTF-8,数据按"原样"处理;
- BOM分析 - 适用于监控项 'vfs.file.contents'、'vfs.file.regexp'、'vfs.file.regmatch'。 尝试通过使用file开头的字节顺序标记(BOM)来确定正确的编码。 如果不存在BOM - 则应用标准解析(见上文)。
故障排除 agent 监控项
对于被动检查,为防止监控项因服务器对agent的请求首先超时而无法get任何值,需注意以下事项:
- 当agent的version早于服务器version时,配置(或超时)中的Timeout值可能需要高于agent的configuration file中的
Timeout值。 - 当agent的version晚于服务器version时,服务器configuration file中的
Timeout值可能需要高于agent的configuration file中的Timeout值。