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服务器返回错误代码(例如
NXDOMAIN或SERVFAIL)时,监控项返回响应时间而非0。
示例:
net.dns.perf[198.51.100.1,example.com,MX,2,1]
net.dns.perf[,198.51.100.1,PTR]
net.dns.perf[,1.100.51.198.in-addr.arpa,PTR]
net.dns.perf[,2a00:1450:400f:800::200e,PTR]
net.dns.perf[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]
执行DNSquery.
Zabbix agent 2还提供net.dns.get,该功能支持更多记录类型并提供更灵活的DNS监控选项.
返回值: 包含所需信息类型的字符string.
参见支持的平台.
参数:
- ip (Windows系统下除非使用Zabbix agent 2否则忽略) - DNS服务器IP地址(留空则使用默认DNS服务器);
- name - 要执行query的DNS名称;
- type - 要查询的记录类型(默认为SOA);
- timeout (Windows系统下除非使用Zabbix agent 2否则忽略) - 请求超时时间(秒)(默认为1秒);
- count (Windows系统下除非使用Zabbix agent 2否则忽略) - 请求重试次数(默认为2次);
- protocol - 用于执行DNSqueries的协议: udp(默认)或tcp.
注释:
type可能的取值包括:
ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (Windows系统下不支持Zabbix agent,所有操作系统下不支持Zabbix agent 2), HINFO, MINFO, TXT, SRV- 对于反向DNS查询(当
type设为PTR时),DNS名称可采用反向或非反向格式(参见下方示例). 注意当请求PTR记录时,DNS名称实际上是IP地址. - 不支持国际化域名,请使用IDNA编码名称.
示例:
net.dns.record[198.51.100.1,example.com,MX,2,1]
net.dns.record[,198.51.100.1,PTR]
net.dns.record[,1.100.51.198.in-addr.arpa,PTR]
net.dns.record[,2a00:1450:400f:800::200e,PTR]
net.dns.record[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.if.collisions[if]
窗口外碰撞次数.
返回值: integer.
支持的平台: Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD.
NetBSD系统需要root权限.
参数:
- if - 网络接口名称
net.if.discovery
网络接口列表.
用于低级发现.
返回值: JSON 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上支持;
- overruns、collision、carrier、compressed 模式仅在Linux上支持;
- 在HP-UX上,此监控项不提供环回接口(如lo0)的详细信息。
示例:
net.if.out[eth0]
net.if.out[eth0,errors]
net.if.total[if,<mode>]
网络接口的入站和出站流量统计总和。
返回值:integer。
支持的平台: Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD.
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.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和/roc/net/tcp6文件中检索.
示例:
net.tcp.listen[80]
net.tcp.port[<ip>,port]
检查是否能够与指定端口建立TCP连接。
返回值:0 - 无法连接;1 - 可以连接。
参见支持的平台。
参数:
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号。
注释:
- 如需进行简单的TCP性能测试,请使用
net.tcp.service.perf[tcp,<ip>,<port>]; - 这些检查可能会导致系统守护进程日志文件中出现额外消息(通常会记录SMTP和SSH会话)。
示例:
net.tcp.port[,80] #this item can be used to test the web server availability running on port 80
net.tcp.service[service,<ip>,<port>]
检查服务是否正在运行并接受TCP连接。
返回值:0 - 服务停止;1 - 服务运行中。
参见支持的平台。
参数:
- service - ssh、ldap、smtp、ftp、http、pop、nntp、imap、tcp、https或telnet(见details);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号)。
注释:
- 这些检查可能导致系统守护进程日志文件中出现额外消息(SMTP和SSH会话通常会被记录);
- 目前不支持检查加密协议(如端口993的IMAP或端口995的POP)。
作为替代方案,请使用
net.tcp.port[]进行此类检查。 - Windows上的LDAP和HTTPS检查仅由Zabbix agent 2支持;
- telnet检查会寻找login提示符(末尾的':')。
示例:
net.tcp.service[ftp,,45] #this item can be used to test the availability of FTP server on TCP port 45
net.tcp.service.perf[service,<ip>,<port>]
检查TCP服务的性能。
返回值:float(0 - 服务不可用;秒数 - 等待服务响应所花费的秒数)。
参见支持的平台。
参数:
- service - ssh、ldap、smtp、ftp、http、pop、nntp、imap、tcp、https或telnet(参见details);
- ip - IP地址或DNS名称(默认为127.0.0.1);
- port - 端口号(默认使用标准服务端口号)。
注释:
- 目前不支持检查加密协议(如端口993上的IMAP或端口995上的POP)。
作为变通方案,请使用
net.tcp.service.perf[tcp,<ip>,<port>]进行此类检查。 - telnet检查会寻找login提示符(末尾的':')。
示例:
net.tcp.service.perf[ssh] #this item can be used to test the speed of initial response from the SSH server
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
返回匹配参数的TCP套接字数量。
返回值:integer。
支持平台: 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(默认)、user或system;
- cmdline - 按命令行过滤(这是一个正则概述);
- mode - 数据收集模式:avg1(默认)、avg5或avg15;
- zone - 目标区域:current(默认)或all。 此参数仅在Solaris上受支持。
注释:
- 返回值基于单个CPU核心的使用率百分比。 例如,完全使用两个核心的进程CPU使用率为200%。
- 进程CPU使用率数据由收集器收集,该收集器最多支持1024个唯一的(按名称、用户和命令行)queries。 超过24小时未访问的queries将从收集器中移除。
- 当在Solaris上设置
zone参数为current(或默认值)时,如果agent是在不支持区域的Solaris上编译的,但在支持区域的新版Solaris上运行,则agent将返回NOTSUPPORTED(agent无法将结果限制在当前区域)。 然而,在这种情况下支持all。
示例:
proc.cpu.util[,root] #CPU utilization of all processes running under the "root" user
proc.cpu.util[zabbix_server,zabbix] #CPU utilization of all zabbix_server processes running under the zabbix user
proc.get[<name>,<user>,<cmdline>,<mode>]
操作系统进程及其参数的列表。
可用于低级发现。
返回值:JSON object。
支持的平台: Linux, FreeBSD, Windows, OpenBSD, NetBSD.
参数:
- name - 进程名称(默认为所有进程);
- user - 用户名(默认为所有用户);
- cmdline - 按命令行过滤(这是一个正则概述)。 此参数在Windows上不受支持;在其他平台上,如果模式设置为'summary',则也不支持。
- mode - 可能的值:
process(默认),thread(NetBSD不支持),summary。 查看每种模式和操作系统返回的process parameters列表。
注释:
- 如果无法获取值,例如由于错误(进程已终止、权限不足、系统调用失败),将返回
-1; - 查看使用
name和cmdline参数选择进程的notes(特定于Linux)。
示例:
proc.get[zabbix_server,zabbix,,process] #list of all zabbix_server processes running under the zabbix user, returns one entry per PID
proc.get[java,,,thread] #list of all Java processes, returns one entry per thread
proc.get[,zabbix,,summary] #combined data for processes of each type running under the zabbix user, returns one entry per process name
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
进程使用的memory(以字节为单位)
返回值:integer - 使用mode作为max、min、sum;float - 使用mode作为avg
支持平台: Linux、FreeBSD、Solaris、AIX、OpenBSD、NetBSD
参数:
- name - 进程名称(默认为所有进程)
- user - 用户名(默认为所有用户)
- mode - 可选值:avg、max、min或sum(默认)
- cmdline - 按命令行过滤(支持正则概述)
- memtype - 进程使用的type of memory
注释:
memtype参数仅在Linux、FreeBSD、Solaris6、AIX上支持- 当多个进程共享memory时,进程使用的memory总和可能会产生不切实际的大数值
参见notes了解如何使用name和cmdline参数选择进程(Linux特有)
当从命令行调用此监控项并包含命令行参数时(例如使用agent测试模式:zabbix_agentd -t proc.mem[,,,apache2]),会多统计一个进程,因为agent会统计自身
示例:
proc.mem[,root] #the memory used by all processes running under the "root" user
proc.mem[zabbix_server,zabbix] #the memory used by all zabbix_server processes running under the zabbix user
proc.mem[,oracle,max,oracleZABBIX] #the memory used by the most memory-hungry process running under Oracle having oracleZABBIX in its command line
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
进程数量.
返回值: integer.
支持平台: Linux, FreeBSD, Solaris6, HP-UX, AIX, OpenBSD, NetBSD.
参数:
- 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会统计自身; - 在Solaris上, 如果agent是在不支持zone的Solaris上编译的, 但在支持zone的新版Solaris上运行时, 将
zone参数设置为current(或默认)会导致agent返回NOTSUPPORTED(agent无法将结果限制在当前zone). 但all在这种情况下是支持的. - 关于使用
name和cmdline参数选择进程(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及更高版本上支持.
- avg5和avg15模式参数在Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD上支持.
示例:
system.cpu.util[0,user,avg5]
system.hostname[<type>,<transform>]
系统主机名.
返回值: string.
参见支持的平台.
参数:
- type - 可选值: netbios (Windows默认), 主机 (Linux默认), shorthost (返回主机名第一个点之前的部分, 对于不带点的名称返回完整string), fqdn (返回完全限定域名);
- transform - 可选值: none (默认) 或 lower (转换为小写).
该值通过从uname()系统API输出中获取nodename得到.
返回值示例:
system.hostname → linux-w7x1
system.hostname → example.com
system.hostname[shorthost] → example
system.hostname → WIN-SERV2008-I6
system.hostname[host] → Win-Serv2008-I6LonG
system.hostname[host,lower] → win-serv2008-i6long
system.hostname[fqdn,lower] → blog.zabbix.com
system.hw.chassis[<info>]
机箱信息.
返回值: string.
支持平台: Linux.
参数:
- info - 可选值: full (默认), model, serial, type, 或 vendor
注释:
- 该监控项键值依赖于SMBIOS表的可用性;
- 将尝试从sysfs读取DMI表,若sysfs访问失败则尝试直接从memory读取;
- 需要root权限,因为该值需通过读取sysfs或memory获取.
示例:
system.hw.chassis[full] → Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop
system.hw.cpu[<cpu>,<info>]
CPU信息.
返回值: string 或 integer.
支持平台: Linux.
参数:
- cpu - <CPU编号> 或 all (默认);
- info - 可选值: full (默认), curfreq, maxfreq, model 或 vendor.
注释:
- 从
/proc/cpuinfo和/sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq收集信息; - 如果指定了CPU编号和curfreq或maxfreq,则返回数值(Hz).
示例:
system.hw.cpu[0,vendor] → AuthenticAMD
system.hw.devices[<type>]
列出PCI或USB设备.
返回值: 文本.
支持平台: Linux.
参数:
- type - pci (默认) 或 usb
返回lspci或lsusb工具的输出(执行时不带任何参数).
示例:
system.hw.devices → 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
system.hw.macaddr[<interface>,<format>]
MAC地址列表.
返回值: string.
支持平台: Linux.
参数:
- interface - all (默认) 或正则表达式 概述;
- format - full (默认) 或 short
注释:
- 列出名称匹配给定
interface正则表达式概述的接口MAC地址(all列出所有接口); - 如果
format指定为short, 则不列出接口名称和重复的MAC地址.
示例:
system.hw.macaddr["eth0$",full] → [eth0] 00:11:22:33:44:55
system.localtime[<type>]
系统时间.
返回值: integer - 当type为utc时; string - 当type为local时.
参见支持的平台.
参数:
- 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>]
系统统计信息。
返回值:integer 或 float。
支持的平台:AIX。
参数:
- ent - 本分区有权获得的处理器单元数量(float);
- kthr,<type> - 关于内核线程状态的信息:
r - 可运行的内核线程平均数量(float)
b - 放入虚拟内存管理器等待队列的内核线程平均数量(float) - memory,<type> - 关于虚拟内存和实内存使用情况的信息:
avm - 活跃的虚拟页面(integer)
fre - 空闲列表的大小(integer) - page,<type> - 关于页面错误和分页活动的信息:
fi - 每秒的file页面输入(float)
fo - 每秒的file页面输出(float)
pi - 从分页空间中分页进来的页面(float)
po - 分页到分页空间的页面(float)
fr - 已释放的页面(页面替换)(float)
sr - 页面替换算法扫描的页面(float) - faults,<type> - 陷阱和中断速率:
in - 设备中断(float)
sy - 系统调用(float)
cs - 内核线程上下文切换(float) - cpu,<type> - 处理器时间使用百分比的细分:
us - 用户时间(float)
sy - 系统时间(float)
id - 空闲时间(float)
wa - 系统存在未完成的磁盘/NFS I/O请求时的空闲时间(float)
pc - 消耗的物理处理器数量(float)
ec - 消耗的授权容量百分比(float)
lbusy - 表示在用户和系统级别执行时发生的逻辑处理器利用率百分比(float)
app - 共享池中可用的物理处理器(float) - disk,<type> - 磁盘统计信息:
bps - 指示每秒传输到驱动器的数据量(读或写),单位为字节(integer)
tps - 指示每秒发送到物理磁盘/磁带的传输次数(float)
备注:
- 请注意以下监控项中的限制:
system.stat[cpu,app]- 仅支持类型为“Shared”的AIX LPAR
system.stat[cpu,ec]- 支持类型为“Shared”和“Dedicated”的AIX LPAR(“Dedicated”始终返回100(百分比))
system.stat[cpu,lbusy]- 仅支持类型为“Shared”的AIX LPAR
system.stat[cpu,pc]- 支持类型为“Shared”和“Dedicated”的AIX LPAR
system.stat[ent]- 支持类型为“Shared”和“Dedicated”的AIX LPAR
system.sw.arch
软件架构信息.
返回值: string.
参见支持的平台.
该信息从uname()函数获取.
示例:
system.sw.arch → i686
system.sw.os[<info>]
操作系统信息.
返回值: string.
支持的平台: Linux, Windows.
参数:
- info - 可选值: full (默认), short, 或 name
信息获取来源(注意并非所有文件和选项在所有发行版中都存在):
/proc/version(full) 在Linux系统;/proc/version_signature(short) 在Linux系统;- 来自支持该参数的Linux系统的
/etc/os-release或/etc/issue.net中的PRETTY_NAME参数 (name); - Windows系统中的
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion注册表键值.
示例:
system.sw.os[short] → Ubuntu 2.6.35-28.50-generic 2.6.35.11
system.sw.os[full] → [s|Windows 10 Enterprise 22621.1.asd64fre.ni_release.220506-1250 Build 22621.963]
系统软件操作系统获取
有关操作系统的详细信息(版本、类型、发行版名称、次版本和主版本等)。
返回值:JSON object。
支持的平台:Linux,Windows。
system.sw.packages[<regexp>,<manager>,<format>]
已安装软件包的列表。
返回值:文本。
支持平台: Linux.
参数:
- regexp - all (默认) 或正则概述;
- manager - all (默认) 或软件包管理器;
- format - full (默认) 或 short.
注释:
- 列出(按字母顺序)名称匹配给定正则概述的已安装软件包(all 列出所有);
- 支持的软件包管理器(执行的命令):
dpkg (dpkg --get-selections)
pkgtool (ls /var/log/packages)
rpm (rpm -qa)
pacman (pacman -Q)
portage - 如果
format指定为 full,软件包按软件包管理器分组(每个管理器在单独的行上,以方括号中的名称开头); - 如果
format指定为 short,软件包不分组,并在一行中列出。
示例:
system.sw.packages[mini,dpkg,short] → python-minimal, python2.6-minimal, ubuntu-minimal
system.sw.packages.get[<正则表达式>,<管理器>]
已安装软件包的详细列表。
返回值:JSON object。
支持的平台:Linux。
参数:
- regexp - all(默认)或一个正则表达式 概述;
- manager - all(默认)或一个软件包管理器(可选值:rpm、dpkg、pkgtool、pacman 或 portage)。
备注:
- 返回未格式化的 JSON,包含名称匹配给定正则表达式的已安装软件包;
- 输出是一个 array,其中每个 objects 包含以下键:name、manager、version、size、architecture、buildtime 和 installtime(参见 more details)。
system.swap.in[<device>,<type>]
交换入(从设备到memory)统计。
返回值:integer。
支持平台: Linux, FreeBSD, OpenBSD.
参数:
- device - 指定用于交换的设备(仅Linux)或all(默认);
- type - 可选值:count(交换入次数,非Linux平台默认),sectors(交换入扇区数),或pages(交换入页数,Linux平台默认)。
注释:
- 该信息的来源为:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6) - 注意pages仅在未指定设备时有效;
- sectors类型参数仅在Linux上支持。
示例:
system.swap.in[,pages]
system.swap.out[<device>,<type>]
交换出(从memory到设备)的统计信息。
返回值:integer。
支持的平台: Linux, FreeBSD, OpenBSD.
参数:
- device - 指定用于交换的设备(仅限Linux)或all(默认);
- type - 可选值:count(交换出次数,非Linux平台默认),sectors(交换出的扇区数),或pages(交换出的页数,Linux平台默认)。
注释:
- 该信息的来源为:
/proc/swaps,/proc/partitions,/proc/stat(Linux 2.4)/proc/swaps,/proc/diskstats,/proc/vmstat(Linux 2.6) - 注意,pages仅在未指定设备时有效;
- sectors类型参数仅在Linux上支持。
示例:
system.swap.out[,pages]
system.swap.size[<device>,<type>]
交换空间大小(以字节或占总空间的百分比表示)。
返回值:integer - 字节单位;float - 百分比单位。
支持平台: Linux, FreeBSD, Solaris, AIX, OpenBSD.
参数:
- device - 指定用于交换的设备(仅FreeBSD)或all(默认值);
- type - 可选值:free(空闲交换空间,默认值),pfree(空闲交换空间百分比),pused(已用交换空间百分比),total(总交换空间),或used(已用交换空间)。
注释:
- 注意在Windows系统上,当交换空间为0时,pfree和pused不被支持;
- 若未指定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.
在配置中,使用s或uptime单位将get转换为可读值。
系统用户数
当前登录用户的数量。
返回值:integer。
参见 支持的平台。
who 命令在 agent 端使用以获取该值。
vfs.dev.discovery
块设备列表及其类型.
用于低级发现.
返回值: JSON object.
支持的平台: Linux.
vfs.dev.read[<device>,<type>,<mode>]
磁盘读取统计信息.
返回值: integer - 包含type的sectors, operations, bytes; float - 包含type的sps, ops, bps.
支持平台: Linux, FreeBSD, Solaris, AIX, OpenBSD.
参数:
- device - 磁盘设备(默认为all 3);
- type - 可选值: sectors, operations, bytes, sps, ops, 或bps (sps, ops, bps分别代表: 每秒扇区数, 每秒操作数, 每秒字节数);
- mode - 可选值: avg1 (一分钟平均值, 默认), avg5, 或avg15.
该参数仅在
type为: sps, ops, bps时支持.
注释:
- 如果使用update间隔为三小时或更长2, 该监控项将始终返回'0';
- sectors和sps类型参数仅在Linux上支持;
- ops类型参数仅在Linux和FreeBSD上支持;
- bps类型参数仅在FreeBSD上支持;
- bytes类型参数仅在FreeBSD, Solaris, AIX, OpenBSD上支持;
mode参数仅在Linux, FreeBSD上支持;- 可以使用相对设备名称(例如
sda)以及可选的/dev/前缀(例如/dev/sda); - 支持LVM逻辑卷;
- 不同操作系统'类型'参数的默认值:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - 在支持的平台上sps, ops和bps最多支持1024个设备(1023个独立设备和1个all).
示例:
vfs.dev.read[,operations]
vfs.dev.write[<device>,<type>,<mode>]
磁盘写入统计。
返回值:integer - 包含type的sectors、operations、bytes;float - 包含type的sps、ops、bps。
支持平台: Linux、FreeBSD、Solaris、AIX、OpenBSD。
参数:
- device - 磁盘设备(默认为all 3);
- type - 可选值:sectors、operations、bytes、sps、ops或bps(sps、ops、bps分别代表:每秒扇区数、每秒操作数、每秒字节数);
- mode - 可选值:avg1(一分钟平均值,默认)、avg5或avg15。
此参数仅在
type为sps、ops、bps时支持。
注释:
- 如果使用update间隔为三小时或更长2,此监控项将始终返回'0';
- sectors和sps类型参数仅在Linux上支持;
- ops类型参数仅在Linux和FreeBSD上支持;
- bps类型参数仅在FreeBSD上支持;
- bytes类型参数仅在FreeBSD、Solaris、AIX、OpenBSD上支持;
mode参数仅在Linux、FreeBSD上支持;- 可以使用相对设备名称(例如
sda)以及可选的/dev/前缀(例如/dev/sda); - 支持LVM逻辑卷;
- 不同操作系统'类型'参数的默认值:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - 在支持的平台上,sps、ops和bps最多支持1024个设备(1023个独立设备和1个all)。
示例:
vfs.dev.write[,operations]
vfs.dir.count[dir,<regex incl>,<regex excl>,<types incl>,<types excl>,<max depth>,<min size>,<max size>,<min age>,<max age>,<regex excl dir>]
目录条目计数。
返回值:integer。
参见支持的平台。
参数:
- 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 incl和types 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 incl和regex 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 incl和types 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 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] #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权限的目录会计算包括内容在内的大小。
- 对于大型目录或慢速驱动器,由于agent和server/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 - 当mode为crc32时,string - 当mode为md5或sha256时。
参见支持的平台。
参数:
- file - file的完整路径;
- mode - crc32(默认)、md5或sha256。
file的大小限制取决于large file support。
示例:
vfs.file.cksum[/etc/passwd]
返回值的示例(分别为crc32/md5/sha256):
675436101
9845acf68b73991eb7fd7ee0ded23c44
ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc
vfs.file.contents[file,<encoding>]
参数:
- 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的最后一行).
注释:
- file的大小限制取决于large file support.
- 忽略字节顺序标记(BOM).
示例:
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(默认)、free、used、pfree(空闲百分比)或 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方案:http、https4。 未指定协议时默认使用http。 若指定URL,则path和port必须为空。 为需要认证的服务器指定用户名/密码(例如:http://user:[email protected])仅在使用cURL支持时可用4。 主机名支持Punycode。 - path - HTML文档路径(默认为/);
- port - 端口号(HTTP默认为80)
注释:
- 当
host中指定的资源不存在或不可用时,该监控项将转为不支持状态; host可以是主机名、域名、IPv4或IPv6地址。 但对于IPv6地址,Zabbix agent必须启用IPv6支持编译。
示例:
web.page.get[www.example.com,index.php,80]
web.page.get[https://www.example.com]
web.page.get[https://blog.example.com/?s=zabbix]
web.page.get[localhost:80]
web.page.get["[::1]/server-status"]
web.page.perf[host,<path>,<port>]
完整网页加载时间(以秒为单位)。
返回值:float。
参见支持平台。
参数:
- 主机 - 主机名或URL(格式为
scheme://host:port/path,其中仅主机为必填项)。 允许的URL方案:http、https4。 未指定方案时将默认为http。 若指定URL,则path和port必须为空。 仅当支持cURL时4,可为需要认证的服务器指定用户名/密码,例如:http://user:[email protected]。 主机名支持Punycode编码。 - path - HTML文档路径(默认为/);
- port - 端口号(HTTP默认为80)
注释:
- 当
host中指定的资源不存在或不可用时,此监控项将转为不支持状态; host可以是主机名、域名、IPv4或IPv6地址。 但对于IPv6地址,Zabbix agent必须启用IPv6支持编译。
示例:
web.page.perf[www.example.com,index.php,80]
web.page.perf[https://www.example.com]
web.page.regexp[host,<path>,<port>,regexp,<length>,<output>]
在网页上查找一个string.
返回值: 匹配到的string, 或由可选的output参数指定.
参见支持的平台.
参数:
- 主机 - 主机名或URL(作为
scheme://host:port/path, 其中只有主机是必填项). 允许的URL方案: http, https4. 缺失的方案将被视为http. 如果指定了URL, 则path和port必须为空. 为需要认证的服务器指定用户名/密码, 例如:http://user:[email protected]仅在支持cURL时可用4. 主机名支持Punycode编码. - path - HTML文档的路径(默认为/);
- port - 端口号(HTTP默认为80)
- regexp - 描述所需模式的正则概述;
- length - 返回的最大字符数;
- output - 可选的输出格式化模板. 转义序列\0会被替换为匹配的文本部分(从匹配开始的第一个字符到匹配结束的字符), 而\N(N=1...9)转义序列会被替换为第N个匹配组(如果N超过捕获组数量则返回空string).
注释:
- 如果
host中指定的资源不存在或不可用, 此监控项将变为不支持状态; host可以是主机名、域名、IPv4或IPv6地址. 但对于IPv6地址, Zabbix agent必须编译时启用IPv6支持.- 使用
output参数的内容提取发生在agent上.
示例:
web.page.regexp[www.example.com,index.php,80,OK,2]
web.page.regexp[https://www.example.com,,,OK,2]
agent.hostmetadata
agent 主机 的元数据。
返回值:string。
参见 支持的平台。
返回 主机元数据 或 主机元数据项 参数的值,如果均未定义,则返回空的 string。
agent.hostname
agent 主机名 的说明。
返回值:string。
参见 支持的平台。
返回值说明:
- 作为被动检查时 - 返回配置文件 agent 的 主机名 参数中列出的第一个 主机 的名称;
- 作为主动检查时 - 返回当前主机名。
agent.ping
agent 可用性检查。
返回值:无 - 不可用;1 - 可用。
请参阅 支持的平台。
使用 nodata() 触发器函数来检查 主机 不可用情况。
agent.variant
Zabbix agent 的变体(Zabbix agent 或 Zabbix agent 2)。
返回值:1 - Zabbix agent;2 - Zabbix agent 2。
请参阅 支持的平台。
agent.version
version的Zabbix agent功能.
返回值: string.
参见支持的平台.
返回值示例:
6.0.3
zabbix.stats[<ip>,<port>]
远程返回一组Zabbix server或proxy内部指标.
返回值: JSON object.
参见支持的平台.
参数:
- ip - 要远程查询的服务器/proxies的IP/DNS/网络掩码列表(默认为127.0.0.1);
- port - 要远程查询的server/proxy端口(默认为10051)
注释:
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系统上,回环接口不支持bytes和errors值,因为内核不存储和/或报告字节、错误和利用率统计信息
但如果您通过net-snmp监控Solaris系统,可能会返回值,因为net-snmp包含可追溯至1997年的cmu-snmp遗留代码,在无法从接口统计信息读取字节值时,会返回数据包计数器(回环接口上确实存在)乘以任意值308
这是假设数据包平均长度为308个八位字节,这个估算非常粗略,因为Solaris系统上回环接口的MTU限制为8892字节
这些值不应被视为正确或接近准确,它们只是猜测值
Zabbix agent不会进行任何猜测工作,但net-snmp会返回这些字段的值
6 从/proc/pid/psinfo获取的Solaris命令行限制为80字节,并包含进程启动时的命令行
7 vfs.file.contents[]、vfs.file.regexp[]、vfs.file.regmatch[] 监控项可用于检索file内容
如果要限制对包含敏感信息的特定文件的访问,请run一个对这些文件没有查看权限的用户来运行Zabbix agent
命令行工具的使用
请注意 当通过命令行使用zabbix_agentd或zabbix_get测试或使用监控项键时 您还需要考虑shell语法.
例如 如果某个键参数需要用双引号括起来 您必须显式地转义双引号 否则它们会被shell作为特殊字符截断 而不会被传递给Zabbix工具.
示例:
zabbix_agentd -t 'vfs.dir.count[/var/log,,,"file,dir",,0]'
zabbix_agentd -t vfs.dir.count[/var/log,,,\"file,dir\",,0]
编码设置
为确保获取的数据未被损坏,您可以在encoding参数中指定正确的编码来处理检查(例如'vfs.file.contents')。
支持的编码列表(代码页标识符)可在libiconv(GNU项目)文档或Microsoft Windows SDK的"Code Page Identifiers"文档中找到。
请注意,微软有时会将某些代码页标记为"仅限托管应用程序使用"——即仅通过.NET运行时公开,而不通过原生Win32 API提供。Zabbix agent实现了自己的编码转换逻辑,因此即使原生Windows函数不提供这些代码页,Zabbix agent也支持它们。
如果未在encoding参数中指定编码,则应用以下解析策略:
- 如果未指定编码(或为空string),则假定为UTF-8,数据按"原样"处理;
- BOM分析 - 适用于监控项 'vfs.file.contents'、'vfs.file.regexp'、'vfs.file.regmatch'。 尝试通过使用file开头的字节顺序标记(BOM)来确定正确的编码。 如果不存在BOM - 则应用标准解析(见上文)。
故障排除 agent 监控项
对于被动检查,为防止监控项因服务器对agent的请求首先超时而无法get任何值,需注意以下事项:
- 当agent的version早于服务器version时,配置(或超时)中的Timeout值可能需要高于agent的configuration file中的
Timeout值。 - 当agent的version晚于服务器version时,服务器configuration file中的
Timeout值可能需要高于agent的configuration file中的Timeout值。