5 Zabbix 内部

概述

内部检查可用于监控 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] 连接器队列中排队的值数量。
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 proxy 列表。
zabbix[proxy group,,available] proxy 组中在线 proxy 的数量。
zabbix[proxy group,,pavailable] proxy 组中在线 proxy 的百分比。
zabbix[proxy group,,proxies] proxy 组中的 Zabbix proxy 列表。
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 历史表中等待发送到服务器的值数量。
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[host,<type>,available]


主机上特定检查类型的主接口可用性。
返回值:0 - 不可用;1 - 可用;2 - 未知。

参数:

  • type - agentsnmpipmijmx

注释:

zabbix[hosts]


受监控主机的数量。
返回值:整数

zabbix[items]


启用的监控项数(支持和不支持)。
返回值:整数

zabbix[items_unsupported]


不支持的监控项数。
返回值:整数

zabbix[java,,<param>]


有关 Zabbix Java 网关的信息。
返回值:1 - 如果 <param>pingJava gateway version - 如果 <param>version(例如:"7.4.0")。

参数:

  • param - pingversion

注释:

  • 此监控项可用于通过 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 polleralert manageralert synceralerteravailability managerbrowser pollerconfiguration syncerconfiguration syncer workerconnector managerconnector workerdiscovery managerdiscovery workerescalatorha managerhistory pollerhistory syncerhousekeeperhttp agent pollerhttp pollericmp pingerinternal poller ipmi manageripmi pollerjava pollerlld managerlld workerodbc pollerpollerpreprocessing managerpreprocessing workerproxy group managerproxy pollerself-monitoringservice managersnmp pollersnmp trappertask managertimertrappertrigger housekeeperunreachable pollervmware collector
    • 适用于 proxy 进程agent polleravailability managerbrowser pollerconfiguration syncerdata senderdiscovery managerdiscovery workerhistory syncerhousekeeperhttp agent pollerhttp pollericmp pingerinternal poller ipmi manageripmi pollerjava pollerodbc pollerpollerpreprocessing managerpreprocessing workerself-monitoringsnmp pollersnmp trappertask managertrapperunreachable pollervmware 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)在发生变化时即被记录 - 因此,某个变为忙碌的进程会被记录为忙碌,并且在变为空闲之前不会改变或更新该状态。
    这可确保即使完全卡死的进程也会被正确记录为 100% 忙碌。
  • 目前,"busy" 表示 "not sleeping",但未来可能会引入其他状态 - 例如等待锁、执行数据库查询等。
    请注意,如果异步 poller 已达到 MaxConcurrentChecksPerPoller 服务器/proxy 配置参数设置的上限,则会被视为忙碌。
  • 在 Linux 和大多数其他系统上,分辨率为 1/100 秒。

示例:

zabbix[process,poller,avg,busy] #最近一分钟内 poller 进程执行操作的平均时间
zabbix[process,"icmp pinger",max,busy] #最近一分钟内任意 ICMP pinger 进程执行操作的最长时间
zabbix[process,"history syncer",2,busy] #最近一分钟内 history syncer 2 号进程执行操作的时间
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] #the timestamp of the last heartbeat message received from "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 group 列表。 配置数据包括 proxy group 名称、故障切换延迟以及所需的最少在线 proxy 数量。 实时数据包括 proxy group 状态(详见注释)、在线 proxy 数量以及在线 proxy 百分比。
返回值:JSON

注释:

  • 此监控项不会返回不属于任何组的 proxy。
  • 如果 failover_delaymin_online 的值无效,则会报告一个特殊值 -1 以示说明。 如果使用宏进行配置,而宏无法展开为有效值,则可能会出现无效值。
  • proxy group 状态以整数表示: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 - 延迟至多为(默认值为无穷大)。

注释:

Zabbix proxy 不会感知维护期;详情请参见 Calculation of queues during maintenance

zabbix[rcache,<cache>,<mode>]


Zabbix 配置缓存的可用性统计信息。
返回值:Integer(表示大小);Float(表示百分比)。

参数:

  • cache - buffer
  • mode
    • total - buffer 的总大小;
    • free - 空闲 buffer 的大小;
    • pfree - 空闲 buffer 的百分比;
    • used - 已使用 buffer 的大小;
    • pused - 已使用 buffer 的百分比。
zabbix[requiredperformance]


Zabbix 服务器或 Zabbix proxy 所需的性能,表示预期每秒新增值的数量。
返回值:Float

注释:

  • 大致对应于 Reports > System information 中的“Required server performance, new values per second”。
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 stats 的远程监控
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 - 最多延迟(默认值为无限)。

注释:

  • stats 请求仅会接受来自目标实例上 StatsAllowedIP server/proxy 参数中列出的地址。
  • 此监控项返回一组选定的内部指标。 有关详细信息,请参见 Zabbix stats 的远程监控

Zabbix proxy 不感知维护期;有关详细信息,请参见 维护期间队列的计算

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。例如:7.4.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 - valueshistoryindextrend
  • mode
    • 对于 values 缓存参数:
      • all - Zabbix 服务器/proxy 处理的值总数,不包括不受支持的监控项(计数器)(默认);
      • float - 已处理的浮点值数量(计数器);
      • uint - 已处理的无符号整数值数量(计数器);
      • str - 已处理的字符/字符串值数量(计数器);
      • log - 已处理的日志值数量(计数器);
      • text - 已处理的文本值数量(计数器);
      • bin - 已处理的二进制值数量(计数器);
      • json - 已处理的 JSON 值数量(计数器);
      • not supported - 监控项处理结果变为不受支持或保持该状态的次数(计数器);
    • 对于 historyindextrend 缓存参数:
      • pfree - 空闲缓冲区百分比(默认);
      • total - 缓冲区总大小;
      • free - 空闲缓冲区大小;
      • used - 已用缓冲区大小;
      • pused - 已用缓冲区百分比。

注释:

  • Zabbix proxy 不支持 trend 缓存参数。
  • history 缓存用于存储监控项值。 数值较低表示数据库端存在性能问题。
  • history index 缓存用于对存储在 history 缓存中的值建立索引。
  • 在 history 缓存被填满然后清空后,history index 缓存仍会保留部分数据。 这是预期行为,通过避免不断调整内存大小所需的额外处理,可帮助系统更高效地运行。
  • trend 缓存存储所有接收数据的监控项当前小时的聚合数据。
  • 你可以将 zabbix[wcache,values] 键与 Change per second 预处理步骤一起使用,以获取每秒值统计信息。