这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.

1 Zabbix agent

概述

本节详细说明使用Zabbix agent进行数据采集的监控项键值。

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

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

请注意,Windows版Zabbix agent支持的所有监控项键值同样适用于新一代Zabbix agent 2。 参阅仅适用于additional item keys agent 2的兼容性列表。

支持的监控项键

以下列出了可与Zabbix agent一起使用的监控项键值.

监控项键值列表不包含参数和附加信息. 点击监控项键值可查看完整详情.

监控项键值 描述 监控项分组
kernel.maxfiles 操作系统支持的最大打开文件数. 内核
kernel.maxproc 操作系统支持的最大进程数.
kernel.openfiles 当前打开的file描述符数量.
log 日志file的监控. Log monitoring
log.count 监控日志file中匹配行的计数.
logrt 轮转日志file的监控.
logrt.count 轮转日志file中匹配行的计数.
modbus.get 读取Modbus数据. Modbus
net.dns 检查DNS服务状态. 网络
net.dns.perf 检查DNS服务性能.
net.dns.record 执行DNSquery.
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.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 操作系统详细信息(version,类型,发行版名称,主次version等).
system.sw.packages 已安装软件包列表.
system.sw.packages.get 已安装软件包详细列表.
system.swap.in 换入(从设备到memory)统计.
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 file校验和(通过UNIX cksum算法计算).
vfs.file.contents 获取file内容.
vfs.file.exists 检查file是否存在.
vfs.file.get 返回file信息.
vfs.file.md5sum file的MD5校验和.
vfs.file.owner 获取file所有者.
vfs.file.permissions 返回包含UNIX权限的4位string八进制数.
vfs.file.regexp 检索file中的string.
vfs.file.regmatch 在file中查找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大小(字节或占总量的百分比). 虚拟memory
web.page.get 获取网页内容. 网页监控
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 Zabbix agent的version.
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)
  • persistent dir (仅限Unix系统的zabbix_agentd; Zabbix agent 2不支持) - 存储持久化文件的目录绝对路径. 另见日志持久化文件注意事项-监控项的附加说明.

注释:

  • 监控项必须配置为主动检查;
  • 如果file缺失或权限不足,监控项将变为不支持状态;
  • 如果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] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send only '6080' to server. Because a numeric value is being sent, the "Type of information" for this item can be set to "Numeric (unsigned)" and the value can be used in graphs, triggers etc.

使用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"] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send a modified record "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" to the server.
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]


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

参数:

  • file - 日志file的完整路径和名称;
  • regexp - 描述所需模式的正则概述;
  • encoding - 代码页编码设置;
  • maxproclines - agent每秒分析的最大新行数(不得超过10000). 默认值为zabbix_agentd.conf中'MaxLinesPerSecond'的10倍.
  • 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 - 非唯一记录,仅当大小变化时重新读取(忽略修改时间变化)。
  • persistent dir (仅适用于Unix系统上的zabbix_agentd;Zabbix agent 2不支持) - 用于存储持久化文件的目录绝对路径 另请参阅关于日志持久化文件注意事项-监控项的附加说明。

注释:

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

Windows示例:

logrt["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will collect data from log files in "c:/dir1/dir2/dir3" where the file name starts with "filename" and ends with any extension matching ".log".
       logrt["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will collect data from log files in the network share "//example.com/share/dir1/dir2/dir3" where the file name starts with "filename" and ends with any extension matching ".log".

其他系统示例:

logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] #this item will match a file like "logfile1" (will not match ".logfile1").
       logrt["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #this item will collect data from files such as "logfile_abc_1" or "logfile__001".

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

logrt[/app1/^test.*log$,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send only '6080' to server. Because a numeric value is being sent, the "Type of information" for this item can be set to "Numeric (unsigned)" and the value can be used in graphs, triggers etc.

使用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"] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send a modified record "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" to server.
logrt.count[file regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]


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

参数:

  • file regexp - file的绝对路径,其中file名称使用正则expression指定。 注意正则表达式仅适用于file名称,不需要匹配完整名称(例如/path/to/agent将匹配zabbix_agentd.log)。
  • regexp - 描述所需模式的正则概述
  • encoding - 代码页编码设置
  • maxproclines - agent每秒分析的最大新行数(不能超过10000)。 默认值为zabbix_agentd.conf中的10*'MaxLinesPerSecond'。
  • mode - 可能值:all(默认)或skip - 跳过旧数据处理(仅影响新创建的监控项)。
  • maxdelay - 最大延迟秒数。 类型:float。 值:0 - (默认)永不忽略日志file行;> 0.0 - 忽略旧行以get在"maxdelay"秒内分析的最新行。 使用前请阅读使用-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正则表达式必须用正确的目录分隔符分隔:

    • on Windows, the separator must be a backslash (\); forward slashes may be tolerated at other positions, except the one that separates the log directory path and the log file regular expression (see examples below).
    • on other systems, it must be a forward slash (/).

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


检查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服务器返回错误代码(例如NXDOMAINSERVFAIL)时,监控项返回响应时间而非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 object.
支持的平台: Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD.

net.if.in[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缓冲区错误数
    frame - 数据包帧错误数
    compressed - 设备驱动程序接收的压缩数据包数
    multicast - 设备驱动程序接收的多播帧数

注释:

  • 可以将此键与每秒变化预处理步骤一起使用,以便get每秒字节数统计;
  • 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。 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及以上版本中,如果可能的话,监听TCP套接字的信息将从内核的NETLINK接口获取. 否则,信息将从/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 - sshldapsmtpftphttppopnntpimaptcphttpstelnet(见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 - 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] #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
支持平台: Linux.

参数:

  • 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] #the number of connections to local TCP port 80 in the established state
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.
支持平台: Linux.

参数:

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

示例:

net.udp.socket.count[,,,,established] #returns the number of UDP sockets in the connected state
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]


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

参数:

  • name - 进程名称(默认为所有进程);
  • user - 用户名(默认为所有用户);
  • type - CPU使用类型:total(默认)、usersystem
  • cmdline - 按命令行过滤(这是一个正则概述);
  • mode - 数据收集模式:avg1(默认)、avg5avg15
  • 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
  • 查看使用namecmdline参数选择进程的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作为maxminsumfloat - 使用mode作为avg
支持平台: Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD

参数:

  • name - 进程名称(默认为所有进程
  • user - 用户名(默认为所有用户
  • mode - 可选值:avgmaxminsum(默认)
  • cmdline - 按命令行过滤(支持正则概述
  • memtype - 进程使用的type of memory

注释:

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

    参见notes了解如何使用namecmdline参数选择进程(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.

参数:

  • 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会统计自身;
  • 在Solaris上, 如果agent是在不支持zone的Solaris上编译的, 但在支持zone的新版Solaris上运行时, 将zone参数设置为current(或默认)会导致agent返回NOTSUPPORTED(agent无法将结果限制在当前zone). 但all在这种情况下是支持的.
  • 关于使用namecmdline参数选择进程(Linux特有), 请参阅notes.

示例:

proc.num[,mysql] #the number of processes running under the mysql user
       proc.num[apache2,www-data] #the number of apache2 processes running under the www-data user
       proc.num[,oracle,sleep,oracleZABBIX] #the number of processes in sleep state running under Oracle having oracleZABBIX in its command line
sensor[device,sensor,<mode>]


硬件传感器读数。
返回值:float
支持的平台: Linux, OpenBSD.

参数:

  • device - 设备名称,若mode参数省略时可使用正则表达式;
  • sensor - 传感器名称,若mode参数省略时可使用正则表达式;
  • mode - 可选值:avg, max, 或 min(若省略此参数,device和sensor将被视为字面值)。

说明:

  • 在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] #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.

参数:

  • 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 (默认), idle, nice, system, iowait, interrupt, softirq, steal, guest (Linux内核2.6.24及以上版本), 或 guest_nice (Linux内核2.6.33及以上版本);
  • mode - 可选值: avg1 (一分钟平均值, 默认), 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及更高版本上支持.
  • avg5avg15模式参数在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信息.
返回值: stringinteger.
支持平台: Linux.

参数:

  • cpu - <CPU编号>all (默认);
  • info - 可选值: full (默认), curfreq, maxfreq, modelvendor.

注释:

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

示例:

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


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

参数:

  • type - pci (默认) 或 usb

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

示例:

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


MAC地址列表.
返回值: 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 - 当typeutc时; string - 当typelocal时.
参见支持的平台.

参数:

  • type - 可选值: utc - (默认)自Epoch(1970年1月1日00:00:00 UTC)以来的时间,以秒为单位 或 local - 格式为'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm'的本地时间

仅可作为被动检查使用.

示例:

system.localtime[local] #create an item using this key and then use it to display the host time in the *Clock* dashboard widget.
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>]


系统统计信息。
返回值: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
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(默认)或一个软件包管理器(可选值:rpmdpkgpkgtoolpacmanportage)。

备注:

  • 返回未格式化的 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 - 百分比单位。
支持平台: Linux, FreeBSD, Solaris, AIX, OpenBSD.

参数:

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

注释:

  • 注意在Windows系统上,当交换空间为0时,pfreepused不被支持;
  • 若未指定device参数,Zabbix agent将仅统计交换设备(文件),物理memory将被忽略。 例如,在Solaris系统中,swap -s命令包含部分物理memory和交换设备(与swap -l不同)。

示例:

system.swap.size[,pfree] → free swap space percentage
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[<device>,<type>,<mode>]


磁盘读取统计信息.
返回值: integer - 包含typesectors, operations, bytes; float - 包含typesps, 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';
  • 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
  • 在支持的平台上sps, opsbps最多支持1024个设备(1023个独立设备和1个all).

示例:

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


磁盘写入统计。
返回值:integer - 包含typesectorsoperationsbytesfloat - 包含typespsopsbps
支持平台: 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个独立设备和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
参见支持的平台

参数:

  • 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 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 超时中的超时值限制(3秒)。 由于大型目录遍历可能耗时更长,此时不会返回数据且监控项将变为不支持状态。 不会返回部分计数结果。
  • 按大小过滤时,只有常规文件具有有意义的大小。 在Linux和BSD下,目录也有非零大小(通常为几KB)。 设备大小为零,例如/dev/sda1的大小不反映相应分区大小。 因此,当使用<min_size><max_size>时,建议将<types_incl>指定为"file",以避免意外。

示例:

vfs.dir.count[/dev] #monitors the number of devices in /dev (Linux)
       vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] #monitors the number of files in a temporary directory
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 - 用于描述要包含的实体(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 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] #retrieves the device list in /dev (Linux)
       vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #retrieves the file list in a temporary directory
vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]


目录大小(以字节为单位)。
返回值:integer
支持平台: Linux, Windows. 该监控项可能在其他类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] #calculates the size of all files in /tmp containing 'log' in their names
       vfs.dir.size[/tmp,log,^.+\.old$] #calculates the size of all files in /tmp containing 'log' in their names, excluding files with names ending with '.old'
vfs.file.cksum[file,<mode>]


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

参数:

  • file - 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的完整路径;
  • types incl - 要包含的file类型列表,可能值: file (常规file,默认值(如果未设置types_excl)),dir (目录),sym (符号链接),sock (套接字),bdev (块设备),cdev (字符设备),fifo (FIFO),dev (等同于"bdev,cdev"),all (所有上述类型,如果设置了types_excl则为默认值).
  • 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]


返回有关file的信息。
返回值:JSON object
参见支持的平台

参数:

  • file - file的完整路径

注释:

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

示例:

vfs.file.get[/etc/passwd] #return a JSON with information about the /etc/passwd file (type, user, permissions, SID, uid etc)
vfs.file.md5sum[file]


file的MD5校验值.
返回值: 字符string (file的MD5哈希值).
参见支持的平台.

参数:

  • file - file的完整路径

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

示例:

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

返回值示例:

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


获取file的所有者.
返回值: string.
参见支持的平台.

参数:

  • file - 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] #return the file owner of /tmp/zabbix_server.log
       vfs.file.owner[/tmp/zabbix_server.log,,id] #return the file owner ID of /tmp/zabbix_server.log
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>]


在file7中检索string.
返回值: 包含匹配string的行, 或由可选参数output指定的内容.
参见支持的平台.

参数:

  • file - file的完整路径;
  • regexp - 描述所需模式的正则概述;
  • encoding - 代码页编码设置;
  • start line - 要搜索的首行行号(默认为file的第一行);
  • end line - 要搜索的末行行号(默认为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] → getting the ID of user *zabbix*
vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>]


在file7中查找string.
返回值: 0 - 未找到匹配项; 1 - 找到匹配项.
参见支持的平台.

参数:

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

注释:

示例:

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


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

参数:

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

注释:

  • file必须对用户zabbix具有读取权限;
  • 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[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(默认)、freeusedpfree(空闲百分比)或 pused(已用百分比)。

注释:

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

示例:

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


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

参数:

  • mode - 可选值: total (默认), active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired, used, pused (已使用, 百分比), available, 或 pavailable (可用, 百分比).

注释:

  • 该监控项接受三类参数:
    1) total - memory总量
    2) 平台特定的memory类型: active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired
    3) 用户级估算已用和可用memory: 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方案: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.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必须为空。 仅当支持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, 则pathport必须为空. 为需要认证的服务器指定用户名/密码, 例如: 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 server或proxy内部指标.
返回值: JSON object.
参见支持的平台.

参数:

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

注释:

  • 此监控项会返回选定的内部指标集. 详情请参阅暴露的指标;
  • 请注意,目标实例上'StatsAllowedIP'server/proxy参数中列出的地址才会接受统计信息请求.
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 10 6/06及更早版本的Solaris系统上,回环接口不支持byteserrors值,因为内核不存储和/或报告字节、错误和利用率统计信息 但如果您通过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任何值,需注意以下事项: