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]

系统信息队列
前端部分也会受到影响。

支持的检查项

监控项键以不含可自定义参数和附加信息的形式列出。
点击监控项键可查看完整详情。

Item key Description
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(例如:"8.0.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> 状态下所花费时间的百分比。
仅按最近 1 分钟计算。
返回值: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,则最小值返回 2,最大值返回 66。
  • 进程会在共享内存中报告其正在执行的操作,而 self-monitoring 进程每秒汇总这些数据。
    状态变化(busy/idle)在发生变化时即被记录 - 因此,某个变为 busy 的进程会按 busy 进行记录,并且在变为 idle 之前不会改变或更新状态。
    这可确保即使完全卡死的进程也会被正确记录为 100% busy。
  • 目前,"busy" 表示 "not sleeping",但将来可能会引入其他状态 - 等待锁、执行数据库查询等。
    请注意,如果异步 poller 已达到 MaxConcurrentChecksPerPoller 服务器/proxy 配置参数设置的限制,则会被视为 busy。
  • 在 Linux 和大多数其他系统上,分辨率为 1/100 秒。

示例:

zabbix[process,poller,avg,busy] #最近 1 分钟内 poller 进程执行操作的平均时间
zabbix[process,"icmp pinger",max,busy] #最近 1 分钟内任意 ICMP pinger 进程执行操作的最长时间
zabbix[process,"history syncer",2,busy] #最近 1 分钟内编号为 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] #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 不会感知维护期;有关详细信息,请参见 维护期间队列的计算

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 object

参数:

  • ip - 要远程查询的服务器/proxy 的 IP/DNS/网络掩码列表(默认值为 127.0.0.1);
  • port - 要远程查询的服务器/proxy 的端口(默认值为 10051)。

注释:

  • stats 请求只会接受来自目标实例上 StatsAllowedIP 服务器/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 - 最多延迟(默认值为无限)。

注释:

  • 仅当请求来源地址列在目标实例的 StatsAllowedIP 服务器/proxy 参数中时,才会接受 stats 请求。
  • 此监控项返回一组选定的内部指标。 有关详细信息,请参见 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。例如: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 - 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 预处理步骤一起使用,以获取每秒值统计信息。