- 1 Zabbix agent
- 概览
- 支持的平台
- 监控项键值详情
- kernel.maxfiles
- kernel.maxproc
- kernel.openfiles
- log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
- log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
- logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
- logrt.count[file regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
- modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]
- net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
- net.dns.perf[<ip>,name,<type>,<timeout>,<count>,<protocol>]
- net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]
- net.if.collisions[if]
- net.if.discovery
- net.if.in[if,<mode>]
- net.if.out[if,<mode>]
- net.if.total[if,<mode>]
- net.tcp.listen[port]
- net.tcp.port[<ip>,port]
- net.tcp.service[service,<ip>,<port>]
- net.tcp.service.perf[service,<ip>,<port>]
- net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
- net.udp.listen[port]
- net.udp.service[service,<ip>,<port>]
- net.udp.service.perf[service,<ip>,<port>]
- net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
- proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
- proc.get[<name>,<user>,<cmdline>,<mode>]
- proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
- proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
- sensor[device,sensor,<mode>]
- system.boottime
- system.cpu.discovery
- system.cpu.intr
- system.cpu.load[<cpu>,<mode>]
- system.cpu.num[<type>]
- system.cpu.switches
- system.cpu.util[<cpu>,<type>,<mode>,<logical or physical>]
- system.hostname[<type>,<transform>]
- system.hw.chassis[<info>]
- system.hw.cpu[<cpu>,<info>]
- system.hw.devices[<type>]
- system.hw.macaddr[<interface>,<format>]
- system.localtime[<type>]
- system.run[command,<mode>]
- system.stat[resource,<type>]
- system.sw.arch
- system.sw.os[<info>]
- system.sw.os.get
- system.sw.packages[<regexp>,<manager>,<format>]
- system.sw.packages.get[<regexp>,<manager>]
- system.swap.in[<device>,<type>]
- system.swap.out[<device>,<type>]
- system.swap.size[<device>,<type>]
- system.uname
- system.uptime
- system.users.num
- vfs.dev.discovery
- vfs.dev.read[<device>,<type>,<mode>]
- vfs.dev.read[<device>,<type>,<mode>]
- vfs.dev.write[<device>,<type>,<mode>]
- 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>]
- 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>]
- vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]
- vfs.file.cksum[file,<mode>]
- vfs.file.contents[file,<encoding>]
- vfs.file.exists[file,<types incl>,<types excl>]
- vfs.file.get[file]
- vfs.file.md5sum[file]
- vfs.file.owner[file,<ownertype>,<resulttype>]
- vfs.file.permissions[file]
- vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
- vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>]
- vfs.file.size[file,<mode>]
- vfs.file.time[file,<mode>]
- vfs.fs.discovery
- vfs.fs.get
- vfs.fs.inode[fs,<mode>]
- vfs.fs.inode[fs,<mode>]
- vm.memory.size[<mode>]
- web.page.get[host,<path>,<port>]
- web.page.perf[host,<path>,<port>]
- web.page.regexp[host,<path>,<port>,regexp,<length>,<output>]
- agent.hostmetadata
- agent.hostname
- agent.ping
- agent.variant
- agent.version
- zabbix.stats[<ip>,<port>]
- zabbix.stats[<ip>,<port>,queue,<from>,<to>]
- 支持的监控项键值
- 与命令行工具一起使用
- 编码设置
- 监控项故障排除
1 Zabbix agent
概览
本节提供与使用 Zabbix agent 进行数据采集的监控项键值相关的详细信息。
Zabbix agent 支持被动和主动 agent 检查。在配置监控项时,您可以选择所需的类型:
- Zabbix agent - 用于被动检查
- Zabbix agent (active) - 用于主动检查
请注意,所有在 Windows 上由 Zabbix agent 支持的键值也同样被新一代的 Zabbix agent 2 支持。查看additional item keys,这些仅适用于 agent 2。
这些信息帮助您选择适合您需求的agent类型,并了解监控项键值在不同agent配置中的应用和支持情况。
支持的平台
除非在监控项详细信息中另有说明,agent 程序项(及所有参数)支持以下平台:
- Linux
- FreeBSD
- Solaris
- HP-UX
- AIX
- Tru64
- MacOS X
- OpenBSD
- NetBSD
许多agent 程序项也支持 Windows。有关详细信息,请参阅Windows agent程序项页面。
监控项键值详情
没有尖括号的参数是必填的。带有尖括号 < > 的参数是可选的。
kernel.maxfiles
操作系统支持的最大打开文件数。
返回值:整数。
支持的平台:Linux, FreeBSD, MacOS X, OpenBSD, NetBSD.
kernel.maxproc
操作系统支持的最大进程数。
返回值:整数。
支持的平台:Linux 2.6及更高版本,FreeBSD,Solaris,MacOS X,OpenBSD,NetBSD。
kernel.openfiles
当前打开文件描述符的数量。
返回值:整数。
支持的平台:Linux(该项可能在其他类UNIX平台上也可以工作)。
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
监控日志文件。
返回值:日志。
参见支持的平台。
参数:
file - 日志文件的完整路径和名称;
regexp - 描述所需模式的正则表达式;
encoding - 代码页标识符;
maxlines - agent将每秒发送到Zabbix server或proxy的最大新行数。此参数会覆盖zabbix_agentd.conf中的’MaxLinesPerSecond’值;
mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
output - 可选的输出格式化模板。\0转义序列将被匹配文本的匹配部分替换(从匹配开始的第一个字符到匹配结束的字符)。\N(其中N=1…9)转义序列将被第N个匹配组替换(如果N超过了捕获组的数量,则替换为空字符串);
maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
options - 附加选项:
mtime-noreread - 非唯一记录,仅在文件大小更改时重新读取(忽略修改时间更改)。(自5.0.2版起,此参数已弃用,因为现在忽略了修改时间。)persistent dir(仅在UNIX系统上的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files。
备注:
- 该项必须配置为主动检查;
- 如果文件丢失或权限不允许访问,则该项将变为不支持状态;
- 如果
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'到服务器。因为发送的是数字值,因此此项的"信息类型"可以设置为"Numeric (unsigned)",并且该值可以用于图形、触发器等。
使用output
参数在发送到服务器之前重写日志记录的示例:
log[/app1/app.log,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] #此项将匹配日志记录"2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors"并将修改后的记录"2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08"发送到服务器。
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
监控日志文件中匹配行的计数。
返回值:整数。
参见支持的平台。
参数:
file - 日志文件的完整路径和名称;
regexp - 描述所需模式的正则表达式;
encoding - 代码页标识符;
maxproclines - agent将分析的每秒新行数的最大值(不能超过10000)。默认值是zabbix_agentd.conf中10倍的’MaxLinesPerSecond’值;
mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
options - 附加选项:
mtime-noreread - 非唯一记录,仅在文件大小更改时重新读取(忽略修改时间更改)。(自5.0.2版起,此参数已弃用,因为现在忽略了修改时间。)persistent dir(仅在UNIX系统上的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files。
备注:
- 此项必须配置为主动检查;
- 匹配的行数是自agent上次检查日志以来的新行数,因此取决于项的更新间隔;
- 如果文件丢失或权限不允许访问,则该项将变为不支持状态。
logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
监控已轮换的日志文件。
返回值:Log。
参见支持的平台。
参数:
file regexp - 描述由正则表达式描述的文件的绝对路径和文件名。注意:只有文件名是正则表达式;
regexp - 描述所需内容模式的正则表达式;
encoding - 代码页标识符;
maxlines - agent每秒发送到Zabbix server或proxy的最大新行数。此参数覆盖zabbix_agentd.conf中’MaxLinesPerSecond’的值;
mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
output - 可选的输出格式化模板。\0转义序列被替换为匹配文本的部分(从匹配开始的第一个字符到匹配结束的字符),而\N(其中N=1…9)转义序列被替换为第N个匹配组(如果N超出捕获组数,则替换为空字符串)。
maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
options - 日志文件轮换类型和其他选项。可能的值:
rotate(默认),
copytruncate - 请注意,copytruncate不能与maxdelay一起使用。在这种情况下,maxdelay必须为0或未指定;请参阅copytruncate注释,
mtime-reread - 非唯一记录,如果修改时间或大小更改,则重新读取(默认),
mtime-noreread - 非唯一记录,仅在大小更改时重新读取(忽略修改时间更改)。persistent dir(仅在UNIX系统的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files。
备注:
- 此项必须配置为主动检查;
- 日志轮换基于文件的最后修改时间;
- 请注意,logrt设计用于与一个当前活动日志文件一起工作,其中有几个其他匹配的非活动文件进行轮换。例如,如果一个目录中有许多活动日志文件,则应为每个文件创建单独的logrt项。否则,如果一个logrt项捕获了太多文件,可能会导致内存耗尽和监控崩溃。
- 如果
output
为空 - 返回包含匹配文本的整行。请注意,除了“结果为TRUE”以外的所有全局正则表达式类型始终返回整个匹配行,而output
参数将被忽略。 - 使用
output
参数进行内容提取是在agent上进行的。
示例:
logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] #此项将匹配类似于“logfile1”的文件(不会匹配“.logfile1”)
logrt["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #此项将从文件中收集数据,如“logfile_abc_1”或“logfile__001”
使用output
参数从日志记录中提取数字的示例:
logrt[/app1/^test.*log$,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #此项将匹配日志记录“2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors”并仅向服务器发送“6080”。因为发送的是数值,因此此项的“信息类型”可以设置为“数值(无符号)”,并且该值可以用于图形、触发器等。
使用output
参数在发送到服务器之前重写日志记录的示例:
logrt[/app1/^test.*log$,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] #此项将匹配日志记录“2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors”并发送修改后的记录“2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08”到服务器。
logrt.count[file regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
监控已轮换的日志文件中匹配行的计数。
返回值:Integer。
参见支持的平台。
参数:
file regexp - 文件的绝对路径和描述文件名模式的正则表达式;
regexp - 描述所需模式的正则表达式;
encoding - 代码页标识符;
maxproclines - agent每秒分析的最大新行数(不能超过10000)。默认值为zabbix_agentd.conf中’MaxLinesPerSecond’的10倍;
mode - 可能的值:all(默认)或skip - 跳过旧数据的处理(仅影响新创建的项);
maxdelay - 最大延迟时间(以秒为单位)。类型:浮点数。值:0 - (默认)从不忽略日志文件行;> 0.0 - 忽略旧行,以便在“maxdelay”秒内分析最近的行。在使用之前,请阅读maxdelay注释!
options - 日志文件轮换类型和其他选项。可能的值:
rotate(默认),
copytruncate - 请注意,copytruncate不能与maxdelay一起使用。在这种情况下,maxdelay必须为0或未指定;请参阅copytruncate注释,
mtime-reread - 非唯一记录,如果修改时间或大小更改,则重新读取(默认),
mtime-noreread - 非唯一记录,仅在大小更改时重新读取(忽略修改时间更改)。persistent dir(仅在UNIX系统的zabbix_agentd中可用;在Zabbix agent 2中不支持) - 持久文件存储的绝对路径名。有关日志项持久文件的附加说明,请参阅persistent files。
备注:
- 此项必须配置为主动检查;
- 匹配的行在agent上次检查日志后的新行中计数,因此取决于项的更新间隔;
- 日志轮换基于文件的最后修改时间。
modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]
读取Modbus数据。
返回值:JSON对象。
支持的平台:Linux。
参数:
endpoint - 定义为
protocol://connection_string
的终端点;slave id - 从机ID;
function - Modbus功能码;
address - 第一个寄存器、线圈或输入的地址;
count - 要读取的记录数;
type - 数据类型;
endianness - 字节序配置;
offset - 从 ‘address’ 开始的寄存器数量,其结果将被丢弃。
查看有关参数的详细描述。
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
检查DNS服务是否运行。
返回值:0 - DNS不可用(服务器未响应或DNS解析失败);1 - DNS可用。
查看支持的平台。
参数:
- ip(在使用Zabbix agent 2时Windows系统忽略) - DNS服务器的IP地址(留空以使用默认DNS服务器);
- name - 要查询的DNS名称;
- type - 要查询的记录类型(默认为SOA);
- timeout(在使用Zabbix agent 2时Windows系统忽略) - 请求的超时时间,单位为秒(默认为1秒);
- count(在使用Zabbix agent 2时Windows系统忽略) - 请求的尝试次数(默认为2次);
- protocol - 执行DNS查询时使用的协议:udp(默认)或 tcp。
注释:
type
的可能值包括:ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(在Windows上不支持,Zabbix agent 2在所有操作系统上也不支持), HINFO, MINFO, TXT, SRV- 对于反向DNS查找(当
type
设置为 PTR 时),您可以提供反向和非反向格式的DNS名称(请参见下面的示例)。请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。 - 不支持国际化域名,请使用IDNA编码的名称。
示例:
net.dns[198.51.100.1,example.com,MX,2,1]
net.dns[,198.51.100.1,PTR]
net.dns[,1.100.51.198.in-addr.arpa,PTR]
net.dns[,2a00:1450:400f:800::200e,PTR]
net.dns[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.perf[<ip>,name,<type>,<timeout>,<count>,<protocol>]
检查DNS服务的性能。
返回值:浮点数(0 - 服务不可用;秒数 - 等待服务响应的秒数)。
查看支持的平台。
参数:
- ip(在使用Zabbix agent 2时Windows系统忽略) - DNS服务器的IP地址(留空以使用默认DNS服务器);
- name - 要查询的DNS名称;
- type - 要查询的记录类型(默认为SOA);
- timeout(在使用Zabbix agent 2时Windows系统忽略) - 请求的超时时间,单位为秒(默认为1秒);
- count(在使用Zabbix agent 2时Windows系统忽略) - 请求的尝试次数(默认为2次);
- protocol - 执行DNS查询时使用的协议:udp(默认)或 tcp。
注释:
type
的可能值包括:ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(在Windows上不支持,Zabbix agent 2在所有操作系统上也不支持), HINFO, MINFO, TXT, SRV- 对于反向DNS查找(当
type
设置为 PTR 时),您可以提供反向和非反向格式的DNS名称(请参见下面的示例)。请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。 - 不支持国际化域名,请使用IDNA编码的名称。
示例:
net.dns.perf[198.51.100.1,example.com,MX,2,1]
net.dns.perf[,198.51.100.1,PTR]
net.dns.perf[,1.100.51.198.in-addr.arpa,PTR]
net.dns.perf[,2a00:1450:400f:800::200e,PTR]
net.dns.perf[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]
执行DNS查询。
返回值:一个包含所需信息类型的字符字符串。
查看支持的平台。
参数:
- ip(在使用Zabbix agent 2时Windows系统忽略) - DNS服务器的IP地址(留空以使用默认DNS服务器);
- name - 要查询的DNS名称;
- type - 要查询的记录类型(默认为SOA);
- timeout(在使用Zabbix agent 2时Windows系统忽略) - 请求的超时时间,单位为秒(默认为1秒);
- count(在使用Zabbix agent 2时Windows系统忽略) - 请求的尝试次数(默认为2次);
- protocol - 执行DNS查询时使用的协议:udp(默认)或 tcp。
注释:
type
的可能值包括:ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS(在Windows上不支持,Zabbix agent 2在所有操作系统上也不支持), HINFO, MINFO, TXT, SRV- 对于反向DNS查找(当
type
设置为 PTR 时),您可以提供反向和非反向格式的DNS名称(请参见下面的示例)。请注意,当请求PTR记录时,DNS名称实际上是一个IP地址。 - 不支持国际化域名,请使用IDNA编码的名称。
示例:
net.dns.record[198.51.100.1,example.com,MX,2,1]
net.dns.record[,198.51.100.1,PTR]
net.dns.record[,1.100.51.198.in-addr.arpa,PTR]
net.dns.record[,2a00:1450:400f:800::200e,PTR]
net.dns.record[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.if.collisions[if]
获取网络接口的窗口外碰撞数。
返回值:整数。
支持的平台:Linux、FreeBSD、Solaris、AIX、MacOS X、OpenBSD、NetBSD。在NetBSD上需要root权限。
参数:
- if - 网络接口名称
net.if.discovery
网络接口列表。用于低级发现。
返回值:JSON 对象。
支持的平台:Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD。
net.if.in[if,<mode>]
网络接口上的入站流量统计。
返回值:整数。
支持的平台:Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD。在NetBSD上需要root权限。
参数:
- if - 网络接口名称(Unix),网络接口完整描述或IPv4地址;如果在括号中,则为网络接口GUID(Windows);
- mode - 可能的取值:
bytes - 字节数(默认)
packets - 包数
errors - 错误数
dropped - 丢弃的包数
overruns (fifo) - FIFO缓冲区错误数
frame - 数据帧错误数
compressed - 设备驱动程序接收到的压缩包数
multicast - 设备驱动程序接收到的多播帧数
注释:
- 您可以在“每秒变化”预处理步骤中使用此键以获取每秒字节数统计信息;
- dropped 模式仅在Linux, FreeBSD, HP-UX, MacOS X, OpenBSD, NetBSD上支持;
- overruns, frame, compressed, multicast 模式仅在Linux上支持;
- 在HP-UX上,此项不提供关于回环接口(例如 lo0)的详细信息。
示例:
net.if.in[eth0]
net.if.in[eth0,errors]
net.if.out[if,<mode>]
网络接口上的传出流量统计。
返回值:整数。
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。在NetBSD上需要root权限。
参数:
- if - 网络接口名称(Unix);网络接口完整描述或IPv4地址;或者,如果在大括号中,则为网络接口GUID(Windows);
- mode - 可能的值:
bytes - 字节数(默认)
packets - 包数量
errors - 错误数量
dropped - 丢弃的包数量
overruns (fifo) - FIFO缓冲区错误数量
collisions (colls) - 接口上检测到的冲突数量
carrier - 设备驱动程序检测到的载波丢失数量
compressed - 设备驱动程序传输的压缩包数量
备注:
- 您可以在此键中使用每秒更改预处理步骤,以获取每秒字节数统计信息;
- dropped 模式仅在Linux、HP-UX上受支持;
- overruns、collision、carrier、compressed 模式仅在Linux上受支持;
- 在HP-UX上,此项不提供有关环回接口(例如 lo0)的详细信息。
示例:
net.if.out[eth0]
net.if.out[eth0,errors]
net.if.total[if,<mode>]
网络接口上传入和传出流量统计的总和。
返回值:整数。
支持的平台:Linux、FreeBSD、Solaris5、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。在NetBSD上需要root权限。
参数:
- if - 网络接口名称(Unix);网络接口完整描述或IPv4地址;或者,如果在大括号中,则为网络接口GUID(Windows);
- mode - 可能的值:
bytes - 字节数(默认)
packets - 包数量
errors - 错误数量
dropped - 丢弃的包数量
overruns (fifo) - FIFO缓冲区错误数量
collisions (colls) - 接口上检测到的冲突数量
compressed - 设备驱动程序传输或接收的压缩包数量
备注:
- 您可以在此键中使用每秒更改预处理步骤,以获取每秒字节数统计信息;
- dropped 模式仅在Linux、HP-UX上受支持。仅当您的平台上的
net.if.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状态。
支持的平台:Linux、FreeBSD、Solaris、MacOS X。
参数:
- port - TCP端口号
在Linux内核2.6.14及以上版本中,关于正在侦听的TCP套接字的信息是从内核的NETLINK接口获取的(如果可能的话)。否则,将从/proc/net/tcp和/proc/net/tcp6文件中检索信息。
示例:
net.tcp.listen[80]
net.tcp.port[<ip>,port]
检查是否可以连接到指定端口的TCP连接。
返回值:0 - 无法连接;1 - 可以连接。
参见支持的平台。
参数:
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号。
备注:
- 对于简单的TCP性能测试,请使用
net.tcp.service.perf[tcp,<ip>,<port>]
; - 这些检查可能会导致系统守护程序日志文件中出现其他消息(通常会记录SMTP和SSH会话)。
示例:
net.tcp.port[,80] #此项可用于测试运行在端口80上的Web服务器的可用性
net.tcp.service[service,<ip>,<port>]
检查服务是否正在运行并接受TCP连接。
返回值:0 - 服务已停止;1 - 服务正在运行。
参见支持的平台。
参数:
- service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https 或 telnet(参见详细信息);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号)。
备注:
- 这些检查可能会导致系统守护程序日志文件中出现其他消息(通常会记录SMTP和SSH会话);
- 目前不支持加密协议的检查(如端口993上的IMAP或端口995上的POP)。作为解决方法,请使用
net.tcp.port[]
进行此类检查。 - Windows上仅由Zabbix agent2支持LDAP和HTTPS的检查;
- telnet检查会寻找登录提示符(’:’ 结尾)。
示例:
net.tcp.service[ftp,,45] #此项可用于测试TCP端口45上的FTP服务器的可用性
net.tcp.service.perf[service,<ip>,<port>]
检查TCP服务的性能。
返回值:浮点数(0 - 服务已停止;秒数 - 等待服务响应的秒数)。
参见支持的平台。
参数:
- service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https 或 telnet(参见详细信息);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号)。
备注:
- 目前不支持加密协议的检查(如端口993上的IMAP或端口995上的POP)。作为解决方法,请使用
net.tcp.service.perf[tcp,<ip>,<port>]
进行此类检查。 - telnet检查会寻找登录提示符(’:’ 结尾)。
示例:
net.tcp.service.perf[ssh] #此项可用于测试SSH服务器的初始响应速度
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回与参数匹配的TCP套接字数量。
返回值:整数。
支持的平台:Linux。
参数:
- laddr - 本地IPv4/6地址或CIDR子网;
- lport - 本地端口号或服务名称;
- raddr - 远程IPv4/6地址或CIDR子网;
- rport - 远程端口号或服务名称;
- state - 连接状态(established、syn_sent、syn_recv、fin_wait1、fin_wait2、time_wait、close、close_wait、last_ack、listen、closing)。
示例:
net.tcp.socket.count[,80,,,established] #已建立连接到本地TCP端口80的数量
net.udp.listen[port]
检查此UDP端口是否处于LISTEN状态。
返回值:0 - 不处于LISTEN状态;1 - 处于LISTEN状态。
支持的平台:Linux、FreeBSD、Solaris、MacOS X。
参数:
- port - UDP端口号
示例:
net.udp.listen[68]
net.udp.service[service,<ip>,<port>]
检查服务是否正在运行并响应UDP请求。
返回值:0 - 服务已停止;1 - 服务正在运行。
参见支持的平台。
参数:
- service - ntp(参见详细信息);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号)。
示例:
net.udp.service[ntp,,45] #此项可用于测试UDP端口45上的NTP服务的可用性
net.udp.service.perf[service,<ip>,<port>]
检查UDP服务的性能。
返回值:浮点数(0 - 服务已停止;秒数 - 等待服务响应的秒数)。
参见支持的平台。
参数:
- service - ntp(参见详细信息);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号)。
示例:
net.udp.service.perf[ntp] #此项可用于测试从NTP服务获取响应的时间
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回与参数匹配的UDP套接字数量。
返回值:整数。
支持的平台:Linux。
参数:
- laddr - 本地IPv4/6地址或CIDR子网;
- lport - 本地端口号或服务名称;
- raddr - 远程IPv4/6地址或CIDR子网;
- rport - 远程端口号或服务名称;
- state - 连接状态(established、unconn)。
示例:
net.udp.socket.count[,,,,established] #返回已连接状态的UDP套接字数量
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
进程CPU利用率百分比。
返回值:浮点数。
支持的平台:Linux、Solaris6。
参数:
- name - 进程名称(默认为所有进程);
- user - 用户名称(默认为所有用户);
- type - CPU利用率类型:total(默认)、user或system;
- cmdline - 按命令行过滤(是一个正则表达式);
- mode - 数据收集模式:avg1(默认)、avg5或avg15;
- zone - 目标区域:current(默认)或all。此参数仅在Solaris上受支持。
备注:
- 返回值基于单个CPU核心的利用率百分比。例如,完全使用两个核心的进程的CPU利用率为200%。
- 进程CPU利用率数据由一个收集器收集,支持最多1024个唯一的查询(按名称、用户和命令行)。在最后24小时未访问的查询将从收集器中删除。
- 当将
zone
参数设置为current(或默认值)时,在agent 在不支持区域的Solaris上编译但在支持区域的较新Solaris上运行时,agent 将返回NOTSUPPORTED(agent 无法将结果限制为仅当前区域)。但在这种情况下,all是受支持的。
示例:
proc.cpu.util[,root] #所有在“root”用户下运行的进程的CPU利用率
proc.cpu.util[zabbix_server,zabbix] #所有在zabbix用户下运行的zabbix_server进程的CPU利用率
proc.get[<name>,<user>,<cmdline>,<mode>]
操作系统进程及其参数列表。可用于低级发现。
返回值:JSON对象。
支持的平台:Linux、FreeBSD、Windows、OpenBSD、NetBSD。
参数:
- name - 进程名称(默认为所有进程);
- user - 用户名称(默认为所有用户);
- cmdline - 按命令行过滤(是一个正则表达式)。此参数不支持Windows;在其他平台上,如果mode设置为’summary’,则不支持此参数。
- mode - 可能的值:
process(默认)、thread(不支持NetBSD)、summary。查看每种模式和操作系统返回的进程参数列表。
备注:
- 如果无法检索值,例如,由于错误(进程已经终止、权限不足、系统调用失败),将返回
-1
; - 有关使用
name
和cmdline
参数选择进程的注意事项,请参见注释(仅适用于Linux)。
示例:
proc.get[zabbix_server,zabbix,,process] #所有在zabbix用户下运行的zabbix_server进程的列表,每个PID返回一个条目
proc.get[java,,,thread] #所有Java进程的列表,每个线程返回一个条目
proc.get[,zabbix,,summary] #每种类型进程的组合数据,运行在zabbix用户下,每个进程名称返回一个条目
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
进程使用的内存字节数。
返回值:整数 - 当mode
为max、min、sum时;浮点数 - 当mode
为avg时。
支持的平台:Linux、FreeBSD、Solaris、AIX、Tru64、OpenBSD、NetBSD。
参数:
- name - 进程名称(默认为所有进程);
- user - 用户名称(默认为所有用户);
- mode - 可能的值:avg、max、min或sum(默认);
- cmdline - 按命令行过滤(是一个正则表达式);
- memtype - 进程使用的内存类型
备注:
memtype
参数仅在Linux、FreeBSD、Solaris6、AIX上受支持;当多个进程使用共享内存时,进程使用的内存总和可能会导致较大且不切实际的值。
有关使用
name
和cmdline
参数选择进程的注意事项,请参见注释(仅适用于Linux)。当从命令行调用此项并包含命令行参数时(例如使用agent 测试模式:
zabbix_agentd -t proc.mem[,,,apache2]
),将额外计算一个进程,因为agent 将计算自身。
示例:
proc.mem[,root] #所有在“root”用户下运行的进程使用的内存
proc.mem[zabbix_server,zabbix] #所有在zabbix用户下运行的zabbix_server进程使用的内存
proc.mem[,oracle,max,oracleZABBIX] #在Oracle下运行,并且其命令行中包含oracleZABBIX的最耗内存进程使用的内存
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
进程的数量。
返回值:整数。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、Tru64、OpenBSD、NetBSD。
参数:
- name - 进程名称(默认为所有进程);
- user - 用户名称(默认为所有用户);
- state - 可能的值:
all(默认)、
disk - 不可中断的睡眠、
run - 运行、
sleep - 可中断的睡眠、
trace - 停止、
zomb - 僵尸; - cmdline - 按命令行过滤(是一个正则表达式);
- zone - 目标区域:current(默认)或all。此参数仅在Solaris上受支持。
备注:
- disk和trace状态参数仅在Linux、FreeBSD、OpenBSD、NetBSD上受支持;
- 当从命令行调用此项并包含命令行参数时(例如使用agent 测试模式:
zabbix_agentd -t proc.num[,,,apache2]
),将额外计算一个进程,因为agent 将计算自身; - 当将
zone
参数设置为current(或默认值)时,在agent 在不支持区域的Solaris上编译但在支持区域的较新Solaris上运行时,agent 程序将返回NOTSUPPORTED(agent 无法将结果限制为仅当前区域)。但在这种情况下,all是受支持的。 - 有关使用
name
和cmdline
参数选择进程的注意事项,请参见注释(仅适用于Linux)。
示例:
proc.num[,mysql] #在mysql用户下运行的进程数量
proc.num[apache2,www-data] #在www-data用户下运行的apache2进程数量
proc.num[,oracle,sleep,oracleZABBIX] #在Oracle下运行且其命令行中包含oracleZABBIX的睡眠状态进程数量
sensor[device,sensor,<mode>]
硬件传感器读数。
返回值:浮点数。
支持的平台:Linux、OpenBSD。
参数:
- device - 设备名称,如果省略模式,则可以是正则表达式;
- sensor - 传感器名称,如果省略模式,则可以是正则表达式;
- mode - 可能的值:avg、max或min(如果省略此参数,则设备和传感器会被直接处理)。
备注:
- 在Linux 2.4上读取/proc/sys/dev/sensors;
- 在Linux 2.6+上读取/sys/class/hwmon。有关Linux上传感器项的更详细描述,请参见sensor。
- 在OpenBSD上读取hw.sensors MIB。
示例:
sensor[w83781d-i2c-0-2d,temp1]
sensor[cpu0,temp0] #一个CPU的温度
sensor["cpu[0-2]$",temp,avg] #前三个CPU的平均温度
system.boottime
系统启动时间。
返回值:整数(Unix时间戳)。
支持的平台:Linux、FreeBSD、Solaris、MacOS X、OpenBSD、NetBSD。
system.cpu.discovery
检测到的CPU/CPU核心列表。用于低级发现。
返回值:JSON对象。
查看支持的平台。
system.cpu.intr
设备中断数。
返回值:整数。
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。
system.cpu.load[<cpu>,<mode>]
参数:
- cpu - 可能的值:all(默认)或percpu(总负载除以在线CPU数);
- mode - 可能的值:avg1(一分钟平均值,默认)、avg5或avg15。
在Tru64上不支持percpu参数。
示例:
system.cpu.load[,avg5]
system.cpu.num[<type>]
CPU的数量。
返回值:整数。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。
参数:
- type - 可能的值:online(默认)或max
max类型参数仅在Linux、FreeBSD、Solaris、MacOS X上受支持。
示例:
system.cpu.num
system.cpu.switches
上下文切换次数。
返回值:整数。
支持的平台:Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD。
system.cpu.util[<cpu>,<type>,<mode>,<logical or physical>]
CPU利用率百分比。
返回值:浮点数。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、Tru64、OpenBSD、NetBSD。
参数:
- cpu - <CPU编号> 或 all(默认);
- type - 可能的值:user(默认)、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、Tru64、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>]
系统主机名。
返回值:字符串。
查看支持的平台。
参数:
- type - 可能的值:netbios(Windows上的默认值)、host(Linux上的默认值)、shorthost(返回第一个点之前的主机名部分,对于没有点的名称返回完整字符串)、fqdn(返回完全限定域名);
- transform - 可能的值:none(默认)或lower(转换为小写)。
该值是通过从uname()系统API输出中获取nodename
而获得的。
返回值示例:
system.hostname → linux-w7x1
system.hostname → example.com
system.hostname[shorthost] → example
system.hostname → WIN-SERV2008-I6
system.hostname[host] → Win-Serv2008-I6LonG
system.hostname[host,lower] → win-serv2008-i6long
system.hostname[fqdn,lower] → blog.zabbix.com
system.hw.chassis[<info>]
机箱信息。
返回值:字符串。
支持的平台:Linux。
参数:
- info - 可能的值:full(默认)、model、serial、type或vendor
备注:
- 此监控项键取决于SMBIOS表的可用性;
- 它将尝试从sysfs读取DMI表,如果sysfs访问失败,则尝试直接从内存读取;
- 由于值是通过从sysfs或内存读取而获得的,因此需要根权限。
示例:
system.hw.chassis[full] → Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop
system.hw.cpu[<cpu>,<info>]
CPU信息。
返回值:字符串或整数。
支持的平台:Linux。
参数:
- cpu - <CPU编号>或all(默认);
- info - 可能的值:full(默认)、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地址列表。
返回值:字符串。
支持的平台: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时。
支持的平台。
参数:
- type - 可能的值:utc - (默认)自纪元时(1970年1月1日00:00:00 UTC)起的秒数,或local - ‘yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm’格式的时间
必须仅用作被动检查。
示例:
system.localtime[local] # 创建一个使用此键的监控项,然后使用它在*时钟*仪表板小部件中显示主机时间。
system.run[command,<mode>]
在主机上运行指定的命令。
返回值:Text 命令的结果或1(mode
为nowait时,无论命令结果如何)。
支持的平台。
参数:
- command - 要执行的命令;
- mode - 可能的值:wait - 等待执行结束(默认)或 nowait - 不等待。
注:
- 此项默认处于禁用状态。了解如何启用它们;
- 项的返回值是由命令生成的标准输出和标准错误。不执行退出代码检查;
- 为了正确处理,命令的返回值必须是
text
数据类型。还允许空结果; - 返回值限制为16MB(包括被截断的尾随空格);还适用数据库限制;
- 另请参阅:命令执行。
示例:
system.run[ls -l /] # 返回根目录的详细文件列表
system.stat[resource,<type>]
系统统计信息。
返回值:整数 或 浮点数。
支持的平台:AIX。
参数:
- ent - 此分区有权接收的处理器单元数(浮点数);
- kthr,<type> - 有关内核线程状态的信息:
r - 可运行内核线程的平均数量(浮点数)
b - 放置在虚拟内存管理器等待队列中的内核线程的平均数量(浮点数) - memory,<type> - 有关虚拟和实际内存使用情况的信息:
avm - 活动虚拟页(整数)
fre - 空闲列表的大小(整数) - page,<type> - 页面错误和分页活动的信息:
fi - 每秒文件页面写入数(float)
fo - 每秒文件页面写出数(float)
pi - 从分页空间换入的页面数(float)
po - 从分页空间换出的页面数(float)
fr - 释放的页面(页面替换)(float)
sr - 页面替换算法扫描的页面数(float) - faults,<type> - 陷阱和中断率:
in - 设备中断(float)
sy - 系统调用(float)
cs - 内核线程上下文切换(float) - cpu,<type> - 处理器时间使用百分比的详细情况:
us - 用户时间(float)
sy - 系统时间(float)
id - 空闲时间(float)
wa - 空闲时间,系统期间有未完成的磁盘/NFS I/O 请求(float)
pc - 消耗的物理处理器数(float)
ec - 使用的权利容量的百分比(float)
lbusy - 指示在执行用户级别和系统级别时发生的逻辑处理器利用率百分比(float)
app - 指示共享池中可用的物理处理器数(float) - disk,<type> - 磁盘统计信息:
bps - 指示每秒传输到驱动器的数据量(读取或写入)(整数)
tps - 指示发往物理磁盘/磁带的每秒传输次数(float)
注:
- 请注意这些项中的以下限制:
system.stat[cpu,app]
- 仅支持AIX LPAR类型为“Shared”system.stat[cpu,ec]
- 仅支持AIX LPAR类型为“Shared”和“Dedicated”(“Dedicated”始终返回100(百分比))system.stat[cpu,lbusy]
- 仅支持AIX LPAR类型为“Shared”system.stat[cpu,pc]
- 仅支持AIX LPAR类型为“Shared”和“Dedicated”system.stat[ent]
- 仅支持AIX LPAR类型为“Shared”和“Dedicated”
system.sw.arch
软件架构信息。
返回值:字符串。
参见支持的平台。
信息从uname()
函数获取。
示例:
system.sw.arch → i686
system.sw.os[<info>]
操作系统信息。
返回值:字符串。
支持的平台:Linux,Windows。
参数:
- info - 可选值:full(默认),short,或name
信息获取自(请注意,并非所有文件和选项在所有发行版中都存在):
- Linux上的
/proc/version
(full); - Linux上的
/proc/version_signature
(short); - 在支持的Linux系统上从
/etc/os-release
中的PRETTY_NAME参数获取或从/etc/issue.net
中获取(name); - Windows上的
HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion
注册表键。
示例:
system.sw.os[short] → Ubuntu 2.6.35-28.50-generic 2.6.35.11
system.sw.os[full] → [s|Windows 10 Enterprise 22621.1.asd64fre.ni_release.220506-1250 Build 22621.963]
system.sw.os.get
操作系统的详细信息(版本、类型、发行版名称、次要和主要版本等)。
返回值:JSON对象。
支持的平台:Linux,Windows.
system.sw.packages[<regexp>,<manager>,<format>]
已安装软件包的列表。
返回值:Text。
支持的平台:Linux.
参数:
- regexp - all(默认)或正则表达式;
- manager - all(默认)或包管理器;
- format - full(默认)或short。
备注:
- 列出(按字母顺序)安装的软件包,其名称与给定的正则表达式匹配(all列出所有软件包);
- 支持的包管理器(执行的命令):
dpkg(dpkg —get-selections)
pkgtool(ls /var/log/packages)
rpm(rpm -qa)
pacman(pacman -Q)
portage - 如果将
format
指定为full,则软件包将按包管理器分组(每个管理器在单独的一行上以其名称开始,并用方括号括起来); - 如果将
format
指定为short,则软件包不会分组,并且将列在单行上。
示例:
system.sw.packages[mini,dpkg,short] → python-minimal, python2.6-minimal, ubuntu-minimal
system.sw.packages.get[<regexp>,<manager>]
已安装软件包的详细列表。
返回值:JSON object。
支持的平台:Linux.
参数:
- regexp - all(默认)或正则表达式;
- manager - all(默认)或包管理器(可能的值:rpm、dpkg、pkgtool、pacman或portage)。
备注:
- 返回未格式化的JSON,其中包含与给定正则表达式匹配的已安装软件包;
- 输出是一个对象数组,每个对象包含以下键:name、manager、version、size、architecture、buildtime和installtime(参见更多细节)。
system.swap.in[<device>,<type>]
交换(从设备到内存)统计信息。
返回值:Integer。
支持的平台:Linux, FreeBSD, OpenBSD.
参数:
- device - 指定用于交换的设备(仅限Linux)或all(默认);
- type - 可能的值:count(交换次数,非Linux平台上的默认值),sectors(换入的扇区)或pages(换入的页,在Linux上的默认值)。
备注:
- 这些信息的来源是:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6) - 注意,如果未指定设备,pages将无效;
- sectors类型参数仅在Linux上受支持。
示例:
system.swap.in[,pages]
system.swap.out[<device>,<type>]
交换出(从内存到设备)统计信息。
返回值:Integer。
支持的平台:Linux, FreeBSD, OpenBSD.
参数:
- device - 指定用于交换的设备(仅限Linux)或all(默认);
- type - 可能的值:count(交换次数,非Linux平台上的默认值),sectors(换出的扇区)或pages(换出的页,在Linux上的默认值)。
备注:
- 这些信息的来源是:
/proc/swaps
,/proc/partitions
,/proc/stat
(Linux 2.4)/proc/swaps
,/proc/diskstats
,/proc/vmstat
(Linux 2.6) - 注意,如果未指定设备,pages将无效;
- sectors类型参数仅在Linux上受支持。
示例:
system.swap.out[,pages]
system.swap.size[<device>,<type>]
交换空间大小(以字节或总量的百分比表示)。
返回值:Integer - 字节;Float - 百分比。
支持的平台:Linux, FreeBSD, Solaris, AIX, Tru64, OpenBSD.
参数:
- device - 指定用于交换的设备(仅限FreeBSD)或all(默认);
- type - 可能的值:free(可用交换空间,默认),pfree(可用交换空间,百分比),pused(已用交换空间,百分比),total(交换空间总量)或used(已用交换空间)。
备注:
- 注意,如果交换大小为0,则在Windows上不支持pfree、pused;
- 如果未指定设备,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。
支持的平台:Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD. Tru64上的支持情况未知。
在item配置中,使用s或uptime单位以获得可读性更强的值。
system.users.num
已登录用户数。
返回值:Integer。
参见支持的平台。
agent 使用who命令来获取该值。
vfs.dev.discovery
块设备列表及其类型。用于低级发现。
返回值:JSON对象。
支持的平台:Linux。
vfs.dev.read[<device>,<type>,<mode>]
磁盘读取统计信息。
返回值:Integer - type
为 sectors, operations, bytes; Float - type
为 sps, ops, bps.
支持的平台:Linux, FreeBSD, Solaris, AIX, OpenBSD。
参数:
- device - 磁盘设备 (默认为 all);
- type - 可能的值: sectors, operations, bytes, sps, ops, 或 bps (sps, ops, bps 分别代表每秒扇区数, 操作数, 字节数);
- mode - 可能的值: avg1 (一分钟平均, 默认), avg5, 或 avg15。此参数仅适用于
type
为 sps, ops, bps 时。
Comments:
- 如果使用三小时或更长时间间隔进行更新2,此项将始终返回’0’;
- sectors 和 sps 类型参数仅在Linux上受支持;
- ops 类型参数仅在Linux和FreeBSD上受支持;
- bps 类型参数仅在FreeBSD上受支持;
- bytes 类型参数仅在FreeBSD,Solaris,AIX,OpenBSD上受支持;
mode
参数仅在Linux,FreeBSD上受支持;- 您可以使用相对设备名称(例如,
sda
)以及可选的 /dev/ 前缀(例如,/dev/sda
); - 支持 LVM 逻辑卷;
- 不同 OS 的 ‘type’ 参数的默认值:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - 在支持的平台上,sps, ops 和 bps 限制为 1024 个设备(1023 个个体设备和一个用于 all)。
Example:
vfs.dev.read[,operations]
vfs.dev.read[<device>,<type>,<mode>]
磁盘读取统计信息。
返回值:Integer - type
为 sectors, operations, bytes; Float - type
为 sps, ops, bps。
支持的平台:Linux, FreeBSD, Solaris, AIX, OpenBSD。
参数:
- device - 磁盘设备 (默认为 all);
- type - 可能的值: sectors, operations, bytes, sps, ops, 或 bps (sps, ops, bps 分别代表每秒扇区数, 操作数, 字节每秒);
- mode - 可能的值: avg1 (一分钟平均, 默认), avg5, 或 avg15。此参数仅适用于
type
为 sps, ops, bps 时。
Comments:
- 如果更新间隔大于三小时2,此项将始终返回’0’;
- sectors 和 sps 类型参数仅在Linux上支持;
- ops 类型参数仅在Linux和FreeBSD上支持;
- bps 类型参数仅在FreeBSD上支持;
- bytes 类型参数仅在FreeBSD,Solaris,AIX,OpenBSD上支持;
mode
参数仅在Linux,FreeBSD上支持;- 您可以使用相对设备名称(例如,
sda
)以及可选的 /dev/ 前缀(例如,/dev/sda
); - 支持 LVM 逻辑卷;
- 不同 OS 的 ‘type’ 参数的默认值:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - 在支持的平台上,sps, ops 和 bps 限制为 1024 个设备(1023 个个体设备和一个用于 all)。
Example:
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);
- type - 可能的值: sectors, operations, bytes, sps, ops, 或 bps (sps, ops, bps 分别代表每秒扇区数, 操作数, 字节每秒);
- mode - 可能的值: avg1 (一分钟平均, 默认), avg5, 或 avg15。此参数仅适用于
type
为 sps, ops, bps 时。
Comments:
- 如果更新间隔大于三小时2,此项将始终返回’0’;
- sectors 和 sps 类型参数仅在Linux上支持;
- ops 类型参数仅在Linux和FreeBSD上支持;
- bps 类型参数仅在FreeBSD上支持;
- bytes 类型参数仅在FreeBSD,Solaris,AIX,OpenBSD上支持;
mode
参数仅在Linux,FreeBSD上支持;- 您可以使用相对设备名称(例如,
sda
)以及可选的 /dev/ 前缀(例如,/dev/sda
); - 支持 LVM 逻辑卷;
- 不同 OS 的 ‘type’ 参数的默认值:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - 在支持的平台上,sps, ops 和 bps 限制为 1024 个设备(1023 个个体设备和一个用于 all)。
示例:
vfs.dev.write[,operations]
vfs.dir.count[dir,<regex incl>,<regex excl>,<types incl>,<types excl>,<max depth>,<min size>,<max size>,<min age>,<max age>,<regex excl dir>]
目录条目计数。
返回值:Integer。
支持的平台。
参数:
- dir - 目录的绝对路径;
- regex incl - 描述要包含的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则包含所有 (默认值);
- regex excl - 描述要排除的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则不排除任何 (默认值);
- types incl - 要计数的目录条目类型,可能的值: file - 普通文件, dir - 子目录, sym - 符号链接, sock - socket, bdev - 块设备, cdev - 字符设备, fifo - FIFO, dev - 与 “bdev,cdev” 同义, all - 所有类型 (默认), 即 “file,dir,sym,sock,bdev,cdev,fifo”. 多种类型必须用逗号分隔并加引号。
- types excl - 不计数的目录条目类型 (参见
types incl
)。如果某种条目类型既在types incl
又在types excl
中,则不计算此类型的目录条目。 - max depth - 遍历子目录的最大深度:
-1 (默认) - 无限制,
0 - 不进入子目录。 - min size - 要计数的文件的最小大小(以字节为单位)。小于此大小的文件将不会被计数。内存后缀 可以使用。
- max size - 要计数的文件的最大大小(以字节为单位)。大于此大小的文件将不会被计数。内存后缀 可以使用。
- min age - 要计数的目录条目的最小年龄(以秒为单位)。更新时间更近的条目将不会被计数。时间后缀 可以使用。
- max age - 要计数的目录条目的最大年龄(以秒为单位)。此年龄及更早的条目将不会被计数(修改时间)。时间后缀 可以使用。
- regex excl dir - 描述要排除的目录名称模式的正则表达式。将排除目录的所有内容(与 regex_excl 不同)。
Comments:
- 环境变量,例如 %APP_HOME%, $HOME 和 %TEMP% 不受支持;
- 伪目录“.”和“..”永远不会被计数;
- 不会跟随符号链接进行目录遍历;
- 计算条目计数时,
regex incl
和regex excl
都应用于文件和目录,但在选择要遍历的子目录时会被忽略(如果regex incl
为“(?i)^.+\.zip$”,并且未设置max depth
,则将遍历所有子目录,但仅计数类型为 zip 的文件)。 - 执行时间受agent 配置 中的超时值限制(3秒)。由于大型目录遍历可能需要更长的时间,因此不会返回任何数据,监控项将变为不受支持。不会返回部分计数。
- 在按大小过滤时,只有普通文件具有有意义的大小。在 Linux 和 BSD 下,目录也具有非零大小(通常几 KB)。设备大小为零,例如 /dev/sda1 的大小不反映相应分区的大小。因此,在使用
<min_size>
和<max_size>
时,建议将<types_incl>
指定为 “file“,以避免意外。
Examples:
vfs.dir.count[/dev] #监视 /dev 中的设备数 (Linux)
vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] #监视临时目录中的文件数
vfs.dir.get[dir,<regex incl>,<regex excl>,<types incl>,<types excl>,<max depth>,<min size>,<max size>,<min age>,<max age>,<regex excl dir>]
获取目录条目列表。
返回值:JSON object。
支持的平台。
参数:
- dir - 目录的绝对路径;
- regex incl - 描述要包含的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则包含所有 (默认值);
- regex excl - 描述要排除的实体(文件、目录、符号链接)名称模式的正则表达式; 如果为空,则不排除任何 (默认值);
- types incl - 要列出的目录条目类型,可能的值: file - 普通文件, dir - 子目录, sym - 符号链接, sock - socket, bdev - 块设备, cdev - 字符设备, fifo - FIFO, dev - 与 “bdev,cdev” 同义, all - 所有类型 (默认), 即 “file,dir,sym,sock,bdev,cdev,fifo”. 多种类型必须用逗号分隔并加引号。
- types excl - 不列出的目录条目类型 (参见
types incl
)。如果某种条目类型既在types incl
又在types excl
中,则不列出此类型的目录条目。 - max depth - 遍历子目录的最大深度:
-1 (默认) - 无限制,
0 - 不进入子目录。 - min size - 要列出的文件的最小大小(以字节为单位)。小于此大小的文件将不会被列出。内存后缀 可以使用。
- max size - 要列出的文件的最大大小(以字节为单位)。大于此大小的文件将不会被列出。内存后缀 可以使用。
- min age - 要列出的目录条目的最小年龄(以秒为单位)。更新时间更近的条目将不会被列出。时间后缀 可以使用。
- max age - 要列出的目录条目的最大年龄(以秒为单位)。此年龄及更早的条目将不会被列出(修改时间)。时间后缀 可以使用。
- regex excl dir - 描述要排除的目录名称模式的正则表达式。将排除目录的所有内容(与
regex excl
不同)。
Comments:
- 环境变量,例如 %APP_HOME%, $HOME 和 %TEMP% 不受支持;
- 伪目录“.”和“..”永远不会被列出;
- 不会跟随符号链接进行目录遍历;
- 计算条目列表时,
regex incl
和regex excl
都应用于文件和目录,但在选择要遍历的子目录时会被忽略(如果regex incl
为“(?i)^.+\.zip$”,并且未设置max depth
,则将遍历所有子目录,但仅列出类型为 zip 的文件)。 - 执行时间受agent 配置 中的超时值限制。由于大型目录遍历可能需要更长的时间,因此不会返回任何数据,监控项将变为不受支持。不会返回部分列表。
- 在按大小过滤时,只有普通文件具有有意义的大小。在 Linux 和 BSD 下,目录也具有非零大小(通常几 KB)。设备大小为零,例如 /dev/sda1 的大小不反映相应分区的大小。因此,在使用
min size
和max size
时,建议将types incl
指定为 “file“,以避免意外。
示例:
vfs.dir.get[/dev] #检索 /dev 中的设备列表 (Linux)
vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #检索临时目录中的文件列表
vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]
The directory size (in bytes).
Return value: Integer.
Supported platforms: Linux. The item may work on other UNIX-like platforms.
Parameters:
- dir - the absolute path to directory;
- regex incl - a regular expression describing the name pattern of the entity (file, directory, symbolic link) to include; include all if empty (default value);
- regex excl - a regular expression describing the name pattern of the entity (file, directory, symbolic link) to exclude; don’t exclude any if empty (default value);
- mode - possible values: apparent (default) - gets apparent file sizes rather than disk usage (acts as
du -sb dir
), disk - gets disk usage (acts asdu -s -B1 dir
). Unlike thedu
command, the vfs.dir.size item takes hidden files in account when calculating the directory size (acts asdu -sb .[^.]* *
within dir). - max depth - the maximum depth of subdirectories to traverse: -1 (default) - unlimited, 0 - no descending into subdirectories.
- regex excl dir - a regular expression describing the name pattern of the directory to exclude. All content of the directory will be excluded (in contrast to
regex excl
)
Comments:
- Only directories with at least the read permission for zabbix user are calculated. For directories with read permission only, the size of the directory itself is calculated. Directories with read & execute permissions are calculated including contents.
- With large directories or slow drives this item may time out due to the Timeout setting in agent and server/proxy configuration files. Increase the timeout values as necessary.
- The file size limit depends on large file support.
示例:
vfs.dir.size[/tmp,log] #calculates the size of all files in /tmp containing 'log' in their names
vfs.dir.size[/tmp,log,^.+\.old$] #calculates the size of all files in /tmp containing 'log' in their names, excluding files with names ending with '.old'
vfs.file.cksum[file,<mode>]
文件校验和,使用 UNIX cksum 算法计算。
返回值:Integer - 当 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 - 编码的代码页标识符。
注释:
- 返回值限制为16MB(包括被截断的尾随空白字符);同样适用数据库限制;
- 如果文件为空或仅包含 LF/CR 字符,则返回空字符串;
- 字节顺序标记(BOM)不包含在输出中。
示例:
vfs.file.contents[/etc/passwd]
vfs.file.exists[file,<types incl>,<types excl>]
检查文件是否存在。
返回值:0 - 未找到;1 - 存在指定类型的文件。
请参阅支持的平台。
参数:
- file - 文件的完整路径;
- types incl - 要包含的文件类型列表,可能的值:file(常规文件,默认(如果未设置 types_excl))、dir(目录)、sym(符号链接)、sock(套接字)、bdev(块设备)、cdev(字符设备)、fifo(FIFO)、dev(与 “bdev,cdev” 同义)、all(所有提到的类型,默认(如果设置了 types_excl))。
- types excl - 要排除的文件类型列表,参见 types_incl 中可能的值(默认情况下不排除任何类型)
注释:
- 多种类型必须用逗号分隔,并将整个集合括在引号中“”;
- 如果同一类型同时出现在 <types_incl> 和 <types_excl> 中,则排除该类型的文件;
- 文件大小限制取决于大文件支持。
示例:
vfs.file.exists[/tmp/application.pid]
vfs.file.exists[/tmp/application.pid,"file,dir,sym"]
vfs.file.exists[/tmp/application_dir,dir]
vfs.file.get[file]
返回有关文件的信息。
返回值:JSON 对象。
请参阅支持的平台。
参数:
- file - 文件的完整路径
注释:
- UNIX-like 系统上支持的文件类型:常规文件、目录、符号链接、套接字、块设备、字符设备、FIFO。
- 文件大小限制取决于大文件支持。
示例:
vfs.file.get[/etc/passwd] #返回有关 /etc/passwd 文件的信息(类型、用户、权限、SID、uid 等)
vfs.file.md5sum[file]
文件的 MD5 校验和。
返回值:字符串(文件的 MD5 散列值)。
请参阅支持的平台。
参数:
- file - 文件的完整路径
文件大小限制取决于大文件支持。
示例:
vfs.file.md5sum[/usr/local/etc/zabbix_agentd.conf]
返回值示例:
b5052decb577e0fffd622d6ddc017e82
vfs.file.owner[file,<ownertype>,<resulttype>]
获取文件的所有者。
返回值:String。
请参阅支持的平台。
参数:
- file - 文件的完整路径;
- ownertype - user(默认)或 group(仅适用于 Unix);
- resulttype - name(默认)或 id;对于 id - 在 Unix 上返回 uid/gid,在 Windows 上返回 SID。
文件大小限制取决于大文件支持。
示例:
vfs.file.owner[/tmp/zabbix_server.log] #返回 /tmp/zabbix_server.log 的文件所有者
vfs.file.owner[/tmp/zabbix_server.log,,id] #返回 /tmp/zabbix_server.log 的文件所有者 ID
vfs.file.permissions[file]
返回包含 UNIX 权限的八进制数字的四位字符串。
返回值:String。
支持的平台:Linux。此项可能在其他类 UNIX 平台上工作。
参数:
- file - 文件的完整路径
文件大小限制取决于大文件支持。
示例:
vfs.file.permissions[/etc/passwd] #返回 /etc/passwd 的权限,例如 '0644'
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
在文件中检索字符串7。
返回值:包含匹配字符串的行,或按可选的 output
参数指定的内容。
请参阅支持的平台。
参数:
- file - 文件的完整路径;
- regexp - 描述所需模式的正则表达式;
- encoding - 编码的代码页标识符;
- start line - 要搜索的第一行的行号(默认为文件的第一行);
- end line - 要搜索的最后一行的行号(默认为文件的最后一行);
- output - 可选的输出格式化模板。\0 转义序列将被匹配文本的匹配部分替换(从匹配开始的第一个字符到匹配结束的字符), 而 \N(其中 N=1…9)转义序列将被替换为第 N 个匹配组(如果 N 超过捕获组的数量,则替换为空字符串)。
注释:
- 文件大小限制取决于大文件支持。
- 仅返回第一匹配行;
- 如果没有行与表达式匹配,则返回空字符串;
- 字节顺序标记(BOM)不包含在输出中;
- 使用
output
参数进行内容提取是在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 - 要搜索的最后一行的行号(默认为文件的最后一行)。
注释:
- 文件大小限制取决于大文件支持。
- 忽略字节顺序标记(BOM)。
示例:
vfs.file.regmatch[/var/log/app.log,error]
vfs.file.size[file,<mode>]
文件大小(以字节为单位)。
返回值:Integer。
请参阅支持的平台。
参数:
- file - 文件的完整路径;
- mode - 可能的值:bytes(默认)或 lines(空行也会被计算在内)。
注释:
- 文件必须对用户 zabbix 有读取权限;
- 文件大小限制取决于大文件支持。
示例:
vfs.file.size[/var/log/syslog]
vfs.file.time[file,<mode>]
文件时间信息。
返回值:Integer(Unix 时间戳)。
请参阅支持的平台。
参数:
- file - 文件的完整路径;
- mode - 可能的值:
modify(默认)- 修改文件内容的最后时间,
access - 读取文件的最后时间,
change - 更改文件属性的最后时间
文件大小限制取决于大文件支持。
示例:
vfs.file.time[/etc/passwd,modify]
vfs.fs.discovery
挂载的文件系统列表,包含它们的类型和挂载选项。用于低级发现。
返回值:JSON 对象。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。
vfs.fs.get
挂载的文件系统列表,包含它们的类型、可用磁盘空间、inode 统计信息和挂载选项。可用于低级发现。
返回值:JSON 对象。
支持的平台:Linux、FreeBSD、Solaris、HP-UX、AIX、MacOS X、OpenBSD、NetBSD。
注释:
- inode 计数等于零的文件系统(例如具有动态 inode 的文件系统(例如 btrfs))也会被报告;
- 另请参阅:挂载的文件系统的发现。
vfs.fs.inode[fs,<mode>]
inode 的数量或百分比。
返回值:Integer - 表示数量;Float - 表示百分比。
请参阅支持的平台。
参数:
- fs - 文件系统;
- mode - 可能的值:total(总数,默认)、free(空闲)、used(已使用)、pfree(空闲百分比)或 pused(已使用百分比)。
如果 inode 计数等于零,这可能是具有动态 inode 的文件系统(例如 btrfs)的情况,则 pfree/pused 值将分别报告为 “100” 和 “0”。
示例:
vfs.fs.inode[/,pfree]
vfs.fs.inode[fs,<mode>]
inode 的数量或百分比。
返回值:Integer - 表示数量;Float - 表示百分比。
请参阅支持的平台。
参数:
- fs - 文件系统;
- mode - 可能的值:total(总数,默认)、free(空闲)、used(已使用)、pfree(空闲百分比)或 pused(已使用百分比)。
如果 inode 计数等于零,这可能是具有动态 inode 的文件系统(例如 btrfs)的情况,则 pfree/pused 值将分别报告为 “100” 和 “0”。
示例:
vfs.fs.inode[/,pfree]
vm.memory.size[<mode>]
内存大小(以字节为单位或作为总量的百分比)。
返回值:Integer - 表示字节;Float - 表示百分比。
请参阅支持的平台。
参数:
- mode - 可能的值:total(总数,默认)、active(活跃)、anon(匿名)、buffers(缓冲)、cached(缓存)、exec(可执行)、file(文件)、free(空闲)、inactive(不活跃)、pinned(固定)、shared(共享)、slab、wired(已绑定)、used(已使用)、pused(已使用的百分比)、available(可用)、pavailable(可用的百分比)。
注释:
- 此项接受三类参数:
1)total - 总内存量
2)特定于平台的内存类型:active、anon、buffers、cached、exec、file、free、inactive、pinned、shared、slab、wired
3)关于已使用和可用内存量的用户级估计: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 上受支持;
- 也可参阅此项的附加细节。
示例:
vm.memory.size[pavailable]
web.page.get[host,<path>,<port>]
获取网页内容。
返回值:网页源代码文本(包括头部)。
请参阅支持的平台。
参数:
- host - 主机名或 URL(形式为
scheme://host:port/path
,其中只有 host 是必需的)。允许的 URL 方案:http、https4。如果缺少方案,则将其视为 http。如果指定了 URL,则path
和port
必须为空。仅在具有 cURL 支持时,才可以在连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[[email protected]](https://www.zabbix.com/cdn-cgi/l/email-protection)
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。
请参阅支持的平台。
参数:
- host - 主机名或 URL(形式为
scheme://host:port/path
,其中只有 host 是必需的)。允许的 URL 方案:http、https4。如果缺少方案,则将其视为 http。如果指定了 URL,则path
和port
必须为空。仅在具有 cURL 支持时,才可以在连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[[email protected]](https://www.zabbix.com/cdn-cgi/l/email-protection)
4。主机名支持 Punycode。 - path - HTML 文档的路径(默认为 /);
- port - 端口号(默认为 HTTP 的 80 端口)。
注释:
- 如果
host
中指定的资源不存在或不可用,则此项将变为不受支持; host
可以是主机名、域名、IPv4 或 IPv6 地址。但是,对于 IPv6 地址,Zabbix agent 必须启用 IPv6 支持编译。
示例:
web.page.perf[www.example.com,index.php,80]
web.page.perf[https://www.example.com]
web.page.regexp[host,<path>,<port>,regexp,<length>,<output>]
在网页上查找字符串。
返回值:匹配的字符串,或根据可选的 output
参数指定的内容。
请参阅支持的平台。
参数:
- host - 主机名或 URL(形式为
scheme://host:port/path
,其中只有 host 是必需的)。允许的 URL 方案:http、https4。如果缺少方案,则将其视为 http。如果指定了 URL,则path
和port
必须为空。仅在具有 cURL 支持时,才可以在连接到需要身份验证的服务器时指定用户名/密码,例如:http://user:[[email protected]](https://www.zabbix.com/cdn-cgi/l/email-protection)
4。主机名支持 Punycode。 - path - HTML 文档的路径(默认为 /);
- port - 端口号(默认为 HTTP 的 80 端口);
- regexp - 描述所需模式的正则表达式;
- length - 要返回的最大字符数;
- output - 可选的输出格式化模板。\0 转义序列将被匹配文本的匹配部分替换(从匹配开始的第一个字符到匹配结束的字符),而 \N(其中 N=1…9) 转义序列将被替换为第 N 个匹配组(如果 N 超过了捕获组的数量,则为空字符串)。
注释:
- 如果
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。
请参阅支持的平台。
返回 HostMetadata 或 HostMetadataItem 参数的值,如果没有定义则返回空字符串。
agent.hostname
agent 主机名。
返回值:String。
请参阅支持的平台。
返回值:
- 作为被动检查 - 在agent 配置文件的 Hostname 参数中列出的第一个主机的名称;
- 作为主动检查 - 当前主机名的名称。
agent.ping
agent 可用性检查。
返回值:无 - 不可用;1 - 可用。
请参阅支持的平台。
使用 nodata() 触发器函数检查主机的不可用性。
agent.variant
Zabbix agent的变体(Zabbix agent或 Zabbix agent 2)。
返回值:1 - Zabbix agent;2 - Zabbix agent 2。
请参阅支持的平台。
agent.version
Zabbix agent的版本。
返回值:String。
请参阅支持的平台。
返回值示例:
6.0.3
zabbix.stats[<ip>,<port>]
远程返回一组 Zabbix server或proxy 的内部指标。
返回值:JSON 对象。
请参阅支持的平台。
参数:
- ip - 要远程查询的server/proxy 的 IP/DNS/网络掩码列表(默认为 127.0.0.1);
- port - 要远程查询的server/proxy 的端口(默认为 10051)
注释:
- 此项返回一组选定的内部指标。详情请参阅远程监视 Zabbix 统计信息;
- 请注意,统计信息请求仅会从目标实例的 ‘StatsAllowedIP’ server/proxy 参数中列出的地址接受。
zabbix.stats[<ip>,<port>,queue,<from>,<to>]
远程返回在 Zabbix server或proxy上延迟的监视监控项队列中的数量。
返回值:JSON 对象。
请参阅支持的平台。
参数:
- ip - 要远程查询的server/proxy的 IP/DNS/网络掩码列表(默认为 127.0.0.1);
- port - 要远程查询的server/proxy的端口(默认为 10051);
- queue - 常量(原样使用);
- from - 至少延迟(默认为 6 秒);
- to - 至多延迟(默认为无穷大)
请注意,统计信息请求仅会从目标实例的 ‘StatsAllowedIP’ server/proxy 参数中列出的地址接受。
支持的监控项键值
以下是您可以与 Zabbix agent 使用的监控项键值列表。
这些监控项键值列出了没有参数和额外信息。点击监控项键值以查看详细信息。
监控项键值 | 描述 | 监控项组 |
---|---|---|
kernel.maxfiles | 操作系统支持的最大打开文件数。 | Kernel |
kernel.maxproc | 操作系统支持的最大进程数。 | |
kernel.openfiles | 当前打开文件描述符的数量。 | |
log | 监控日志文件。 | 日志监控 |
log.count | 监控的日志文件中匹配行的数量。 | |
logrt | 监控已轮转的日志文件。 | |
logrt.count | 监控已轮转的日志文件中匹配行的数量。 | |
modbus.get | 读取 Modbus 数据。 | Modbus |
net.dns | 检查 DNS 服务是否运行。 | Network |
net.dns.perf | 检查 DNS 服务的性能。 | |
net.dns.record | 执行 DNS 查询。 | |
net.if.collisions | 网络接口上窗外冲突的数量。 | |
net.if.discovery | 网络接口列表。 | |
net.if.in | 网络接口上的入站流量统计。 | |
net.if.out | 网络接口上的出站流量统计。 | |
net.if.total | 网络接口上入站和出站流量统计的总和。 | |
net.tcp.listen | 检查此 TCP 端口是否处于监听状态。 | |
net.tcp.port | 检查是否可以连接到指定端口的 TCP 连接。 | |
net.tcp.service | 检查服务是否正在运行并接受 TCP 连接。 | |
net.tcp.service.perf | 检查 TCP 服务的性能。 | |
net.tcp.socket.count | 返回与参数匹配的 TCP 套接字数量。 | |
net.udp.listen | 检查此 UDP 端口是否处于监听状态。 | |
net.udp.service | 检查服务是否正在运行并响应 UDP 请求。 | |
net.udp.service.perf | 检查 UDP 服务的性能。 | |
net.udp.socket.count | 返回与参数匹配的 UDP 套接字数量。 | |
proc.cpu.util | 进程 CPU 利用率百分比。 | Processes |
proc.get | 操作系统进程及其参数列表。 | |
proc.mem | 进程使用的内存字节数。 | |
proc.num | 进程数量。 | |
sensor | 硬件传感器读数。 | Sensors |
system.boottime | 系统启动时间。 | System |
system.cpu.discovery | 检测到的 CPU/CPU 核心列表。 | |
system.cpu.intr | 设备中断。 | |
system.cpu.load | CPU 负载。 | |
system.cpu.num | CPU 数量。 | |
system.cpu.switches | 上下文切换次数。 | |
system.cpu.util | CPU 利用率百分比。 | |
system.hostname | 系统主机名。 | |
system.hw.chassis | 机箱信息。 | |
system.hw.cpu | CPU 信息。 | |
system.hw.devices | 安装的 PCI 或 USB 设备列表。 | |
system.hw.macaddr | MAC 地址列表。 | |
system.localtime | 系统时间。 | |
system.run | 在主机上运行指定命令。 | |
system.stat | 系统统计信息。 | |
system.sw.arch | 软件架构信息。 | |
system.sw.os | 操作系统信息。 | |
system.sw.os.get | 操作系统的详细信息(版本、类型、发行名称、次要和主要版本等)。 | |
system.sw.packages | 已安装软件包列表。 | |
system.sw.packages.get | 已安装软件包的详细列表。 | |
system.swap.in | 交换入(从设备到内存)统计。 | |
system.swap.out | 交换出(从内存到设备)统计。 | |
system.swap.size | 交换空间大小(字节或占总量的百分比)。 | |
system.uname | 系统标识。 | |
system.uptime | 系统运行时间(秒)。 | |
system.users.num | 登录用户数。 | |
vfs.dev.discovery | 块设备及其类型列表。 | Virtual file systems |
vfs.dev.read | 磁盘读取统计。 | |
vfs.dev.write | 磁盘写入统计。 | |
vfs.dir.count | 目录条目计数。 | |
vfs.dir.get | 目录条目列表。 | |
vfs.dir.size | 目录大小。 | |
vfs.file.cksum | 使用 UNIX cksum 算法计算的文件校验和。 | |
vfs.file.contents | 获取文件的内容。 | |
vfs.file.exists | 检查文件是否存在。 | |
vfs.file.get | 返回文件的信息。 | |
vfs.file.md5sum | 文件的 MD5 校验和。 | |
vfs.file.owner | 检索文件的所有者。 | |
vfs.file.permissions | 返回包含 UNIX 权限的四位字符串。 | |
vfs.file.regexp | 在文件中检索字符串。 | |
vfs.file.regmatch | 在文件中查找字符串。 | |
vfs.file.size | 文件大小。 | |
vfs.file.time | 文件时间信息。 | |
vfs.fs.discovery | 挂载的文件系统列表及其类型和挂载选项。 | |
vfs.fs.get | 挂载的文件系统列表及其类型、可用磁盘空间、inode 统计和挂载选项。 | |
vfs.fs.inode | inode 数量或百分比。 | |
vfs.fs.size | 磁盘空间(字节或占总量的百分比)。 | |
vm.memory.size | 内存大小(字节或占总量的百分比)。 | Virtual memory |
web.page.get | 获取网页内容。 | Web 监控 |
web.page.perf | 完整网页的加载时间。 | |
web.page.regexp | 在网页中查找字符串。 | |
agent.hostmetadata | agent主机元数据。 | Zabbix |
agent.hostname | agent主机名。 | |
agent.ping | agent可用性检查。 | |
agent.variant | Zabbix agent 的变体(Zabbix agent 或 Zabbix agent 2)。 | |
agent.version | Zabbix agent 的版本。 | |
zabbix.stats | 远程返回一组 Zabbix server或proxy内部指标。 | |
zabbix.stats | 远程返回 Zabbix server或proxy 队列延迟数。 |
脚注
1 Linux 特定的注意事项。Zabbix agent必须对 /proc 文件系统具有只读访问权限。来自 www.grsecurity.org 的内核补丁限制了非特权用户的访问权限。
2 vfs.dev.read[]
, vfs.dev.write[]
:如果超过 3 小时没有访问监控项值,则 Zabbix agent 将终止“过时的”设备连接。如果系统具有动态更改路径的设备,或者手动移除设备,可能会发生这种情况。还要注意,如果使用 3 小时或更长时间的更新间隔,则这些监控项将始终返回 ‘0’。
3 vfs.dev.read[]
, vfs.dev.write[]
:如果对第一个参数使用默认值 all,则该键将返回摘要统计信息,包括所有块设备(如 sda、sdb 等)及其分区(sda1、sda2、sdb3…)以及基于这些块设备/分区的多个设备(MD RAID)和基于这些块设备/分区的逻辑卷(LVM)。在这种情况下,返回的值应仅被视为相对值(随时间动态变化),而不是绝对值。
4 仅当agent 使用 cURL 支持编译时,才支持 SSL(HTTPS)。否则,该项将变为不支持。
5 在 Solaris 系统中,对于环回接口,直到 Solaris 10 6/06 版本为止,不支持 bytes
和 errors
值,因为内核未存储和/或报告字节、错误和利用率统计信息。但是,如果通过 net-snmp 监控 Solaris 系统,则可能会返回值,因为 net-snmp 具有来自 cmu-snmp 的旧代码,日期可以追溯到 1997 年,该代码在无法从接口统计信息中读取字节值时返回包计数器(在环回接口上存在)乘以任意值 308。这是一种非常粗略的估计,因为 Solaris 系统中环回接口的 MTU 限制为 8892 字节。这些值不应被认为是正确的,甚至是准确的。它们是估计值。Zabbix agent 不进行任何猜测,但 net-snmp 将为这些字段返回一个值。
6 在 Solaris 上,从 /proc/pid/psinfo 获取的命令行长度限制为 80 字节,并且包含进程启动时的命令行。
7 vfs.file.contents[]
, vfs.file.regexp[]
, vfs.file.regmatch[]
项可用于检索文件内容。如果要限制对具有敏感信息的特定文件的访问,请在没有查看这些文件权限的用户下运行 Zabbix agent。
与命令行工具一起使用
请注意,在使用 zabbix_agentd 或 zabbix_get 进行测试或使用监控项键时,您还应考虑 shell 语法。
例如,如果键的某个参数必须用双引号括起来,则必须显式地转义双引号,否则它们将被 shell 作为特殊字符修剪,并且不会传递给 Zabbix 实用程序。
示例:
zabbix_agentd -t 'vfs.dir.count[/var/log,,,"file,dir",,0]'
zabbix_agentd -t vfs.dir.count[/var/log,,,\"file,dir\",,0]
编码设置
为了确保获取的数据不会损坏,您可以在 encoding
参数中指定正确的编码来处理检查(例如 ‘vfs.file.contents’)。支持的编码列表(代码页标识符)可以在 libiconv(GNU 项目)的文档中或者在 Microsoft Windows SDK 文档中的 “Code Page Identifiers” 中找到。
如果在 encoding
参数中未指定编码,则将应用以下解析策略:
- 如果未指定编码(或为空字符串),则假定为 UTF-8,数据将按原样处理;
- BOM 分析 - 适用于监控项 ‘vfs.file.contents’、’vfs.file.regexp’、’vfs.file.regmatch’。将尝试通过使用文件开头的字节顺序标记(BOM)来确定正确的编码。如果没有 BOM,则会应用标准解析(参见上文)。
监控项故障排除
对于被动检查,为了防止由于server 请求到agent 的超时而导致监控项无法获得任何值,应注意以下事项: