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 server 或 Zabbix proxy 进程启动时间。
返回值:integer

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]


连接器队列中排队的值的数量。
返回值:integer

Zabbix[discovery_queue]


发现队列中已排队的网络检查数量。
返回值: integer

zabbix[主机,,监控项]


在主机上启用的监控项(支持的和不支持的)数量。
返回值:integer

Zabbix[主机,,items_unsupported]


在 主机 上启用的不受支持的 监控项 数量。
返回值: integer

zabbix[host,,maintenance]


主机的当前维护状态。
返回值:0 - 正常状态;1 - 维护且进行数据采集;2 - 维护且不进行数据采集。

注释:

  • 无论主机位于何处(在服务器上还是在 proxy 上),此监控项始终由 Zabbix 服务器处理。 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 - 未知。

参数:

  • 类型 - agentsnmpipmijmx

备注:

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 - pingversion

注释:

  • 此 监控项 可以通过使用 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> 状态下所花费时间的百分比。 仅按最近一分钟计算。
返回值:Float

参数:

  • type - 对于 服务器进程agent polleralert manageralert synceralerteravailability managerbrowser pollerconfiguration syncerconfiguration syncer workerconnector managerconnector workerdiscovery managerdiscovery workerescalatorha manager自 Zabbix 7.0.5 起)、history pollerhistory syncerhousekeeperhttp agent pollerhttp pollericmp pingerinternal polleripmi 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 polleripmi 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)在发生变化时即被记录 - 因此,变为 busy 的进程会按 busy 进行记录,并且在变为 idle 之前不会改变或更新状态。 这可确保即使完全挂起的进程也会被正确记录为 100% busy。
  • 目前,"busy" 表示 "not sleeping",但未来可能会引入其他状态 - 等待锁、执行数据库查询等。 请注意,自 Zabbix 7.0.6 起,如果异步 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] #最近一分钟内 history syncer 编号 2 执行操作的时间
zabbix[process,trapper,count] #当前正在运行的 trapper 进程数量
zabbix[proxy,<name>,<param>]


有关 Zabbix proxy 的信息。
返回值:Integer

参数:

  • name - proxy 名称;
  • param - lastaccess - 从 proxy 收到的最后一条心跳消息的时间戳;
    delay - 已收集值未发送的时长;计算方式为“proxy 延迟” +(“当前服务器时间” - “proxy lastaccess”),其中“proxy 延迟”是当前 proxy 时间与 proxy 上最早未发送值的时间戳之间的差值。

注释:

  • 无论主机位于何处(在服务器上还是在 proxy 上),此监控项始终由 Zabbix 服务器处理。
  • fuzzytime() 函数可用于检查 proxy 的可用性。

示例:

zabbix[proxy,"Germany",lastaccess] #the timestamp of the last heartbeat message received from "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 group 列表。 配置数据包括 proxy group 名称、故障切换延迟以及所需的最少在线 proxy 数量。 实时数据包括 proxy group 状态(详情请参见注释)、在线 proxy 数量以及在线 proxy 的百分比。
返回值:JSON

注释:

  • 此监控项不会返回不属于任何组的 proxy。
  • 如果 "failover_delay" 或 "min_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 memory 缓冲区使用情况统计。
返回值:integer(用于大小);float(用于百分比)。

参数:

  • mode: total - 缓冲区总大小(可用于检查 memory 缓冲区是否启用);
    free - 空闲缓冲区大小;
    pfree - 空闲缓冲区百分比;
    used - 已使用缓冲区大小;
    pused - 已使用缓冲区百分比。

备注:

  • 当 memory 缓冲区被禁用时,返回 'Proxy memory 缓冲区被禁用' 错误;
  • 此 监控项 在 Zabbix server 上不受支持。
zabbix[proxy_buffer,state,changes]


返回自启动以来在磁盘/memory缓冲区模式之间的状态切换次数。
返回值:integer0 - 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 - 最多延迟(默认为无限)。

备注:

Zabbix proxy 不了解维护周期;详细信息请参见 维护期间队列计算

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


Zabbix configuration cache 的可用性统计信息。
返回值:integer(用于大小);float(用于百分比)。

参数:

  • cache - buffer
  • mode - total - 缓冲区的总大小;
    free - 空闲缓冲区的大小;
    pfree - 空闲缓冲区的百分比;
    used - 已使用缓冲区的大小;
    pused - 已使用缓冲区的百分比。
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 参数中列出的地址。
  • 此监控项返回一组选定的内部指标。 有关详细信息,请参见 Remote monitoring of 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 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 值缓存的有效性统计信息。
返回值:Integer。 如果 <parameter> 设置为 mode,则返回值为:0 - 正常模式;1 - 低内存模式。

参数:

  • parameter - requests - 请求总数;
    hits - 缓存命中次数(从缓存中获取的历史值);
    misses - 缓存未命中次数(从数据库中获取的历史值);
    mode - 值缓存的运行模式。

注释:

  • 一旦启用低内存模式,值缓存将保持该状态 24 小时,即使触发此模式的问题更早得到解决也是如此。
  • 你可以将此键与 Change per second 预处理步骤一起使用,以获取每秒值统计信息。
  • Zabbix proxy 不支持此监控项。
zabbix[version]


Zabbix 服务器或 proxy 的版本。
返回值: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 - valueshistoryindextrend
  • mode -(与 values 一起使用)all(默认)- Zabbix 服务器/proxy 处理的值总数,不包括不受支持的监控项(计数器);
    float - 处理的浮点值数量(计数器);
    uint - 处理的无符号整数值数量(计数器);
    str - 处理的字符/字符串值数量(计数器);
    log - 处理的日志值数量(计数器);
    text - 处理的文本值数量(计数器);
    bin - 处理的二进制值数量(计数器);
    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 预处理步骤一起使用,以获取每秒值统计信息。