2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 Zabbix客户端

概述

这些检查与Zabbix代理进行通信实现数据的采集。

被动和主动 两种agent模式. 在配置监控项时,你可以选择所需的类型:

  • Zabbix 客户端 - 被动模式,Zabbix Server向Agent索要数据
  • Zabbix 客户端 (主动式) - 主动模式,Agent主动上报数据给Zabbix Server

支持的监控项key

下表提供了可用的Zabbix代理监控项键值的详细信息。

请参考:

** 必填和可选参数 **

没有尖括号的参数是强制性的。标有尖括号 < > 的参数是可选的。

键值
描述 * 返回值** **参数 * 注释
agent.hostname
客户端主机名. Strin 从配置文件 回客户端主机名的实际值。
agent.ping
客户端可用性检查 Nothing - 不可用

1 - 可用
使用**nodata )**触发器函数检查主机不可用性。
agent.version
Zabbix 客户端的版本 字符串 例如返回值:
<1.8.2
kernel.maxfiles
系统支持的打开文件的最大数量 整数
kernel.maxproc
系统支持的最大进程数 整数
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]
日志文件监控。 Log **file * - 日志文件完整路径和名称  监控项必须定义为[主动检查](/zregexp - 描述所需模式的正则表达式  如果文件丢失或权限不允encoding - 编码 标识符 
maxlines - Agent将发送到Zabbix服务器或代理的每秒最大行数。此参数覆盖zabbix_agentd.conf中的“MaxLinesPerSecond”值  如果output 为空 - 返回包含匹配文本的mode - 可能的值: 
all (默认值), skip - 跳过处理历史的数据(仅影响新创建的监控项)。  在客户端端使用output 参数提取内容。
output - 可选项,输出格式模板。 \0转义序列替换为匹配的文本,而\N(其中N = 1 ... 9)转义序列被替换为第N个匹配组(如果N超过捕获组的数量,则为空字符串)。 
maxdelay - 最大延迟(秒)。 类型:float。 值:0-(默认)不忽略日志文件行; > 0.0-忽略旧行,以便在“maxdelay”秒内获取最近分析的行。使用前请阅读 maxdelay注释! 示例:
/manual/appendix/items/activepassive#active_checks).
访问,则监控项不受支持。
行。请注意,除“Result为TRUE”之外的所有全局正则表达式类型始终返回整个匹配行,并忽略output 参数。
=> 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]- will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send only number 6080 to server. Because a number is being sent, the "Type of information" for this log item can be changed from "Log" 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"]- 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.

mode 参数从Zabbix 2.0之后被支持。
output 从Zabbix 2.2之后被支持
maxdelay参数从Zabbix 3.2以后被支持。

更多信息请参考日志文件监控.
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>]
日志文件监控中匹配行的数量。 整数 file - 日志文件 整的路径和名称  该监控项必须配置为[主动检查](/zh/manual/regexp - 正则表达式  如果文件encoding - 编码 标识符 
maxproclines - Agent将分析每秒最大行数。默认值为 10*'MaxLinesPerSecond'在zabbix_agent配置文件.  查看更多信息在[日志文件监控](lomode - 可选的值: 
all (默认), skip - 跳过处理老数据(仅影响新创建的监控项)。  从Zabbix 3.2.0开始支持maxdelay - 最大延迟秒数。类型: float. 值: 0 - (默认) 从不忽略每行日志; > 0.0 - 忽略旧行,以便在“maxdelay”秒内获取最近分析的行。在使用前请阅读maxdelay参数 的注解!
ppendix/items/activepassive#active_checks).
失或权限不允许访问,则监控项不受支持。
_items).
logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]
支持监控轮询的日志文件。 Log **file_reg xp** - 文件名以及正则表达式定义的文件名的绝对路径。  监控项必须配置为[主动检查](/zh/manual/appendiregexp - 描述匹配内容的正则表达式。  日志轮询是基于文件的最后encoding - 编码 标识符 
maxlines - Agent发送到Zabbix服务器或者Proxy服务器的每秒最大生成行数。此参数将重写配置文件zabbix_agent配置文件的参数'MaxLinesPerSecond'的值  如果output 为空 - 返回包含匹配文本的整行. 请注意,除“Resumode - 可选的值: 
all (默认), skip - 跳过处理旧数据(仅影响新创建的监控项)。  在Agent端使用输出参数提取内容。
output - 一个可选的输出格式模板。 **\0 转义序列替换为匹配文本,而\N(其中N = 1 ... 9)转义序列被替换为第N个匹配组(如果N超过捕获组的数量,则为空字符串)。 
maxdelay** - 最大延迟(秒)。 类型:float。 值:0-(默认)不忽略日志文件行; > 0.0-忽略旧行,以便在“maxdelay”秒内获取最近分析的行。使用前请阅读maxdelay参数注释!  示例:
options - 日志文件轮换的类型. 可能的值:  => logrt[轮换 (默认), copytruncate。 请注意,copytruncate不能与maxdelay一起使用。 在这种情况下,maxdelay必须为0或未指定。 请参见copytruncate注释。 => logrt["/home/user/^logfile_.
/items/activepassive#active_checks).
改时间。
t为TRUE”之外的所有全局正则表达式类型始终返回整个匹配行,并忽略输出参数。
/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] → 将返回一个文件类似"logfile1" (不会匹配".logfile1")
_[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]- will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send only number 6080 to server. 由于正在发送一个数字,因此该日志项的“信息类型”可以从“日志”更改为“数字(无正负)”,并且该值可以用于图形,触发器等。

在发送到服务器之前使用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"]- 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.

mode 参数从Zabbix 2.0以后开始支持。
output参数从Zabbix 2.2开始支持。
maxdelay参数从Zabbix 3.2开始支持。
options 参数从Zabbix 4.0开始支持。

更多信息请参考日志文件监控.
logrt.count[file_regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>]
支持对循环日志文件监控中匹配的行数。 整型 file_regexp - 件名以及正则表达式定义的文件名的绝对路径。  监控项必须定义为[主动检查](/zh/manual/appendix/items/regexp - 描述匹配内容的正则表达式。  日志轮询是基于文件的最后encoding - 编码 标识符 
maxproclines - Agent将分析每秒最大新生成行数。 默认值为 4*'MaxLinesPerSecond' 定义在 zabbix_agent配置文件.  更多信息请参考 [日志文件监控](log_itmode - 可能的值: 
all (默认), skip - 跳过处理旧数据(仅影响新创建的监控项)。  options 参数从Zabbix 4maxdelay - 最大延迟(秒)。 类型:float。 值:0-(默认)不忽略日志文件行; > 0.0-忽略旧行,以便在“maxdelay”秒内获取最近分析的行。使用前请阅读maxdelay参数注释! 
options - 日志文件轮换的类型. 可能的值:  从Zabbix 3.2.0轮换 (默认), copytruncate。 请注意,copytruncate不能与maxdelay一起使用。 在这种情况下,maxdelay必须为0或未指定。 请参见copytruncate注释。
ctivepassive#active_checks).
改时间。
ms)。
0开始支持。
开始支持。
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
检查DNS服务是否开启。 0 - DNS宕 (服务器没有响应或DNS解析失败)  ip - DNS服务器的IP地址(默
1 - DNS正在运行 **t
DNS服务器为空,在Windows上被忽略)  示例:
name - 要查询的DNS名称  =>pe** - 要查询的记录类型 (默认为 SOA
timeout (在windows上忽略) - 请求的超时秒数(默认为1秒)  type 可选的值为:
count (在windows上忽略) - 请求的尝试次数 (默认为2)  ANY, A, protocol - 用于执行DNS查询的协议:udp* (默认) 或者 tcp
<net.dns[8.8.8.8,zabbix.com,MX,2,1]
S, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS* (Windows系统除外), HINFO, MINFO, TXT, SRV
不支持国际化域名,请改用IDNA编码名称。

Zabbix 3.0支持 protocol 参数。
Zabbix Agent从版本1.8.6(Unix)和2.0.0(Windows)开始支持SRV记录类型。

Zabbix 2.0之前命名(仍然支持): net.tcp.dns
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]
执行一个DNS查询 字符串与所 类型的信息 ip - DNS服务器的 P地址(默认DNS服务器为空,在Windows上被忽略)  示例:
name - 要查询的DNS名称  =>type - 要查询的记录类型 (默认为 SOA
timeout (在windows上忽略) - 请求的超时秒数(默认为1秒)  type 可选的值为:
count (在windows上忽略) - 请求的尝试次数 (默认为2)  ANY, A, protocol - 用于执行DNS查询的协议:udp* (默认) 或者 tcp
<net.dns[8.8.8.8,zabbix.com,MX,2,1]
S, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS* (Windows系统除外), HINFO, MINFO, TXT, SRV
不支持国际化域名,请改用IDNA编码名称。

Zabbix 3.0支持 protocol 参数。
Zabbix Agent从版本1.8.6(Unix)和2.0.0(Windows)开始支持SRV记录类型。

Zabbix 2.0之前命名(仍然支持): net.tcp.dns.query
net.if.collisions[if]
Number of out-of-window collisions. 整型 * if** - 网卡名称
net.if.discovery
网络接口列表 用于低级发现。 JSON 对象 Zabbix agent从2 0之后开始支持。

Zabbix agent在FreeBSD, OpenBSD 和 NetBSD系统从2.2开始支持。

某些Windows版本(例如Server 2008)可能需要安装最新的更新以支持网卡名称中的非ASCII字符。
net.if.in[if,<mode>]
网卡流入量统计。 整型 if - 卡名 (Unix); 网卡完整描述或IPv4地址(Windows)  在Windows上,该选项从64位计数器获取值mode - 可用的值: 
bytes - 字节数(默认)  从Zabpackets - 包数量 
errors - 错误数量  示例:dropped - 丢包数量  =&goverruns (fifo) - FIFO缓冲区错误的数量  => nframe - 包帧错误的数量 
compressed - 设备驱动程序发送或接收的压缩包数  你可以使用net.if.dismulticast - 设备驱动程序接收的组播帧数
如果可用)。64位接口统计计数器在Windows Vista和Windows Server 2008中引入。如果64位计数器不可用,代理使用32位计数器。
ix Agent1.8.6版本起,支持Windows上的多字节接口名称。
; net.if.in[eth0,errors]
t.if.in[eth0]
overy或net.if.list监控项在Windows上获取网卡说明。
你可以使用该键与Delta(每秒速度)存储值,以获得每秒字节的统计信息。
net.if.out[if,<mode>]
网卡流出量统计。 整型 if - 卡名称 (Unix); 网卡完整描述或IPv4地址(Windows)  在Windows上,该选项从64位计数器获取值(mode - 可用的值: 
bytes - 字节数(默认)  从Zabpackets - 包数量 
errors - 错误数量  示例:dropped - 丢包数量  =&goverruns (fifo) - FIFO缓冲区错误的数量  => ncollisions (colls) - 在接口上检测到的冲突数 
carrier - 设备驱动程序检测到的载波丢失数  你可以使用net.if.dicompressed - 设备驱动程序发送或接收的压缩包数
果可用)。64位接口统计计数器在Windows Vista和Windows Server 2008中引入。如果64位计数器不可用,代理使用32位计数器。
ix Agent1.8.6版本起,支持Windows上的多字节接口名称。
; net.if.out[eth0,errors]
t.if.out[eth0]
covery或net.if.list监控项在Windows上获取网卡说明。
你可以使用该键与Delta(每秒速度)存储值,以获得每秒字节的统计信息。
net.if.total[if,<mode>]
网卡的进出流量统计信息的总和。 整型 if - 网卡名称(Un x); 网卡完整描述或IPv4地址(Windows)  在Windows上,该选项从64位计数器获取值(如果可用)。6mode - 可用的值: 
bytes - 字节数(默认)  示例:
packets - 包数量  =&errors - 错误数量  =&gdropped - 丢包数量 
overruns (fifo) - FIFO缓冲区错误的数量  You maycompressed - 设备驱动程序发送或接收的压缩包数
位接口统计计数器在Windows Vista和Windows Server 2008中引入。如果64位计数器不可用,代理使用32位计数器。
t; net.if.total[eth0,errors]
; net.if.total[eth0]
obtain network interface descriptions on Windows with net.if.discovery or net.if.list items.
你可以使用net.if.discovery或net.if.list监控项在Windows上获取网卡说明。

你可以使用该键与Delta(每秒速度)存储值,以获得每秒字节的统计信息。

请注意,只有当net.if.in和net.if.out都用于平台上丢弃的数据包时,丢弃的数据包才被支持。
net.tcp.listen[port]
检查此TCP端口是否处于监听状态。 0 - 未监听
port - TCP端口
1 - 处于监听状态
示例:

<=> net.tcp.listen[80]
在Zabbix代理版本1.8.4之后支持Linux。

从Zabbix 3.0.0之后,在Linux内核2.6.14及更高版本上从内核的NETLINK接口获取有关监听TCP套接字的信息。否则,将从/proc/net/tcp和/proc/net/tcp6文件中检索该信息。
net.tcp.port[<ip>,port]
检查是否可以将TCP连接到指定的端口。 0 - 不能连接
ip - IP地址 (默认是
1 - 可以连接
27.0.0.1)  示例:
port - 端口 =
<gt; net.tcp.port[,80] → 可用于测试在端口80上运行的Web服务器的可用性。
对于简单的TCP性能测试,使用 net.tcp.service.perf[tcp,<ip>,<port>]

请注意,这些检查可能会导致增加系统守护程序日志文件中的额外信息(通常会记录SMTP和SSH会话)。

旧的命名方式: check_port[*]
net.tcp.service[service,<ip>,<port>]
检查服务是否正在运行并接受TCP连接。 0 - 服务停止运行
service - 如下任一服务:
1 - 服务正在运行 **ip*
示例:
ssh, ldap, smtp, ftp, http, pop, nntp, .imap, tcp, https, telnet (查看详细信息)  =>- IP地址 (默认是 127.0.0.1) 
port - 端口号 (默认为标准服务端口号) 请注意,这些检测可能会导
<net.tcp.service[ftp,,45] → 可用于检测FTP服务器上TCP端口45的可用性。
增加系统守护程序日志文件的信息(通常会记录SMTP和SSH会话)。

目前不支持检测加密协议(如端口993上的IMAP或端口995上的POP)。 一个解决方案是使用net.tcp.port来检测这些。

目前不支持Windows 客户端检测LDAP和HTTPS。

请注意,telnet检测查找登录提示符(':'在结尾)。

请参考HTTPS服务检测的 已知问题

httpstelnet 服务从Zabbix 2.0开始支持。

旧命名: check_service[*]
net.tcp.service.perf[service,<ip>,<port>]
检测TCP服务性能 0 - 服 停止运行。  service
seconds - 连接到服务花费的时间(秒) ip - IP
如下任一服务:  示例:
ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet (参考 详细描述)  =>址(默认为 127.0.0.1) 
port - 端口号 (默认为标准服务端口号) 目前不支持检测加密协议
<net.tcp.service.perf[ssh] → 可以用来检测SSH服务器的初始响应速度。
如IMAP 上的端口993或者POP上的端口995) 。一个解决方案是使用net.tcp.service.perf[tcp,<ip>,<port>]来检测。

目前不支持Windows代理检查LDAP和HTTPS。

请注意,telnet检测查找登录提示符(':'在结尾)。

请参考检测HTTPS服务的已知问题

httpstelnet 服务从Zabbix 2.0开始支持。

旧名称: check_service_perf[*]
net.udp.listen[port]
检测UDP端口是否处于监听状态。 0 - 未监听。
port - UDP端口
1 - 处在监听状态。
示例:

<=> net.udp.listen[68]
在Linux平台从Zabbix agent version 1.8.4 开始支持。
net.udp.service[service,<ip>,<port>]
检查服务是否正在运行并能响应UDP请求。 0 - 服务停止运行。
service - ntp (参考
1 - 服务正在运行 **por
详细信息)  示例:
ip - IP地址 (默认是127.0.0.1)  =&gt** - 端口号 (默认使用标准服务端口号)
<net.udp.service[ntp,,45] → 可用于测试UDP端口45上NTP服务的可用性。
此选项从Zabbix 3.0.0起支持,但ntp服务可用于以前版本中的net.tcp.service []选项。
net.udp.service.perf[service,<ip>,<port>]
检测UDP服务的性能 0 - 服务 止运行  service
seconds - 等待服务响应的秒数 port
ntp (参考详细信息)  示例:
ip - IP地址 (默认为 127.0.0.1)  =&gt- 端口 (默认使用标准服务端口号)
<net.udp.service.perf[ntp] → 可用于测试NTP服务的响应时间。
此选项从Zabbix 3.0.0起支持,但ntp服务可用于以前版本中的net.tcp.service []选项。
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
进程CPU利用率百分比。 浮点型 name - 程名 (默认为 all processes)  示例:
user - 用户名 (默认为 all users)  =>type - CPU利用率类型:  =&gttotal (默认), user, system 
cmdline - 可按命令行过滤(支持正则表达式)  返回值基于单CPU核的利用率。mode - 数据收集模式: avg1 (默认), avg5, avg15 
zone - 目标区域: current (默认), all. 此参数仅在Solaris平台上受支持。从Zabbix 3.0.3开始,如果代理程序已在Solaris上编译且没有区域支持,而是在支持区域的较新Solaris上运行,并且<zone>参数为缺省值或当前值,则代理程序将返回NOTSUPPORTED(该代理程序不能将结果限制为仅当前区)。但是,在这种情况下,支持<zone>参数值all。 进程CPU利用率数据由收集器收集,该收集器最多支持1024个唯一(按名称,用户和命令行)查询。 过去24小时内未被访问的查询将从收集器中删除。
<proc.cpu.util[,root] → 在“root”用户下运行的所有进程的CPU利用率。
proc.cpu.util[zabbix_server,zabbix] → 在zabbix用户下运行的所有zabbix_server进程的CPU利用率。
如,使用两个内核的进程的CPU利用率为200%。

自Zabbix 3.0.0起支持此Key,并可在多个平台上使用 (请查看 平台支持的监控项).
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
用户进程使用的内存。 整型 name - 程名 (默认是全部进程)  示例:
user - 用户名 (默认是 全部用户)  => promode - 可能的值:  =&gavg, max, min, sum (默认值)  =&cmdline - 按命令行过滤(它是一个正则表达式) 
memtype - 进程使用的内存类型 注意: 当多
<.mem[,root] → “root”用户运行的所有进程使用的内存
; proc.mem[zabbix_server,zabbix] → zabbix用户运行的所有zabbix_server进程使用的内存
t; proc.mem[,oracle,max,oracleZABBIX] → oracle用户下,包含有oracleZABBIX命令行运行的所有内存最多的内存
进程使用共享内存时,进程使用的内存总和可能导致大到不切实际的值。

参考 说明 关于选择进程namecmdline 参数(指定为Linux)。

memtype 参数从Zabbix 3.0.0开始在多个 平台 支持。
proc.num[<name>,<user>,<state>,<cmdline>]
进程数量。 整型 **name * - 进程名称 (默认是 all processes)  示例:
user - 用户名 (默认是 all users)  =>state - 可选的值:  =&g所有状态 (默认),  =>disk - 不间断休眠, 
run - 运行中,  参考sleep - 间断休眠, 
trace - 停止的,  在Wzomb - 僵尸 
cmdline - 按命令行过滤(它是一个正则表达式) 自Zabbix 3.4.0起支持
<proc.num[,mysql] → 在mysql用户下运行的进程数
; proc.num[apache2,www-data] → 在www-data用户下运行的apache2进程数
proc.num[,oracle,sleep,oracleZABBIX] → 在oracleZABBIX命令行下的oracle用户运行的睡眠状态进程数。
说明 关于选择进程 namecmdline 参数(适用于Linux).
ndows上,只支持nameuser参数。
state 参数的磁盘跟踪值。
sensor[device,sensor,<mode>]
硬件传感器读数。 浮点型 device - 设备名称  在Linux 2.4上读取sensor - 传感器名 
mode - 可能的值:  示例:avg, max, min (如果省略此参数,则会对设备和传感器进行逐字处理). => sensor[w83781d-
proc/sys/dev/sensors
2c-0-2d,temp1]

在Zabbix 1.8.4之前,使用传感器[temp1]格式。
在Linux 2.6以后的版本上读取 /sys/class/hwmon

请参阅Linux上sensor项目的更详细说明。
在OpenBSD上读取hw.sensors MIB文件

示例:
=> sensor[cpu0,temp0] → CPU的温度
=> sensor["cpu[0-2]$",temp,avg] → 前三个CPU温度的平均值

从Zabbix 1.8.4开始支持OpenBSD。
system.boottime
系统启动时间 整数 (U ix时间戳)
system.cpu.discovery
检测到的CPU/CPU内核列表。用于低级发现。 JSON对象 所有平台从2.4.0开始支持
system.cpu.intr
设备中断数 整数
system.cpu.load[<cpu>,<mode>]
CPU负载. 浮 数 **cp ** - 可能的值:  示例:
all (default), percpu (总负载除以在线CPU数)  => smode - 可能的值: 
avg1 (一分钟平均值, 默认值), avg5, avg15 percpu
<stem.cpu.load[,avg5]
从Zabbix 2.0.0开始支持

旧名称: system.cpu.loadX
system.cpu.num[<type>]
CPU的数量 整数 **ty e** - 可能的值:  示例:
online (默认), max =
<gt; system.cpu.num
system.cpu.switches
上下文交换的数量。 整数 旧名称: *syst m[switches]*
system.cpu.util[<cpu>,<type>,<mode>]
CPU利用率。 浮点型 **cpu* - <CPU数量> 或者 all (默认值)  示例:
type - 可能的值:  =&gidle, nice, user (默认值), system (Windows系统默认值), iowait, interrupt, softirq, steal, guest (在Linux kernels 2.6.24 以及以上支持), guest_nice (在Linux kernels 2.6.33 以及以上支持) 
mode - 可能的值:  旧名称avg1 (1分钟平均值, 默认值), avg5, avg15
<; system.cpu.util[0,user,avg5]
system.cpu.idleX, system.cpu.niceX, system.cpu.systemX, system.cpu.userX
system.hostname[<type>]
系统主机名。 字符串型 type 仅Windows不得在其它系统上使用) - 可能的值: netbios (默认) 或者 host 该值由Windows上的GetComputerName( (对于 netbios)或gethostname()(用于 host)函数以及其它系统上的“hostname”命令获取。

返回值示例:
Linux系统:
=> system.hostname → linux-w7x1
=> system.hostname → www.zabbix.com
Windows系统:
=> system.hostname → WIN-SERV2008-I6
=> system.hostname[host] → Win-Serv2008-I6LonG

参数type Zabbix 1.8.6开始支持。

请参考 更详细的描述.
system.hw.chassis[<info>]
机架信息。 字符串 **info* - 完整的 (默认)、型号、序列、类型或供应商之一 示例: system.hw.chassis[full ]
Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop]

此key取决于SMBIOS表的可用性。
将尝试从sysfs读取DMI表,如果sysfs访问失败,尝试直接从内存中读取。

需要Root权限 ,因为通过从sysfs或内存读取获取该值。

Zabbix agent从2.0开始支持。
system.hw.cpu[<cpu>,<info>]
CPU信息 字 串或者整型 cpu <CPU数量> 或者 全部 (默认)  示例:
info - 可能的值:  =&gtfull (默认), curfreq, maxfreq, model 或者vendor
<system.hw.cpu[0,vendor] → AuthenticAMD
从 /proc/cpuinfo 和 /sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq 获取信息。

如果指定了CPU编号和curfreqmaxfreq,则返回数值(Hz)。

Zabbix agent从版本2.0开始支持
system.hw.devices[<type>]
列出PCI或者USB设备 文本型 type - pci (默认) 或者 usb 示例:
<=> system.hw.devices[pci] → 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
[..]

返回lspci或lsusb实用程序的输出(没有任何参数)

Zabbix agent 从版本2.0开始支持
system.hw.macaddr[<interface>,<format>]
列出MAC地址 字符串 **inter ace** - all (默认) 或者为一个正则表达式  列出与给定 interfaceformat - full (默认) 或者 short
表达式名称匹配的网卡的MAC地址(所有网卡的所有列表)。
示例:
=> system.hw.macaddr["eth0$",full] → [eth0] 00:11:22:33:44:55

如果 format 被指定为short,则不会列出接口名称和相同的MAC地址。
\\Zabbix agent从版本2.0开始支持。
system.localtime[<type>]
系统时间 整数 typeutc  **type
字符串 - typelocal
* - 可能的值:  此监控项参数从Zabutc - (默认值) 从纪元以来的时间(1970年1月1日00:00:00 UTC),以秒为单位。\ local - 'yyyy-mm-dd,hh:mm:ss.nnn,+ hh:mm'格式的时间 
示例:
ix agent 版本2.0开始支持。
=> system.localtime[local] → 使用该key创建一个监控项,然后使用它在时钟screen element中显示主机时间。
system.run[command,<mode>]
在主机上运行指定的命令。 命令执行的文本结果
command - 要执行的命令
1 - mode 为nowait(不管命令结果如何) wait - 等
最多可以返回512KB的数据,包括截断的尾随空格。
mode - 可能的值:  要被正执行结束(默认), 
nowait - 不等待 示例
<的处理,命令的输出必须是文本。

=> system.run[ls -l /] → 根目录的详细文件列表。

注意: 要启用此功能,Zabbix agent配置文件 必须包含EnableRemoteCommands=1 选项。

监控项的返回值是标准输出以及由命令产生的标准错误输出。 如果没有使用nowait标志,则会检查执行结果。

从Zabbix 2.4.0开始,空结果是允许的。
同时参考: 执行指令.
system.stat[resource,<type>]
系统信息。 整型或者 点型 ent - 该 区有权接收的处理器单元数(float)
kthr,<type> - 关于内核线程状态的信息:
r - 平均可运行内核线程数(float)
b - 虚拟内存管理器等待队列中的平均内核线程数(float)
memory,<type> - 有关虚拟和真实内存使用情况的信息:
avm - 活动虚拟页面(整数)
fre - 自由列表的大小(整数)
page,<type> - 关于页面错误和分页活动的信息:
fi - 每秒文件页面输入(float)
fo - 每秒文件页面输出(float)
pi - 从调页空间(float)分页的页面
po - 页面分页到调页空间(float)
fr - 页面被释放(页面替换)(浮点)
sr - 通过页面替换算法扫描的页面 (float)
faults,<type> - trap和中断率:
in - 设备中断 (float)
sy - 系统调用 (float)
cs - 内核线程上下文切换 (float)
cpu,<type> - 处理器时间使用百分比的细分:
us - 用户时间 (float)
sy - 系统时间 (float)
id - 空闲时间 (float)
wa - 系统具有未完成的磁盘/NFS I/O请求(float)的空闲请求时间(float)
pc - 消耗的物理处理器数量(float)
ec - 被授权的容量消耗的百分比(float)
lbusy - 表示在用户和系统级执行时发生的逻辑处理器利用率的百分比(float)
app - 表示共享池中的可用物理处理器(float)
disk,<type> - 磁盘信息:
bps - 表示以每秒字节为单位传输(读取或写入)驱动器的数据量 (integer)
tps - 表示发送到物理磁盘/磁带的每秒传输次数(float)
此监控项从Zabbix 1.8.1. 开始支持
system.sw.arch
软件架构信息。 字符串型 示例:
<=> system.sw.arch → i686

信息从uname()函数中获取。

Zabbix agent 从版本2.0开始支持
system.sw.os[<info>]
操作系统信息 字符串 info - 可能的值:  示例:
full (默认), short 或者 name =&g
<; system.sw.os[short]→ Ubuntu 2.6.35-28.50-generic 2.6.35.11

信息获取(注意,并非所有发行版中都存在所有文件和选项):
/proc/version (full)
/proc/version_signature (short)
/etc/os-release中支持它的系统上的PRETTY_NAME参数,或/etc/issue.net(name)

Zabbix agent从版本2.0开始支持。
system.sw.packages[<package>,<manager>,<format>]
列出已安装的软件包。 文本 package - all (默认) 或者为正则表达式  列表(按字母顺序)安装的包名称与给定的包rmanager - all (默认) 或者为包管理器 
format - full (默认) 或者 short 示例:
gexp匹配的包(全部列出它们全部)。
=> system.sw.packages[mini,dpkg,short] → python-minimal, python2.6-minimal, ubuntu-minimal

支持包管理器(执行命令):
dpkg (dpkg --get-selections)
pkgtool (ls /var/log/packages)
rpm (rpm -qa)
pacman (pacman -Q)

如果format被指定为full,则软件包由包管理器分组(每个管理器在单独的行上以其方括号开头)。
如果format 被指定为short, 包管理器不分组,并列在一行里。

Zabbix agent从版本2.0开始支持
system.swap.in[<device>,<type>]
交换(从设备到内存)统计。 整型 device - 用 交换的设备 (默认是all)  示例:
type - 可能的值:  =&gcount (swapins的数量), sectors (换入的区域), pages (换入的页). 有关默认的详细信息请参考 支持的平台
<; system.swap.in[,pages]
这个信息的来源是:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)
system.swap.out[<device>,<type>]
交换(从内存到设备)统计。 整型 device - 用 交换的设备 (默认是all)  示例:
type - 可能的值:  =&gcount (swapouts的数量), sectors (换出的区域), pages (换出的页). 有关默认的详细信息请参考支持的平台
<; system.swap.out[,pages]
信息来源是:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)
system.swap.size[<device>,<type>]
交换空间大小(以字节为单位)或百分比(total)。 Integer - 字节
device - 用于交换的设备 (
Float - 百分比 *f
认是 all)  示例:
type - 可能的值:  =&gee* (可用的交换空间, 默认值), pfree (空闲交换空间,百分比), pused (使用交换空间,百分比), total (总交换空间), used (使用交换空间)
<; system.swap.size[,pfree] → 空闲swap空间百分比
如果没有指定 设备 ,Zabbix代理只会考虑交换设备(文件),物理内存将被忽略。 例如,在Solaris系统上,swap -s命令包含一部分物理内存和交换设备(与swap -l不同)。

请注意,此key可能会报告虚拟化(VMware ESXi,VirtualBox)Windows平台上的百分比不正确。在这种情况下,使用perf_counter [\700(_Total)\702]键来获取正确的交换使用数据。

旧名称: system.swap.free, system.swap.total
system.uname
系统相关信息 字符串 返回值的示例(U ix):
FreeBSD localhost 4.2-RELEASE FreeBSD 4.2-RELEASE #0: Mon Nov i386

返回值示例(Windows):
Windows ZABBIX-WIN 6.0.6001 Microsoft? Windows Server? 2008 Standard Service Pack 1 x86

从Zabbix 2.2.0开始在Unix上,该监控项的值是通过uname()系统调用获得的。以前它是通过调用“uname -a”获得的。 此监控项的值可能与“uname -a”的输出不同,并且不包含基于其它来源输出的“uname -a”的信息。

从Zabbix 3.0开始的Windows系统上,该监控项的值是从Win32_OperatingSystem和Win32_Processor WMI类获取信息。以前它是从不稳定的Windows API和未记录的注册表项获得的。操作系统名称(包括版本)可能会被翻译成用户的显示语言。 在某些版本的Windows上,它包含商标符号和额外的空格。

请注意,在Windows上,该项目返回操作系统架构,而在Unix上则返回CPU架构。
system.uptime
系统正常运行时间(以秒为单位) 整数 在[监控项配置](/zh/man al/config/items/item#configuration)中, 使用 s 或者 uptime 单位来获取可读取的值。
system.users.num
已登录用户数 整数 who 命令用于代理端获取该值。
vfs.dev.read[<device>,<type>,<mode>]
磁盘读取统计信息。 整数 - ty|esectors, operations, bytes  device
Float - typesps, ops, bps
磁盘设备 (默认为 all)  不同操作系统的“类型”参数的默认值:type - 可能的值: sectors, operations, bytes, sps, ops, bps  AIX须指定此参数,因为各种操作系统的默认值不同。  FreeBSD - bps
sps, ops, bps 表示: sectors, operations, bytes per second, respectively.  Lmode - 可能的值: avg1 (1分钟平均值, 默认), avg5, avg15.  OpenBSD -此参数仅支持的类型为: sps, ops, bps. Solaris -
<- operations
nux - sps
perations
bytes

示例:
=> vfs.dev.read[,operations]

在支持的平台上的sps, opsbps 曾被限制为 8 个设备(7个独立的和1个 all). 从Zabbix 2.0.1 开始,这个限制提高到1024个设备(1023个独立的和1个all).

如果默认为全部用于第一个参数,那么该key将返回摘要统计信息,包括所有块设备,如sda,sbd及其分区(sda1,sda2,sdb3 ...)和基于这些块设备/分区的多个设备(MD raid)和基于这些设备/分区的逻辑卷(LVM)。在这种情况下,返回值只能作为相对值(动态时间)而不是绝对值。

LVM的支持从Zabbix 1.8.6开始。

直到Zabbix 1.8.6才能使用相关的设备名称(例如,sda)。 从那时起,可选的 /dev/前缀(例如/dev/sda)必须被使用。

旧名称: io[*]
vfs.dev.write[<device>,<type>,<mode>]
磁盘写入统计信息。 整数 - ty|esectors, operations, bytes  device
浮点型 - typesps, ops, bps 因为各
磁盘设备 (默认为all)  不同操作系统的“类型”参数的默认值:type - 可能的值: sectors, operations, bytes, sps, ops, bps  AIX操作系统的默认值有所不同,所以这个参数必须被指定。  FreeBSD - bps
sps, ops, bps 代表: sectors, operations, bytes per second, respectively.  Lmode - 可能的值: avg1 (1分钟平均值, 默认), avg5, avg15.  OpenBSD -此参数仅支持这些类型: sps, ops, bps. Solaris -
<- operations
nux - sps
perations
bytes

示例:
=> vfs.dev.write[,operations]

sps, ops and bps在支持的平台上的sps, opsbps 曾被限制为 8 个设备(7个独立的和1个 all). 从Zabbix 2.0.1 开始,这个限制提高到1024个设备(1023个独立的和1个all)。

如果默认为全部用于第一个参数,那么该key将返回摘要统计信息,包括所有块设备,如sda,sbd及其分区(sda1,sda2,sdb3 ...)和基于这些块设备/分区的多个设备(MD raid)和基于这些设备/分区的逻辑卷(LVM)。在这种情况下,返回值只能作为相对值(动态时间)而不是绝对值。

LVM的支持从Zabbix 1.8.6开始。

直到Zabbix 1.8.6才能使用相关的设备名称(例如,sda)。 从那时起,可选的 /dev/前缀(例如/dev/sda)必须被使用。

旧名字: io[*]
vfs.dir.count[dir,<regex_incl>,<regex_excl>,<types_incl>,<types_excl>,<max_depth>,<min_size>,<max_size>,<min_age>,<max_age>]
目录条目计数. 整数 dir - 目录的绝对路径  例如%APP_HOME%,regex_incl - 正则表达式,描述包含的文件,目录和符号链接名称模式(包括所有文件,目录和符号链接,如果为空;空字符串是默认值) 
regex_excl - 正则表达式描述文件,目录和符号链接名称模式以排除(不排除任何如果为空;空字符串是默认值)  隐藏目录 "." and ".." 不会被计算。
types_incl - 要计算的一组目录条目类型,可能的值: 
file - 常规文件, dir - 子目录, sym - 符号链接, sock - 套接字, bdev - 块设备, cdev - 字符设备, fifo- FIFO, dev- "bdev,cdev"的同义词, all- 所有上述类型,即 "file,dir,sym,sock,bdev,cdev,fifo". 如果参数为空,all为默认值。 必须用逗号分隔多个类型,并用引号“”括起整个集合。  目录遍历不遵循符号链接。
types_excl - 要计数的一组目录条目类型,与<types_incl>相同的值和语法。 如果某些条目类型同时位于<types_incl>和<types_excl>中,则不计算此类型的目录条目。 
max_depth - 遍历的子目录的最大深度。 -1 (默认) - 无限制, 0 - 不涉及子目录  在Windows目录中,将跳过符号链接,并且min_size - 要计算的文件最小大小。小于此的文件将不计算在内。 该值以字节为单位。 内存后缀 可以被使用。 
max_size - 要计算的文件的最大大小。 大于此的文件将不计算在内。 该值以字节为单位。内存后缀 可以被使用。  regex_inclregex_excl 是 [Perl兼容的正则表达式min_age - 要计算的目录条目的最小创建时间。 最新编辑的条目不会被计算在内。 整数值以秒为单位。时间后缀 可以被使用。 
max_age - 要计算的目录条目的最大创建时间。 很久之前编辑的条目将不计算在内(修改时间)。 整数值以秒为单位。时间后缀 可以被使用。 执行时间将受到默认超时值3秒的限制(代理配置文件中的“超时”参数)。 由于大型目录遍历可能需要更长时间,因此不会
$HOME 和 %TEMP% 子类的环境变量是不支持的。
对硬链接计数一次。
(https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE). regex_inclregex_excl在计算条目大小时都应用于文件和目录,但在选择遍历的子目录时会被忽略(如果regex_incl是“(?i)^.+\.zip$”并且未设置max_depth,则将遍历所有子目录,但只会计算zip类型的文件)。 如果文件名与regex_inclregex_excl匹配,则不会计算此文件。
回任何数据,并且该项目将标记为“不支持”。 部分计数不会被退回。

按大小过滤时,只有常规文件具有有意义的大小。 在Linux和BSD下,目录也具有非零大小(通常为几Kb)。 设备的大小为零,例如 /dev/sda1 的大小不反映相应的分区大小。 因此,当使用<min_size><max_size>参数时,建议将<types_incl>指定为 /dev/sda1 ,以避免意外。

例子:
? vfs.dir.count[/dev] - 监视/dev中的设备数量(Linux)
? vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] - 监视临时目录中的文件数(Windows)

Zabbix 4.0.0.后支持该功能
vfs.dir.size[dir,<regex_incl>,<regex_excl>,<mode>,<max_depth>]
目录大小(以字节为单位)。 整数 dir - 目录的绝 路径  仅计算具有zabbix用户读取权限的目录。regex_incl - 正则表达式描述包含的文件名模式(如果为空则包括所有文件;空字符串是默认值) 
regex_excl - 正则表达式描述用于排除的文件名模式(如果为空不排除任何文件;空字符串是默认值)  在Windows上,将跳过任何符号链接,并且仅将硬链接考虑在内。
mode - 可能的值:  \
apparent (默认) - 获得明确的文件大小,而不是磁盘利用率(作为 du -sb dir), disk - 获取磁盘使用情况 (作为 du -s -B1 dir). 和du命令不同,vfs.dir.size 监控项在计算目录大小时会将隐藏的文件记录帐户 (作为 du -sb .[^.]* * 在 dir内). 
max_depth - 要遍历的子目录的最大深度。 -1 (默认) - 无限, 0 - 不会遍历到子目录。  示例:
<对于大型目录或慢速驱动器,由于客户端服务端/代理 配置文件中的超时设置,此项可能会超时。 根据需要增加超时值。
? vfs.dir.size[/tmp,log] - 计算/tmp中包含“log”的所有文件的大小
? vfs.dir.size[/tmp,log,^.+\.old$] - 计算/tmp中包含“log”的所有文件的大小,不包括包含'.old'的文件

文件大小限制取决于大文件支持
vfs.file.cksum[file]
文件checksum校验,由UNIX cksum算法计算实现。 整型 file - 文件全 径 示例:
<=> vfs.file.cksum[/etc/passwd]

返回值示例:
1938292000

旧名字: cksum

文件大小限制取决于大文件支持
vfs.file.contents[file,<encoding>]
检索文件的内容。 文本 file 文件全路径  如果文件为空或仅包含LF/Cencoding - 编码页 标识符
字符,则返回空字符串。
Example:
=> vfs.file.contents[/etc/passwd]

此选项对文件限制是不超过64KB的文件。

Zabbix agent从版本2.0开始支持。
vfs.file.exists[file]
检测文件是否存在。 0 - 不存在
file -
1 - 常规文件或到常规存在文件的link(符号或硬)
件的全路径 示例:

<=> vfs.file.exists[/tmp/application.pid]
返回值取决于S_ISREG POSIX宏返回的值。

文件大小限制取决于 大文件支持
vfs.file.md5sum[file]
文件的MD5 checksum。 字符串 文件的MD5哈希) file - 件的全路径 示例:
<=> vfs.file.md5sum[/usr/local/etc/zabbix_agentd.conf]

返回值示例:
b5052decb577e0fffd622d6ddc017e82

此项目的文件大小限制(64 MB)在1.8.6版中已删除。

文件大小限制取决于 大文件支持
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
查找文件中的字符串。 包含匹配字符串的行 或由可选输出参数指定的行。 file - 文件完整路径
只返回第一个匹配行。\\如果没有行与表达式匹配,则返回空字符串。
regexp - Perl Compatible Regular Expression (PCRE)或POSIX在Zabbix 3.4之前扩展了正则表达式 
encoding - 编码页 标识符  使用 o**start line** - 要查询的第一行的数量(默认为文件的第1行)。\
**end line** - 要查询的最后一行的数量(默认为文件的最后一行)。\
start line,end lineoutput - 一个可选的输出格式模板。 \0转义序列替换为匹配的文本,而\N(其中N = 1 ... 9)转义序列被替换为第N个匹配组(如果N超过捕获组的数量,则为空字符串)。
<tput参数的提取过程发生在代理端。
output参数从版本2.2开始支持。
示例:
=> 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>\]|<|<|<|<| |<|查询文件中的字符串。 0 - 不匹配
|**file** - 文
1 - 匹配 *|全路径\
start line,enregexp - Perl Compatible Regular Expression (PCRE)或POSIX在Zabbix 3.4之前扩展了正则表达式 
encoding** - 编码页 标识符  示例:
start line - 满足查询到的第一行的数量(默认为文件的第1行)。  => vfs.file.regmatcend line - 要查询的最后一行的数量(默认为文件的最后一行)。

一个特定于Linux的注意事项。 Zabbix Agent必须具有权限读取文件系统/proc。 来自www.grsecurity.org的内核补丁限制非特权用户的访问权限。

可用的编码

encoding 参数用于指定处理相应监控项检查的编码,以便获取的数据不会被破坏。 有关支持的编码(代码页标识符)的列表,请参阅相应的文档,例如libiconv(GNU Project)或Microsoft Windows SDK文档“代码页标识符”的文档。

如果传递空encoding,则默认使用UTF-8(用于较新的Unix/Linux发行版的默认语言环境,请参阅系统设置)或使用具有系统特定扩展名(Windows)的ANSI。

关于监控项的一些疑难问题

  1. 如果与passive agent一起使用,服务器配置中的 超时值 可能需要高于代理配置文件中的 超时值 。 否则,该监控项可能无法获取任何值,因为服务器请求代理程序首先超时。