8 内部检查
概述
内部检查可用于监控 Zabbix 的内部进程。 换句话说,您可以监控 Zabbix 服务器或 Zabbix proxy 的运行情况。
内部检查的计算位置如下:
- 在 Zabbix 服务器上 - 如果主机由服务器监控
- 在 Zabbix proxy 上 - 如果主机由 proxy 监控
无论主机维护状态如何,内部检查都会由服务器或 proxy 处理。
要使用此监控项,请选择 Zabbix internal 监控项类型。
内部检查由 Zabbix poller 处理。
性能
使用某些内部监控项可能会对性能产生负面影响。 这些监控项包括:
zabbix[host,,items]zabbix[host,,items_unsupported]zabbix[hosts]zabbix[items]zabbix[items_unsupported]zabbix[queue,,]zabbix[requiredperformance]zabbix[stats,,,queue,,]zabbix[triggers]
支持的检查项
以下列出了不含可自定义参数和附加信息的监控项键。 单击监控项键可查看完整详细信息。
| 监控项键 | 描述 |
|---|---|
| zabbix[boottime] | Zabbix 服务器或 Zabbix proxy 进程的启动时间(秒)。 |
| zabbix[cluster,discovery,nodes] | 发现高可用集群节点。 |
| zabbix[connector_queue] | connector 队列中已入队的值的数量。 |
| zabbix[discovery_queue] | discovery 队列中已入队的网络检查数量。 |
| 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 组中在线 proxy 的数量。 |
| zabbix[proxy group,,pavailable] | proxy 组中在线 proxy 的百分比。 |
| zabbix[proxy group,,proxies] | proxy 组中的 Zabbix proxies 列表。 |
| zabbix[proxy group,,state] | proxy 组的状态。 |
| zabbix[proxy group,discovery] | 返回包含配置数据和实时数据的 proxy 组列表。 |
| zabbix[proxy_buffer,buffer,] | 返回 proxy 内存缓冲区使用情况统计信息。 |
| zabbix[proxy_buffer,state,changes] | 返回自启动以来磁盘/内存缓冲模式之间状态切换的次数。 |
| zabbix[proxy_buffer,state,current] | 返回当前用于存储新数据的工作状态。 |
| zabbix[proxy_history] | proxy history 表中等待发送到服务器的值的数量。 |
| zabbix[queue,,] | 队列中受监控监控项的数量,这些监控项的延迟至少为 <from> 秒,但小于 <to> 秒。 |
| zabbix[rcache,,] | Zabbix 配置缓存的可用性统计信息。 |
| zabbix[requiredperformance] | Zabbix 服务器或 Zabbix proxy 所需的性能,以预期每秒新值数表示。 |
| zabbix[stats,,] | 返回 Zabbix 服务器或 proxy 的内部指标。如果指定了 <ip> 和 <port>,则从远程实例获取指标;否则从本地实例获取。 |
| zabbix[stats,,,queue,,] | 返回 Zabbix 服务器或 proxy 的内部队列指标。如果指定了 <ip> 和 <port>,则从远程实例获取指标;否则从本地实例获取。 |
| zabbix[tcache,,] | Zabbix 趋势函数缓存的有效性统计信息。 |
| zabbix[triggers] | Zabbix 数据库中已启用触发器的数量,其中启用的主机上的所有监控项也均已启用。 |
| zabbix[uptime] | Zabbix 服务器或 proxy 进程的运行时间(秒)。 |
| zabbix[vcache,buffer,] | Zabbix 值缓存的可用性统计信息。 |
| zabbix[vcache,cache,] | Zabbix 值缓存的有效性统计信息。 |
| zabbix[version] | Zabbix 服务器或 proxy 的版本。 |
| zabbix[vmware,buffer,] | Zabbix vmware 缓存的可用性统计信息。 |
| zabbix[vps,written] | 写入数据库的历史值总数。 |
| zabbix[wcache,,] | Zabbix 写缓存的统计信息和可用性。 |
监控项键值详情
- 不带尖括号的参数为必填项,必须按原样使用(例如,
zabbix[host,<type>,available]中的“host”和“available”)。 - 带有尖括号 < > 的参数必须替换为有效值。 如果参数具有默认值,则可以省略。
- 标记为“not supported on proxy”的监控项和监控项参数,其值只有在主机由服务器监控时才能获取。 相反,标记为“not supported on server”的值,只有在主机由 proxy 监控时才能获取。
zabbix[boottime]
Zabbix 服务器或 Zabbix 代理进程的启动时间(以秒为单位)。
返回值:整数。
zabbix[cluster,discovery,nodes]
发现高可用集群节点。
返回值:JSON 对象。
说明:
- 此监控项可用于低级别发现。
- 返回的字段大多与高可用节点对象的属性一致。
- 附加字段:
db_timestamp— 响应中包含的当前服务器时间(Unix 时间戳)lastaccess_age— 自节点上次心跳以来的秒数(db_timestamp - lastaccess)status— 节点状态:- 0 — 备用
- 1 — 手动停止
- 2 — 不可用
- 3 — 活动
返回值示例:
[
{
"id": "ckvupihk70001z8mkpw5cg0u3",
"name": "zabbix-prod-01",
"status": 3,
"address": "10.0.4.12:10051",
"port": 10051,
"lastaccess": 1756115995,
"db_timestamp": 1756116000,
"lastaccess_age": 5
},
{
"id": "ckvx2a9k70004b1nq2hz9d7f",
"name": "zabbix-standby-02",
"status": 0,
"address": "10.0.4.13:10051",
"port": 10051,
"lastaccess": 1756115550,
"db_timestamp": 1756116000,
"lastaccess_age": 450
},
{
"id": "ckw0bq3l70007y4r1a0m5kz8",
"name": "zabbix-backup-eu1",
"status": 1,
"address": "backup.example.com:10051",
"port": 10051,
"lastaccess": 1756105080,
"db_timestamp": 1756116000,
"lastaccess_age": 10920
}
]
zabbix[connector_queue]
连接器队列中排队的值的数量。
返回值:整数。
zabbix[discovery_queue]
发现队列中排队的网络检查数量。
返回值:整数。
zabbix[host,,items]
主机上启用的监控项数(支持和不支持)。
返回值:整数。
zabbix[host,,items_unsupported]
主机上启用的不支持监控项的数量。
返回值:整数。
zabbix[host,,maintenance]
主机当前的维护状态。
返回值:0 - 正常状态;1 - 采集数据的维护状态;2 - 不采集数据的维护状态。
注释:
- 无论主机位于何处(在服务器上或在 proxy 上),该监控项始终由 Zabbix 服务器处理。
proxy 不会在配置数据中收到该监控项。 - 第二个参数必须为空,并保留供将来使用。
zabbix[host,active_agent,available]
检查主机上活动代理的可用性。
返回值:0 - 未知;1 - 可用;2 - 不可用。
zabbix[host,discovery,interfaces]
Zabbix 前端中主机的所有已配置接口的详细信息。
返回值:JSON 对象。
注释:
- 此项可用于 低级别自动发现;
- Zabbix 代理不支持此项。
zabbix[host,<type>,available]
主机上特定类型检查的主接口可用性。
返回值:0 - 未知;1 - 可用;2 - 不可用。
参数:
- type - agent、snmp、ipmi 或 jmx。
注释:
- 监控项值根据与主机不可达/不可用相关的配置参数计算。
zabbix[hosts]
受监控主机的数量。
返回值:整数。
zabbix[items]
启用的监控项数(支持和不支持)。
返回值:整数。
zabbix[items_unsupported]
不支持的监控项数。
返回值:整数。
zabbix[java,,<param>]
有关 Zabbix Java 网关的信息。
返回值:1 - 如果 <param> 为 ping;Java 网关版本 - 如果 <param> 为 version(例如:"8.0.0")。
参数:
- param - ping 或 version。
注释:
- 此监控项可用于使用
nodata()触发器函数检查 Java 网关的可用性。 - 第二个参数必须为空,并保留供将来使用。
zabbix[lld_queue]
低级发现处理队列中已入队的值的数量。
返回值:整数。
备注:
- 此监控项可用于监控低级发现处理队列的长度。
zabbix[preprocessing]
预处理管理器接收到的值的统计信息:
- queued - 需要预处理的排队值的数量和大小(计数器)
- direct - 不需要预处理的排队值的数量和大小(计数器)
- queue - 已进入预处理队列的值的数量(与
zabbix[preprocessing_queue]相同)
返回值:JSON。
返回值示例:
{"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> 状态所花费时间的百分比。
仅针对最近一分钟进行计算。
返回值:Float。
参数:
- type - 对于服务器进程:agent poller、alert manager、alert syncer、alerter、availability manager、browser poller、configuration syncer、configuration syncer worker、connector manager、connector worker、discovery manager、discovery worker、escalator、ha manager、history poller、history syncer、housekeeper、http agent poller、http poller、icmp pinger、internal poller ipmi manager、ipmi poller、java poller、lld manager、lld worker、odbc poller、poller、preprocessing manager、preprocessing worker、proxy group manager、proxy poller、self-monitoring、service manager、snmp poller、snmp trapper、task manager、timer、trapper、trigger housekeeper、unreachable poller、vmware collector;
对于proxy 进程:agent poller、availability manager、browser poller、configuration syncer、data sender、discovery manager、discovery worker、history syncer、housekeeper、http agent poller、http poller、icmp pinger、internal poller ipmi manager、ipmi poller、java poller、odbc poller、poller、preprocessing manager、preprocessing worker、self-monitoring、snmp poller、snmp trapper、task manager、trapper、unreachable poller、vmware collector; - mode - avg - 给定类型所有进程的平均值(默认);
count - 返回给定进程类型的 fork 数量,不应指定 <state>;
max - 最大值;
min - 最小值;
<process number> - 进程编号(介于 1 和预 fork 实例数量之间;例如,如果有 4 个 trapper 正在运行,则该值介于 1 到 4 之间); - state - busy - 进程处于忙碌状态,例如正在处理请求(默认);
idle - 进程处于空闲状态,未执行任何操作。
说明:
- 如果 <mode> 是一个未运行的 Zabbix 进程编号(例如,运行了 5 个 poller,但 <mode> 指定为 6),则此类监控项将变为不支持。
- 最小值和最大值指的是单个进程的使用百分比。
因此,如果一组 3 个 poller 中每个进程的使用百分比分别为 2、18 和 66,则 min 将返回 2,max 将返回 66。 - 进程会将其正在执行的操作报告到共享内存中,而 self-monitoring 进程每秒汇总一次这些数据。
状态变化(busy/idle)会在发生变化时登记——因此,一个进程变为 busy 时会登记为 busy,并且在变为 idle 之前不会更改或更新该状态。
这可确保即使是完全卡死的进程,也会被正确记录为 100% busy。 - 当前,“busy”表示“未休眠”,但未来可能会引入其他状态——例如等待锁、执行数据库查询等。
请注意,如果异步 poller 已达到 MaxConcurrentChecksPerPoller server/proxy 配置参数设置的限制,则会被视为 busy。 - 在 Linux 和大多数其他系统上,分辨率为 1/100 秒。
示例:
zabbix[process,poller,avg,busy] #最近一分钟内 poller 进程处于工作状态的平均时间
zabbix[process,"icmp pinger",max,busy] #最近一分钟内任意 ICMP pinger 进程处于工作状态的最长时间
zabbix[process,"history syncer",2,busy] #最近一分钟内编号为 2 的 history syncer 处于工作状态的时间
zabbix[process,trapper,count] #当前正在运行的 trapper 进程数量
zabbix[proxy,<name>,<param>]
有关 Zabbix proxy 的信息。
返回值:Integer。
参数:
- name - proxy 名称;
- param - lastaccess - 从 proxy 接收到的最后一条心跳消息的时间戳;
delay - 已采集值尚未发送的时长;计算方式为“proxy delay” + (“当前服务器时间” - “proxy lastaccess”),其中 “proxy delay” 是当前 proxy 时间与 proxy 上最早一条未发送值的时间戳之间的差值。
说明:
- 无论主机位于何处(在服务器上或在 proxy 上),该监控项始终由 Zabbix 服务器处理。
- 可使用
fuzzytime()函数检查 proxy 的可用性。
示例:
zabbix[proxy,"Germany",lastaccess] #从 "Germany" proxy 接收到的最后一条心跳消息的时间戳
zabbix[proxy,discovery]
Zabbix 代理列表,包括名称、模式、加密、压缩、版本、上次查看、主机数、监控项数、每秒所需值 (vps)、版本状态(当前/过时/不支持)、按监控项类型划分的超时、代理组名称(如果代理属于组)、状态(未知/离线/在线)。
返回值:JSON 对象。
zabbix[proxy group,<name>,available]
代理组中的在线代理数量。
返回值:Integer。
参数:
- name - 代理组名称。
zabbix[proxy group,<name>,pavailable]
代理组中的在线代理百分比。
返回值:Float。
参数:
- name - 代理组名称。
zabbix[proxy group,<name>,proxies]
代理组中的 Zabbix 代理列表,包括名称、模式、加密、压缩、版本、上次查看、主机数、监控项数、每秒所需值 (vps)、版本状态(当前/过时/不支持)、超时、代理组名称、状态(未知/离线/在线)。
返回值:JSON。
参数:
- name - 代理组名称。
zabbix[proxy group,<name>,state]
代理组的状态。
返回值:0 - 未知;1 - 离线;2 - 恢复中;3 - 在线;4 - 降级。
参数:
- name - 代理组名称。
zabbix[proxy group,discovery]
返回包含配置数据和实时数据的 proxy 组列表。
配置数据包括 proxy 组名称、故障转移延迟以及所需的最少在线 proxy 数量。
实时数据包括 proxy 组状态(详见注释)、在线 proxy 数量以及在线 proxy 的百分比。
返回值:JSON。
注释:
- 此监控项不返回未分组的 proxy。
- 如果 "failover_delay" 或 "min_online" 的值无效,则会报告特殊值 -1 以表示该情况。 如果配置中使用了宏,而这些宏无法展开为有效值,则可能会出现无效值。
- proxy 组状态以整数形式报告: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 内存缓冲区使用统计。
返回值:Integer(大小);Float(百分比)。
参数:
- mode:total - 缓冲区总大小(可用于检查是否启用了内存缓冲区);
free - 空闲缓冲区大小;
pfree - 空闲缓冲区百分比;
used - 已用缓冲区大小;
pused - 已用缓冲区百分比。
说明:
- 当内存缓冲区被禁用时,返回“Proxy memory buffer is disabled”错误;
- 此监控项在 Zabbix 服务器上不受支持。
zabbix[proxy_buffer,state,changes]
返回自启动以来磁盘/内存缓冲区模式之间的状态变化次数。
返回值:整数;0 - 内存缓冲区已禁用。
注释:
- 频繁的状态变化表明必须增加内存缓冲区的大小或使用期限;
- 如果不频繁监控内存缓冲区状态(例如,每分钟一次),则缓冲区可能会在未注册的情况下翻转其状态。
zabbix[proxy_buffer,state,current]
返回当前正在存储新数据的工作状态。
返回值:0 - 磁盘;1 - 内存。
注释:
- 当内存缓冲区被禁用时,也会返回“0”。
zabbix[proxy_history]
proxy 历史记录表中等待发送到服务器的值的数量。
返回值:整数。
注释:
- 此监控项在 Zabbix 服务器上不受支持。
zabbix[queue,<from>,<to>]
队列中延迟至少 <from> 秒但小于 <to> 秒的受监控监控项数量。
返回值:Integer。
参数:
- from - 至少延迟多久(默认值为 6 秒);
- to - 最多延迟多久(默认值为无穷大)。
说明:
- 参数支持时间后缀(s、m、h、d、w)。
Zabbix proxy 无法感知维护时段;详情请参见维护期间队列的计算。
zabbix[rcache,<cache>,<mode>]
Zabbix 配置缓存的可用性统计信息。
返回值:Integer(表示大小);Float(表示百分比)。
参数:
- cache - buffer;
- mode - total - 缓冲区的总大小
free - 可用缓冲区的大小
pfree - 可用缓冲区的百分比
used - 已使用缓冲区的大小
pused - 已使用缓冲区的百分比
zabbix[requiredperformance]
Zabbix 服务器或 Zabbix proxy 的所需性能,以预期的每秒新值数量表示。
返回值:Float。
注释:
- 大致对应于 报告 > 系统信息 中的“所需服务器性能,每秒新值数”。
zabbix[stats,<ip>,<port>]
返回 Zabbix 服务器或 proxy 的内部指标。如果指定了 <ip> 和 <port>,则从远程实例获取指标;否则,从本地实例获取。
返回值:JSON 对象。
参数:
- ip - 要远程查询的服务器/proxy 的 IP/DNS/网络掩码列表(默认值为 127.0.0.1);
- port - 要远程查询的服务器/proxy 端口(默认值为 10051)。
说明:
- stats 请求仅会接受来自目标实例中 'StatsAllowedIP' server/proxy 参数所列地址的请求。
- 此监控项会返回一组选定的内部指标。
有关详细信息,请参见 Zabbix 统计信息的远程监控。
zabbix[stats,<ip>,<port>,queue,<from>,<to>]
返回 Zabbix 服务器或 proxy 的内部队列指标(参见 zabbix[queue,<from>,<to>])。如果指定了 <ip> 和 <port>,则从远程实例获取指标;否则,从本地实例获取。
返回值:JSON 对象。
参数:
- ip - 要远程查询的服务器/proxy 的 IP/DNS/网络掩码列表(默认值为 127.0.0.1);
- port - 要远程查询的服务器/proxy 端口(默认值为 10051);
- from - 至少延迟多久(默认值为 6 秒);
- to - 最多延迟多久(默认值为无穷大)。
说明:
- 统计请求仅会从目标实例中 'StatsAllowedIP' server/proxy 参数列出的地址接受。
- 此监控项会返回一组选定的内部指标。
有关详细信息,请参见 Remote monitoring of Zabbix stats。
Zabbix proxy 无法感知维护时间段;详情请参见 Calculation of queues during maintenance。
zabbix[tcache,cache,<parameter>]
Zabbix 趋势函数缓存的有效性统计。
返回值:Integer(用于大小);Float(用于百分比)。
参数:
- parameter - all - 缓存请求总数(默认);
hits - 缓存命中次数;
phits - 缓存命中百分比;
misses - 缓存未命中次数;
pmisses - 缓存未命中百分比;
items - 已缓存监控项的数量;
requests - 已缓存请求的数量;
pitems - 已缓存监控项占已缓存监控项与请求总和的百分比。 较低的百分比很可能意味着可以减小缓存大小。
注释:
- 此监控项在 Zabbix proxy 上不受支持。
zabbix[triggers]
Zabbix 数据库中已启用触发器的数量,且这些触发器所在的已启用主机上的所有监控项也均已启用。
返回值:Integer。
说明:
- 此监控项在 Zabbix proxy 上不受支持。
zabbix[uptime]
Zabbix 服务器或代理进程的正常运行时间(以秒为单位)。
返回值:整数。
zabbix[vcache,buffer,<mode>]
Zabbix 值缓存的可用性统计信息。
返回值:Integer(用于大小);Float(用于百分比)。
参数:
- mode - total - 缓冲区总大小;
free - 空闲缓冲区大小;
pfree - 空闲缓冲区百分比;
used - 已用缓冲区大小;
pused - 已用缓冲区百分比。
注释:
- 此监控项在 Zabbix proxy 上不受支持。
zabbix[vcache,cache,<parameter>]
Zabbix 值缓存的有效性统计。
返回值:Integer。
如果将 <parameter> 设置为 mode,则返回值为:0 - 正常模式;1 - 低内存模式。
参数:
- parameter - requests - 请求总数;
hits - 缓存命中次数(从缓存中获取的历史值);
misses - 缓存未命中次数(从数据库中获取的历史值);
mode - 值缓存的运行模式。
注释:
- 一旦切换到低内存模式,即使触发该模式的问题更早得到解决,值缓存也会在此状态下保持 24 小时。
- 您可以将此键与 Change per second 预处理步骤一起使用,以获取每秒值数统计。
- 此监控项在 Zabbix proxy 上不受支持。
zabbix[version]
Zabbix 服务器或 proxy 的版本。
返回值:String。例如:8.0.0。
zabbix[vmware,buffer,<mode>]
Zabbix vmware 缓存的可用性统计信息。
返回值:Integer(用于大小);Float(用于百分比)。
参数:
- mode - total - 缓冲区的总大小
free - 可用缓冲区的大小
pfree - 可用缓冲区的百分比
used - 已使用缓冲区的大小
pused - 已使用缓冲区的百分比
zabbix[vps,written]
写入数据库的历史值总数。
返回值:整数。
zabbix[wcache,<cache>,<mode>]
Zabbix 写缓存的统计信息和可用性。
返回值:Integer(用于数量/大小);Float(用于百分比)。
参数:
- cache - values、history、index 或 trend;
- mode - (与 values 一起使用)all(默认)- Zabbix 服务器/proxy 处理的值总数,不包括不支持的监控项(计数器);
float - 已处理的浮点值数量(计数器);
uint - 已处理的无符号整数值数量(计数器);
str - 已处理的字符/字符串值数量(计数器);
log - 已处理的日志值数量(计数器);
text - 已处理的文本值数量(计数器);
bin - 已处理的二进制值数量(计数器);
json - 已处理的 JSON 值数量(计数器);
not supported - 监控项处理导致监控项变为不支持状态或保持该状态的次数(计数器);
(与 history、index、trend 缓存一起使用)pfree(默认)- 空闲缓冲区的百分比;
total - 缓冲区总大小;
free - 空闲缓冲区大小;
used - 已用缓冲区大小;
pused - 已用缓冲区的百分比。
注释:
trend缓存参数不支持 Zabbix proxy。- 历史缓存用于存储监控项值。 较低的数值表示数据库端存在性能问题。
- 历史索引缓存用于为存储在历史缓存中的值建立索引。
- 在历史缓存被填满后再清空时,历史索引缓存仍会保留部分数据。 这是预期行为,它通过避免因持续调整内存大小而需要的额外处理,帮助系统更高效地运行。
- 趋势缓存存储当前小时内所有接收数据的监控项的聚合值。
- 您可以将 zabbix[wcache,values] 键与 Change per second 预处理步骤一起使用,以获取每秒值数统计信息。