8 内部检查

概述

内部检查允许监控 Zabbix 的内部进程。换句话说,您可以监控 Zabbix server或 Zabbix proxy的运行情况。

内部检查按以下方式计算:

  • 在 Zabbix server上 - 如果主机由服务器监控
  • 在 Zabbix 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]

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

支持的检查

监控项键名列出时未包含可定制参数和附加信息。请点击监控项键名以查看完整详情。

监控项键 描述
[zabbix\[boottime\]](#boottime) Zabbix server或Zabbix proxy进程的启动时间,以秒为单位。
[zabbix\[cluster,discovery,nodes\]](#cluster.discovery) 发现高可用性集群节点。
[zabbix\[connector_queue\]](#connector.queue) 连接器队列中排队的值的计数。
[zabbix\[discovery_queue\]](#discovery.queue) 发现队列中排队的网络检查的计数。
[zabbix\[host,,items\]](#host.items) 主机上的启用监控项(支持和不支持)的数量。
[zabbix\[host,,items_unsupported\]](#host.items.unsupported) 主机上的启用不支持监控项的数量。
[zabbix\[host,,maintenance\]](#maintenance) 主机当前的维护状态。
[zabbix\[host,active_agent,available\]](#active.available) 主机上主动agent检查的可用性。
[zabbix\[host,discovery,interfaces\]](#discovery.interfaces) Zabbix前端中主机配置的所有接口的详细信息。
[zabbix\[host,,available\]](#host.available) 特定类型检查的主机上主接口的可用性。
[zabbix\[hosts\]](#hosts) 受监控主机的数量。
[zabbix\[items\]](#items) 启用监控项(支持和不支持)的数量。
[zabbix\[items_unsupported\]](#items.unsupported) 不支持监控项的数量。
[zabbix\[java,,\]](#java) 关于Zabbix Java网关的信息。
[zabbix\[lld_queue\]](#lld.queue) 低级别发现处理队列中排队的值的计数。
[zabbix\[preprocessing\]](#preprocessing) 预处理管理器接收到的值的统计信息。
[zabbix\[preprocessing_queue\]](#preprocessing.queue) 预处理队列中排队的值的计数。
[zabbix\[process,,,\]](#process) 特定Zabbix进程或一组进程(通过<type>和<mode>识别)在<state>中花费的时间百分比。
[zabbix\[proxy,,\]](#proxy) 关于Zabbix proxy的信息。
[zabbix\[proxy,discovery\]](#proxy.discovery) Zabbix proxies的列表。
[zabbix\[proxy group,,available\]](#proxy.group.a) proxy组中在线proxy的数量。
[zabbix\[proxy group,,pavailable\]](#proxy.group.b) proxy组中在线proxy的百分比。
[zabbix\[proxy group,,proxies\]](#proxy.group.c) proxy组中Zabbix proxies的列表。
[zabbix\[proxy group,,state\]](#proxy.group.d) proxy组的状态。
[zabbix\[proxy group,discovery\]](#proxy.group.e) 返回带有配置数据和实时数据的proxy组列表。
[zabbix\[proxy_buffer,buffer,\]](#proxy.buffer.mode) 返回proxy内存缓冲区使用统计信息。
[zabbix\[proxy_buffer,state,changes\]](#proxy.state.changes) 返回自启动以来在磁盘/内存缓冲模式之间状态变化的次数。
[zabbix\[proxy_buffer,state,current\]](#proxy.state.current) 返回当前工作状态,其中新数据正在被存储。
[zabbix\[proxy_history\]](#proxy.history) proxy历史表中等待发送到服务器的值的数量。
[zabbix\[queue,,\]](#queue) 在队列中延迟至少<from>秒,但小于<to>秒的监控项的数量。
[zabbix\[rcache,,\]](#rcache) Zabbix配置缓存的可用性统计信息。
[zabbix\[requiredperformance\]](#required.performance) Zabbix server或Zabbix proxy的所需性能,以每秒新值为单位。
[zabbix\[stats,,\]](#stats) 远程Zabbix server或proxy的内部指标。
[zabbix\[stats,,,queue,,\]](#stats.queue) 远程Zabbix server或proxy的内部队列指标。
[zabbix\[tcache,,\]](#tcache) Zabbix趋势函数缓存的有效性统计信息。
[zabbix\[triggers\]](#triggers) Zabbix数据库中启用主机上所有监控项启用的触发器的数量。
[zabbix\[uptime\]](#uptime) Zabbix server或proxy进程的运行时间,以秒为单位。
[zabbix\[vcache,buffer,\]](#vcache) Zabbix值缓存的可用性统计信息。
[zabbix\[vcache,cache,\]](#vcache.parameter) Zabbix值缓存的有效性统计信息。
[zabbix\[version\]](#version) Zabbix server或proxy的版本。
[zabbix\[vmware,buffer,\]](#vmware) Zabbix vmware缓存的可用性统计信息。
[zabbix\[vps,written\]](#vps) 写入数据库的历史值的总数。
[zabbix\[wcache,,\]](#wcache) Zabbix写缓存的统计信息和可用性。

监控项键详细信息

  • 没有尖括号的参数是强制性的,必须按原样使用(例如,在zabbix[host,<type>,available]中的"host"和"available")。
  • 带有尖括号 < > 的参数必须用有效值替换。如果参数有默认值,可以省略。
  • 标记为"proxy不支持"的监控项和监控项参数的值只能在主机由server监控时获取。 相反,标记为"server不支持"的值只能在主机由proxy监控时获取。
zabbix[boottime]


Zabbix 服务器或 Zabbix 代理进程的启动时间(以秒为单位)。
返回值:整数

zabbix[cluster,discovery,nodes]


发现高可用性集群的节点。
返回值:JSON对象

注释:

  • 此监控项可用于低级别发现。
zabbix[connector_queue]


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

zabbix[discovery_queue]


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

zabbix[host,,items]


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

zabbix[host,,items_unsupported]


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

zabbix[host,,maintenance]


主机的当前维护状态。

返回值:0 - 正常状态;1 - 维护并收集数据;2 - 维护但不收集数据。

注释:

  • 无论主机位于何处(在服务器上还是代理上),Zabbix server始终会处理此监控项。代理不会接收带有配置数据的此监控项。
  • 第二个参数必须为空,并保留以备将来使用。
zabbix[host,active_agent,available]


检查主机上活动代理的可用性。
返回值:0 - 未知;1 - 可用;2 - 不可用。

zabbix[host,discovery,interfaces]


Zabbix 前端中主机的所有已配置接口的详细信息。

返回值:JSON 对象

注释:

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>是pingJava网关版本 - 如果<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>中花费的时间百分比。仅计算过去一分钟的数据。<type>的指定是必须的
返回值:Float

参数:

  • type - 对于server processesagent 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自Zabbix 7.0.5起),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 processesagent 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和预分叉实例的数量之间;例如,如果有4个trapper运行,值介于1到4之间);
  • state - busy - 进程处于忙碌状态,例如,正在处理请求(默认);
    idle - 进程处于空闲状态,无所事事。

注释:

  • 如果<mode>是未运行的Zabbix进程编号(例如,有5个poller运行时<mode>被指定为6),这样的监控项将变为不受支持。
  • 最小值和最大值指的是单个进程的使用百分比。因此,如果一组3个poller的每进程使用百分比分别为2、18和66,min将返回2,max将返回66。
  • 进程在共享内存中报告它们正在做什么,self-monitoring进程每秒汇总这些数据。状态变化(忙碌/空闲)在变化时注册 - 因此,当进程变得忙碌时,它会注册为忙碌状态,并且在变得空闲之前不会改变或更新状态。这确保了即使完全挂起的进程也会被正确注册为100%忙碌。
  • 目前,“忙碌”意味着“未在睡眠”,但未来可能会引入额外的状态 - 等待锁,执行数据库查询等。请注意,自Zabbix 7.0.6起,如果异步poller达到了由MaxConcurrentChecksPerPoller server/proxy配置参数设置的限制,则认为它们是忙碌的。
  • 在Linux和大多数其他系统上,分辨率是1/100秒。

示例:

zabbix[process,poller,avg,busy] #过去一分钟poller进程平均花费在做某事上的时间
       zabbix[process,"icmp pinger",max,busy] #过去一分钟任何ICMP pinger进程花费在做某事上的最大时间
       zabbix[process,"history syncer",2,busy] #过去一分钟历史同步器第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上最旧未发送值的时间戳之间的差值。

注释:

  • 此监控项始终由Zabbix server处理,无论主机位置(在server还是proxy)如何。
  • 可以使用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(用于百分比)。

参数:

  • modetotal - 缓冲区的总大小(可用于检查内存缓冲区是否启用);
    free - 空闲缓冲区的大小;
    pfree - 空闲缓冲区的百分比;
    used - 已使用缓冲区的大小;
    pused - 已使用缓冲区的百分比。

注释:

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


返回自启动以来磁盘/内存缓冲区模式之间的状态变化次数。
返回值:整数0 - 内存缓冲区已禁用。

注释:

  • 频繁的状态变化表明必须增加内存缓冲区的大小或使用期限;
  • 如果不频繁监控内存缓冲区状态(例如,每分钟一次),则缓冲区可能会在未注册的情况下翻转其状态。
zabbix[proxy_buffer,state,current]


返回当前正在存储新数据的工作状态。
返回值:0 - 磁盘;1 - 内存。

注释:

  • 当内存缓冲被禁用时,也会返回 "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 配置缓存的可用性统计信息。
返回值:Integer(表示大小);Float(表示百分比)。

参数:

  • cache - buffer;
  • mode - total - 缓冲区的总大小
    free - 可用缓冲区的大小
    pfree - 可用缓冲区的百分比
    used - 已使用缓冲区的大小
    pused - 已使用缓冲区的百分比
zabbix[requiredperformance]


Zabbix server 或 Zabbix proxy 所需的性能,以每秒新值的数量表示。
返回值:Float

注释:

  • 大致对应于 报表 → 系统信息 中的“所需服务器性能,每秒新值”。
zabbix[stats,<ip>,<port>]


远程 Zabbix 服务器或代理的内部指标。
返回值:JSON 对象

参数:

  • ip - 要远程查询的服务器/代理的 IP/DNS/网络掩码列表(默认值为 127.0.0.1);

  • port - 要远程查询的服务器/代理的端口(默认值为 10051)。

注释:

  • 仅接受来自目标实例上“StatsAllowedIP”server/proxy 参数中列出的地址的统计请求;
  • 此项返回一组选定的内部指标。有关详细信息,请参阅远程监控 Zabbix 统计信息
zabbix[stats,<ip>,<port>,queue,<from>,<to>]


远程Zabbix server或proxy的内部队列指标(参见zabbix[queue,<from>,<to>])。
返回值:JSON对象

参数:

  • ip - 要远程查询的server/proxy的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 - 缓存未命中的百分比;
    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 值缓存的有效性统计。
返回值:整数。使用 mode 参数返回:0 - 正常模式;1 - 低内存模式。

参数:

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

注释:

  • 一旦开启低内存模式,值缓存将保持此状态 24 小时,即使触发此模式的问题很快得到解决;
  • 您可以将此键与 每秒更改数 预处理步骤一起使用,以获取每秒值统计信息;
  • Zabbix 代理不支持此项。
zabbix[version]


Zabbix 服务器或代理的版本。
返回值:String。例如:7.0.0

zabbix[vmware,buffer,<mode>]


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

参数:

  • mode - total - 缓冲区的总大小
    free - 可用缓冲区的大小
    pfree - 可用缓冲区的百分比
    used - 已使用缓冲区的大小
    pused - 已使用缓冲区的百分比
zabbix[vps,written]


写入数据库的历史值总数。
返回值:整数

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


Zabbix 写入缓存的统计信息和可用性。
返回值:整数(表示数字/大小);浮点数(表示百分比)。

参数:

  • cache - 历史索引趋势
  • mode -(带有 valuesall(默认)- Zabbix 服务器/代理处理的值的总数,不支持的监控项除外(计数器)
    float - 处理的浮点值的数量(计数器)
    uint - 处理的无符号整数值的数量(计数器)
    str - 处理的字符/字符串值的数量(计数器)
    log - 处理的日志值的数量(计数器)
    text - 处理的文本值的数量(计数器)
    not supports - 监控项处理导致监控项变得不受支持或保持该状态的次数(计数器)
    (带有 historyindextrend 缓存)pfree(默认)- 可用缓冲区的百分比
    total - 缓冲区的总大小
    free - 可用缓冲区的大小
    used - 已用缓冲区的大小
    pused - 百分比使用的缓冲区

注释:

  • 必须指定 <cache>。Zabbix 代理不支持 trend 缓存参数;
  • 历史缓存用于存储j监控项值。数值较低表示数据库端存在性能问题;
  • 历史索引缓存用于索引存储在历史缓存中的值;
  • 历史缓存填满并清除后,历史索引缓存仍将保留一些数据。 此行为是预期行为,有助于系统更高效地运行,避免不断调整内存大小所需的额外处理;
  • 趋势缓存存储当前小时所有接收数据的j监控项的汇总;
  • 您可以将 zabbix[wcache,values] 键与 每秒更改 预处理步骤结合使用,以获取每秒值统计信息。