8 内部检查
概述
内部检查允许监控 Zabbix 的内部进程。换句话说, 你可以监控 Zabbix server 或 Zabbix proxy 的运行情况。
内部检查的执行方式如下:
- 在 Zabbix server 上 — 如果 主机 由服务器监控
- 在 Zabbix proxy 上 — 如果 主机 由 proxy 监控
无论 主机 的维护状态如何,内部检查均由 server 或 proxy 处理。
要使用此 监控项,请选择 Zabbix 内部 监控项 类型。
内部检查由 Zabbix 轮询器处理。
性能
使用某些内部 监控项 可能会对性能产生负面影响。这些 监控项 包括:
zabbix[host,,items]zabbix[host,,items_unsupported]zabbix[hosts]zabbix[items]zabbix[items_unsupported]zabbix[queue,,]zabbix[requiredperformance]zabbix[stats,,,queue,,]zabbix[triggers]
System information 和 Queue 前端部分也会受到影响。
支持的检查
监控项键值监控项列示时不包含可自定义参数和附加信息。点击监控项键值以查看完整详情。
| 监控项 键值 | 描述 |
|---|---|
| zabbix[boottime] | Zabbix server 或 Zabbix proxy 进程的启动时间,单位为秒。 |
| zabbix[cluster,discovery,nodes] | 发现 high availability cluster 节点。 |
| zabbix[connector_queue] | 连接器队列中入队值的数量。 |
| zabbix[discovery_queue] | 发现队列中已排队的网络检查数量。 |
| zabbix[host,,items] | 在 主机 上启用的 监控项(受支持和不受支持的)数量。 |
| zabbix[host,,items_unsupported] | 在 主机 上启用的不受支持的 监控项 数量。 |
| zabbix[host,,maintenance] | 主机 的当前维护状态。 |
| zabbix[host,active_agent,available] | 在 主机 上主动 agent 检查的可用性。 |
| zabbix[host,discovery,interfaces] | Zabbix前端中主机的所有已配置接口的详细信息。 |
| zabbix[host,,available] | 特定类型检查的主界面在 主机 上的可用性。 |
| zabbix[hosts] | 受监控的主机数量。 |
| zabbix[items] | 启用的 监控项 数量(支持的和不支持的)。 |
| zabbix[items_unsupported] | 不支持的 监控项 数量。 |
| zabbix[java,,] | 有关 Zabbix Java 网关的信息。 |
| zabbix[lld_queue] | 低级别自动发现处理队列中排队值的数量。 |
| zabbix[preprocessing] | 预处理管理器接收到的值的统计信息。 |
| zabbix[preprocessing_queue] | 预处理队列中入队值的数量。 |
| zabbix[process,,,] | 特定 Zabbix 进程或进程组(由 <type> 和 <mode> 标识)在 <state> 中花费的时间百分比。 |
| zabbix[proxy,,] | 关于Zabbix proxy的信息。 |
| zabbix[proxy,discovery] | Zabbix proxies 列表。 |
| zabbix[proxy group,,available] | proxy 组中的在线proxies数量。 |
| zabbix[proxy group,,pavailable] | 一个 proxy 组 中在线 proxies 的百分比。 |
| zabbix[proxy group,,proxies] | proxy 组 中的 Zabbix proxies 列表。 |
| zabbix[proxy group,,state] | 一个proxy 组的状态。 |
| zabbix[proxy group,discovery] | 返回包含配置数据和实时数据的proxy 组列表。 |
| zabbix[proxy_buffer,buffer,] | 返回 proxy memory 缓冲区使用情况统计信息。 |
| zabbix[proxy_buffer,state,changes] | 返回自启动以来在磁盘/memory缓冲模式之间状态更改的次数。 |
| zabbix[proxy_buffer,state,current] | 返回当前存储新数据的工作状态。 |
| zabbix[proxy_history] | 等待发送到服务器的proxy历史表中的值的数量。 |
| zabbix[queue,,] | 队列中被监控的监控项数量,其延迟至少为<from>秒,但小于<to>秒。 |
| zabbix[rcache,,] | Zabbix configuration cache 的可用性统计信息。 |
| zabbix[requiredperformance] | 每秒预期新增值的Zabbix server或Zabbix proxy所需性能。 |
| zabbix[stats,,] | 远程 Zabbix server 或 proxy 的内部指标。 |
| zabbix[stats,,,queue,,] | 远程 Zabbix server 或 proxy 的内部队列指标。 |
| zabbix[tcache,,] | Zabbix 趋势函数缓存的有效性统计。 |
| zabbix[triggers] | Zabbix数据库中启用的触发器数量,包含所有在启用的主机上启用的监控项。 |
| zabbix[uptime] | Zabbix server 或 proxy 进程的正常运行时间(以秒为单位)。 |
| zabbix[vcache,buffer,] | Zabbix value cache 的可用性统计信息。 |
| zabbix[vcache,cache,] | Zabbix value cache 的有效性统计。 |
| zabbix[version] | version 的 Zabbix server 或 proxy。 |
| zabbix[vmware,buffer,] | Zabbix vmware cache 的可用性统计信息。 |
| zabbix[vps,written] | 写入数据库的历史值总数。 |
| zabbix[wcache,,] | Zabbix 写入缓存的统计信息和可用性。 |
监控项键详情
- 不带尖括号的参数是必填项,必须按原样使用(例如,
zabbix[host,<type>,available]中的"主机"和"available")。 - 带尖括号< >的参数需替换为有效值。若参数存在默认值,则可省略。
- 标记为“proxy不支持”的监控项和监控项参数值,仅当主机由服务器监控时方可获取。 反之,标记为“服务器不支持”的值仅当主机由proxy监控时方可获取。
zabbix[boottime]
以秒为单位的 Zabbix server 或 Zabbix proxy 进程启动时间。
返回值:integer。
zabbix[cluster,discovery,nodes]
发现 high availability cluster 节点。
返回值:JSON object。
注释:
- 此 监控项 可用于低级别自动发现。
zabbix[connector_queue]
连接器队列中排队的值的数量。
返回值:integer。
Zabbix[discovery_queue]
发现队列中已排队的网络检查数量。
返回值: integer。
zabbix[主机,,监控项]
在主机上启用的监控项(支持的和不支持的)数量。
返回值:integer。
Zabbix[主机,,items_unsupported]
在 主机 上启用的不受支持的 监控项 数量。
返回值: integer。
zabbix[host,,maintenance]
主机的当前维护状态。
返回值:0 - 正常状态;1 - 带数据收集的维护状态;2 - 不带数据收集的维护状态。
注释:
- 无论主机位置如何(位于server 或 proxy上),此监控项始终由Zabbix server处理。proxy不会随配置数据接收此监控项。
- 第二个参数必须为空,并保留供将来使用。
zabbix[主机,active_agent,available]
关于agent检查在主机上的可用性。
返回值:0 - 未知;1 - 可用;2 - 不可用。
zabbix[主机,discovery,interfaces]
Zabbix前端中主机所有已配置接口的详细信息。
返回值:JSON object。
注释:
- 此监控项可在low-level discovery中使用。
- 此监控项在Zabbix proxy上不受支持。
zabbix[host,<type>,available]
特定类型检查的主接口在主机上的可用性。
返回值:0 - 不可用;1 - 可用;2 - 未知。
参数:
- 类型 - agent、snmp、ipmi 或 jmx。
备注:
- 监控项值是根据有关主机的配置参数计算得出的unreachability/unavailability。
zabbix[hosts]
监控的 主机 数量。
返回值:integer。
zabbix[items]
启用的 监控项(支持的和不支持的)数量。
返回值: integer。
Zabbix[items_unsupported]
不支持的 监控项 数量。
返回值: integer。
zabbix[java,,<param>]
有关 Zabbix Java 网关的信息。
返回值:1(如果 <param> 是 ping);Java 网关版本(如果 <param> 是 version)(例如:"7.0.0")。
参数:
- param - ping 或 version。
注释:
- 此 监控项 可以通过使用
nodata()触发器函数来检查 Java 网关的可用性。 - 第二个参数必须为空,保留供将来使用。
zabbix[lld_queue]
低级别自动发现处理队列中排队值的数量。
返回值:integer。
注释:
- 此监控项可用于监控低级别自动发现处理队列的长度。
zabbix[preprocessing]
预处理管理器接收到的值的统计信息:
- queued - 需要预处理的排队值的数量和大小(计数器)
- direct - 不需要预处理的排队值的数量和大小(计数器)
- queue - 预处理队列中入队值的数量(与
zabbix[preprocessing_queue]相同)
返回值:JSON。
此 监控项 自 Zabbix 7.0.12 起受支持。
返回值示例:
{"data":
{
"queued": {
"count": 106,
"size": 58620
},
"direct": {
"count": 395,
"size": 33843
},
"queue": 0
}
}
zabbix[preprocessing_queue]
预处理队列中入队值的数量。
返回值: integer.
备注:
- 此 监控项 可用于监控预处理队列长度。
zabbix[process,<type>,<mode>,<state>]
特定Zabbix进程或进程组(由<type>和<mode>标识)在<state>状态中所花费时间的百分比。仅针对最近一分钟进行计算。指定<type>是必填项。
返回值:float。
参数:
- type - 对于 服务器进程类型与线程:agent 轮询器、告警管理器、告警同步器、告警器、可用性管理器、浏览器轮询器、配置同步器、配置同步器工作进程、连接器管理器、连接器工作进程、发现管理器、发现工作进程、升级器、高可用管理器(自Zabbix 7.0.5)、历史轮询器、历史同步器、清理器、HTTP agent 轮询器、HTTP轮询器、ICMP Pinger、内部轮询器、IPMI管理器、IPMI轮询器、Java轮询器、LLD管理器、LLD工作进程、odbc 轮询器、轮询器、预处理管理器、预处理工作进程、proxy 组 管理器、proxy 轮询器、自监控、服务管理器、SNMP轮询器、SNMP陷阱接收器、任务管理器、定时器、陷阱接收器、触发器清理器、不可达轮询器、VMware收集器;
对于 proxy-进程类型与线程:agent 轮询器、可用性管理器、浏览器轮询器、配置同步器、数据发送器、发现管理器、发现工作进程、历史同步器、清理器、HTTP agent 轮询器、HTTP轮询器、ICMP Pinger、内部轮询器、IPMI管理器、IPMI轮询器、Java轮询器、odbc 轮询器、轮询器、预处理管理器、预处理工作进程、自监控、SNMP轮询器、SNMP陷阱接收器、任务管理器、陷阱接收器、不可达轮询器、VMware收集器; - mode - avg - 给定类型所有进程的平均值(默认);
count - 返回给定进程类型的fork数量,不应指定<state>;
max - 最大值;
min - 最小值;
<进程号> - 进程号(介于 1 和预fork实例的数量之间;例如,如果有 4 个陷阱接收器正在运行,该值介于 1 和 4 之间); - state - busy - 进程处于忙碌状态,例如正在处理请求(默认);
idle - 进程处于空闲状态,未执行任何操作。
备注:
- 如果 <mode> 是一个未运行的Zabbix进程号(例如,有 5 个轮询器运行,而 <mode> 被指定为 6),这样的 监控项 将变为不支持。
- 最小值和最大值指的是单个进程的使用百分比。因此,如果在一组 3 轮询器中,每个进程的使用百分比分别为 2、18 和 66,min 将返回 2,max 将返回 66。
- 进程在共享 memory 中报告它们正在执行的操作,自监控进程每秒汇总一次这些数据。状态更改(busy/idle)在更改时注册——因此,一个变为忙碌的进程会注册为忙碌状态,直到它变为空闲之前不会更改或 update 状态。这确保了即使完全挂起的进程也会被正确注册为100%忙碌。
- 当前,“busy”表示“未睡眠”,但在未来可能会引入其他状态——等待锁、执行数据库 queries 等。请注意,自Zabbix 7.0.6 起,如果异步轮询器达到了MaxConcurrentChecksPerPoller maxconcurrentchecksperpoller/maxconcurrentchecksperpoller 配置参数设置的限制,则认为其处于忙碌状态。
- 在Linux和大多数其他系统上,分辨率为 1/100 秒。
示例:
zabbix[process,poller,avg,busy] #轮询器进程在过去一分钟内执行某些操作的平均时间
zabbix[process,"icmp pinger",max,busy] #任何ICMP Pinger进程在过去一分钟内执行某些操作的最大时间
zabbix[process,"history syncer",2,busy] #历史同步器编号 2 在过去一分钟内执行某些操作的时间
zabbix[process,trapper,count] #当前运行的陷阱接收器进程数量
zabbix[proxy,<name>,<param>]
关于Zabbix proxy的信息。
返回值:integer。
参数:
- name - proxy的名称;
- param - lastaccess - 从proxy接收到的最后一条心跳消息的时间戳;
delay - 已收集但尚未发送的值的时间间隔;计算方式为"proxy延迟" + ("当前服务器时间" - "proxy最后访问时间"),其中"proxy延迟"是proxy当前时间和proxy上最旧未发送值的时间戳之间的差值。
备注:
- 无论主机的位置如何(位于server 或 proxy上),此监控项始终由Zabbix server处理。
- 可以使用
fuzzytime()函数来检查proxy的可用性。
示例:
zabbix[proxy,"Germany",lastaccess] #从"Germany"proxy接收到的最后一条心跳消息的时间戳
Zabbix[proxy,discovery]
列出包含名称、模式、加密方式、压缩方式、version、最后可见时间、主机数量、监控项数量、每秒所需值数(vps)、version状态(当前/过时/不受支持)、按监控项类型的超时情况、proxy 组名称(若proxy属于群组)、状态(未知/离线/在线)的Zabbix proxies列表。
返回值:JSON object。
Zabbix[proxy 组,<name>,available]
一个proxies的在线数量在proxy 组中。
返回值:integer。
参数:
- name - proxy 组的名称。
Zabbix[proxy 组,<name>,pavailable]
一个proxy 组中在线proxies的百分比。
返回值:float。
参数:
- name - proxy 组的名称。
Zabbix[proxy 组,<名称>,proxies]
列出指定名称的proxy 组中包含的Zabbix proxies列表,包含名称、模式、加密方式、压缩方式、version、最后可见时间、主机数量、监控项数量、每秒所需值数(vps)、version状态(当前/过时/不受支持)、超时设置、proxy 组名称及状态(未知/离线/在线)。
返回值类型:JSON。
参数说明:
- name - proxy 组名称。
Zabbix[proxy 组,<name>,state]
一个proxy 组的状态。
返回值:0 - 未知;1 - 离线;2 - 恢复中;3 - 在线;4 - 性能下降。
参数:
- name - proxy 组的名称。
zabbix[proxy group,discovery]
返回包含配置数据和实时数据的proxy 组列表。配置数据包括proxy 组名称、故障转移延迟以及所需的最小在线proxies数量。实时数据包括proxy 组状态(详见注释了解详细信息)、在线proxies的数量以及在线proxies的百分比。
返回值:JSON。
注释:
- 该监控项不返回未分组的proxies。
- 如果"failover_delay"或"min_online"的值无效,则会报告特殊值-1以表示此情况。当配置中使用宏且宏无法扩展为有效值时,可能会出现无效值。
- proxy 组状态以integer形式报告:0 - 未知;1 - 离线;2 - 恢复中;3 - 在线;4 - 性能下降。
返回值示例:
{
"groups": [
{ "name": "Riga", "failover_delay": 60, "min_online": 1 },
{ "name": "Tokyo", "failover_delay": 60, "min_online": 2 },
{ "name": "Porto Alegre", "failover_delay": 60, "min_online": 3 }
],
"details": {
"Riga": { "state": 3, "available": 10, "pavailable": 20 },
"Tokyo": { "state": 3, "available": 10, "pavailable": 20 },
"Porto Alegre": { "state": 1, "available": 0, "pavailable": 0 }
}
}
zabbix[proxy_buffer,buffer,<mode>]
proxy memory 缓冲区使用情况统计。
返回值:integer(用于大小);float(用于百分比)。
参数:
- mode: total - 缓冲区总大小(可用于检查 memory 缓冲区是否启用);
free - 空闲缓冲区大小;
pfree - 空闲缓冲区百分比;
used - 已使用缓冲区大小;
pused - 已使用缓冲区百分比。
备注:
- 当 memory 缓冲区被禁用时,返回 'Proxy memory 缓冲区被禁用' 错误;
- 此 监控项 在 Zabbix server 上不受支持。
zabbix[proxy_buffer,state,changes]
返回自启动以来在磁盘/memory缓冲区模式之间的状态切换次数。
返回值:integer;0 - memory缓冲区被禁用。
注释:
- 频繁的状态切换表明需要增加memory缓冲区的大小或年龄。
- 如果memory缓冲区状态被监控的频率较低(例如,每分钟一次),则缓冲区可能会在未被记录的情况下切换状态。
zabbix[proxy_buffer,state,current]
返回当前存储新数据的工作状态。
返回值:0 - 磁盘;1 - 内存。
备注:
- 当 memory 缓冲区被禁用时,也会返回 "0"。
zabbix[proxy_history]
等待发送到服务器的 proxy 历史表中的值的数量。
返回值:integer。
备注:
- 此 监控项 在 Zabbix server 上不受支持。
zabbix[queue,<from>,<to>]
队列中至少延迟 <from> 秒但少于 <to> 秒的受监控 监控项 数量。
返回值:integer。
参数:
- from - 至少延迟(默认为 6 秒);
- to - 最多延迟(默认为无限)。
备注:
- 参数中支持 Time suffixes(s,m,h,d,w)。
Zabbix proxy 不了解维护周期;详细信息请参见 维护期间队列计算。
zabbix[rcache,<cache>,<mode>]
Zabbix configuration cache 的可用性统计信息。
返回值:integer(用于大小);float(用于百分比)。
参数:
- cache - buffer;
- mode - total - 缓冲区的总大小;
free - 空闲缓冲区的大小;
pfree - 空闲缓冲区的百分比;
used - 已使用缓冲区的大小;
pused - 已使用缓冲区的百分比。
zabbix[requiredperformance]
每秒预期新增值数量下所需的Zabbix server或Zabbix proxy性能。
返回值: float.
注释:
- 与 Reports → System information 中的 "Required server performance, new values per second" 大致对应。
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的内部队列指标(参见zabbix[queue,<from>,<to>])。
返回值: JSON object.
参数:
- ip - 要远程查询的服务器/proxies的IP/DNS/网络掩码列表(默认为127.0.0.1);
- port - 远程查询的server/proxy端口(默认为10051);
- from - 至少延迟(默认为6秒);
- to - 最多延迟(默认为无限大)。
注释:
Zabbix proxy 不会感知维护周期;详情请参阅 维护期间队列计算。
zabbix[tcache,<cache>,<parameter>]
Zabbix趋势函数缓存的有效性统计。
返回值:integer(表示大小);float(表示百分比)。
参数:
- cache - buffer;
- parameter - all - 总缓存请求数(默认值);
hits - 缓存命中数;
phits - 缓存命中百分比;
misses - 缓存未命中数;
pmisses - 缓存未命中百分比;
监控项 - 已缓存的监控项数量;
requests - 已缓存的请求数;
pitems - 已缓存的监控项占(已缓存监控项 + 请求数)的百分比。低百分比很可能意味着可以减小缓存大小。
注释:
- 此监控项在Zabbix proxy上不受支持。
zabbix[triggers]
Zabbix数据库中启用的触发器数量,包含所有在启用的监控项上启用的主机。
返回值:integer。
评论:
- 此监控项在Zabbix proxy上不受支持。
zabbix[uptime]
Zabbix server或proxy进程运行时间的秒数。
返回值:integer。
zabbix[vcache,buffer,<mode>]
Zabbix value cache 的可用性统计信息。
返回值:integer(用于大小);float(用于百分比)。
参数:
- mode - total - 缓冲区的总大小;
free - 空闲缓冲区的大小;
pfree - 空闲缓冲区的百分比;
used - 已使用缓冲区的大小;
pused - 已使用缓冲区的百分比。
注释:
- 此 监控项 在 Zabbix proxy 上不受支持。
zabbix[vcache,cache,<parameter>]
Zabbix value cache的性能统计。
返回值:integer。使用mode参数返回:0 - 正常模式;1 - 低memory模式。
参数:
- parameter - requests - 请求总数;
hits - 缓存命中数(从缓存中获取的历史值);
misses - 缓存未命中数(从数据库中获取的历史值);
mode - value cache运行模式。
注释:
- 一旦切换到低memory模式,value cache将保持此状态24小时,即使触发此模式的问题已提前解决。
- 您可以将此键与每秒变化预处理步骤结合使用,以get每秒值统计。
- 此监控项在Zabbix proxy上不受支持。
zabbix[version]
Zabbix server或proxy的version。
返回值:string。例如:7.0.0。
zabbix[vmware,buffer,<mode>]
Zabbix vmware cache的可用性统计。
返回值:integer(用于大小);float(用于百分比)。
参数:
- mode - total - 缓冲区的总大小;
free - 空闲缓冲区的大小;
pfree - 空闲缓冲区的百分比;
used - 已使用缓冲区的大小;
pused - 已使用缓冲区的百分比。
zabbix[vps,written]
写入数据库的历史值总数。
返回值:integer。
zabbix[wcache,<cache>,<mode>]
Zabbix写缓存的统计信息和可用性。
返回值:integer(用于数字/大小);float(用于百分比)。
参数:
- cache - values、history、index 或 trend;
- mode -(当为 values 时)all(默认) - 由 Zabbix server/proxy 处理的值的总数,不包括变为不支持状态的 监控项(计数器);
float - 已处理的 float 值的数量(计数器);
uint - 已处理的无符号 integer 值的数量(计数器);
str - 已处理的字符/string 值的数量(计数器);
log - 已处理的日志值的数量(计数器);
text - 已处理的文本值的数量(计数器);
not supported - 监控项 处理导致 监控项 变为不支持状态或保持该状态的次数(计数器);
(当为 history、index、trend 缓存时)pfree(默认) - 缓冲区空闲百分比;
total - 缓冲区总大小;
free - 空闲缓冲区大小;
used - 已使用缓冲区大小;
pused - 已使用缓冲区百分比。
备注:
- 必须指定 <cache>。
trend缓存参数不支持与 Zabbix proxy 一起使用。 - history cache 用于存储 监控项值。数值较低表示数据库端存在性能问题。
- 历史 index cache 用于索引存储在 history cache 中的值。
- 当 history cache 被填满然后清空后,历史 index cache 仍会保留一些数据。 此行为是预期的,有助于系统通过避免频繁调整内存大小所需的额外处理来更高效地 run。
- trend cache 存储当前小时内所有接收数据的 监控项 的聚合数据。
- 您可以将 zabbix[wcache,values] 键与 每秒变化量 预处理步骤一起使用,以 get 每秒值变化的统计信息。