Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

8 内部检查

概述

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

被计算的内部检查:

  • 在 Zabbix server 上 - 主机是否被服务端监控
  • 在 Zabbix proxy 上 - 主机是否被代理端监控

内部检查在 server或者proxy上执行,无论主机是否处于维护状态。

要使用这个监控项,请选择 Zabbix internal 监控项类型。

内部检查是由 Zabbix 轮询进程(poller)处理。

支持的检查

  • 没有尖括号的参数为常量 - 比如, zabbix[host,<type>,available] 中的'host' 和 'available'。在监控项键值 原样 使用它们。
  • “代理端不支持” 的监控项和监控项参数的值只能在主机被服务端监控的情况下收集。反之亦然,“服务端不支持” 的值只能在主机被代理端监控的情况下收集。
键值
描述 返回值 注释
zabbix[boottime]
Zabbix server 或者 Zabbix proxy 进程启动的时间,单位是秒. 整数.
zabbix[cluster,discovery,nodes]
发现 高可用集群 节点. JSON. 这个监控项可以用在 LLD.
zabbix[history]
存储在 HISTORY 表中的值的数量. 整数. 这个监控项从 Zabbix 6.0 开始已经废弃.
如果使用了MySQL InnoDB, Oracle 或者 PostgreSQL 不要使用这个监控项!
(代理端不支持)
zabbix[history_log]
存储在 HISTORY_LOG 表中的值的数量. 整数. 这个监控项从 Zabbix 6.0 开始已经废弃.
如果使用了MySQL InnoDB, Oracle 或者 PostgreSQL 不要使用这个监控项!
(代理端不支持)
zabbix[history_str]
存储在 HISTORY_STR 表中的值的数量. 整数. 这个监控项从 Zabbix 6.0 开始已经废弃.
如果使用了MySQL InnoDB, Oracle 或者 PostgreSQL 不要使用这个监控项!
(代理端不支持)
zabbix[history_text]
存储在 HISTORY_TEXT 表中的值的数量. 整数. 这个监控项从 Zabbix 6.0 开始已经废弃.
如果使用了MySQL InnoDB, Oracle 或者 PostgreSQL 不要使用这个监控项!
(代理端不支持)
zabbix[history_uint]
存储在 HISTORY_UINT 表中的值的数量. 整数. 这个监控项从 Zabbix 6.0 开始已经废弃.
如果使用了MySQL InnoDB, Oracle 或者 PostgreSQL 不要使用这个监控项!
这个监控项从 Zabbix 1.8.3 开始支持.
(代理端不支持)
zabbix[host,,items]
主机上启用的监控项数量 (包含支持的和不支持的) . 整数. 这个监控项从 Zabbix 3.0.0 开始支持.
zabbix[host,,items_unsupported]
主机上启用的不支持的监控项数量. 整数. 这个监控项从 Zabbix 3.0.0 开始支持.*
zabbix[host,,maintenance]
当前主机的维护状态. 0 - 主机处于正常状态,
1 - 主机处于维护状态,并且在采集数据,
2 - 主机处于维护状态,但是不采集数据.
这个监控项总是由 Zabbix 服务端处理,而不管主机当前所处位置(在服务端或代理端上). 代理端将不会接收这个带有配置数据的监控项.
第二个参数必须为空,并保留以备将来使用.
zabbix[host,discovery,interfaces]
在 Zabbix 前端中主机所有配置接口的详细信息. JSON object. 这个监控项可以被用在 low-level discovery.
这个监控项从 Zabbix 3.4.0 开始支持.
(代理端不支持)
zabbix[host,<type>,available]
主机上特定类型检查的主接口的可用性. 0 - 不可用, 1 - 可用, 2 - 未知. 有效 类型 是:
agent, snmp, ipmi, jmx

监控项的值根据有关主机的 不可达/不可用配置参数计算.

这个监控项从 Zabbix 2.0.0 开始支持.
zabbix[hosts]
已监控的主机数量. 整数.
zabbix[items]
已启用的监控项数量 (支持的和不支持的). 整数.
zabbix[items_unsupported]
不支持的监控项数量. 整数.
zabbix[java,,<param>]
关于Zabbix Java网关的信息. 如果 <param> 是 ping, 则返回 "1" . 可以使用 nodata() 触发器函数检查Java网关可用性.

如果 <param> 是 version, 则返回 Java 网关的版本. 例如: "2.0.0".
param 的有效值是:
ping, version

第二个参数必须为空,并保留以备将来使用.
zabbix[lld_queue]
在 LLD 队列中排队的值. 整数. 这个监控项用来监控 LLD 的队列长度.

这个监控项从 Zabbix 4.2.0 开始支持.
zabbix[preprocessing_queue]
在预处理队列中排队的值的数量. 整数. 这个监控项用来监控预处理队列的长度.

这个监控项从 Zabbix 3.4.0 开始支持.
zabbix[process,<type>,<mode>,<state>]
一个特定Zabbix进程或一组进程(由 <type> 和 <mode> 标记)在 <state> 的时间,单位是百分比. 它只计算最后一分钟.

如果 <mode> 是未运行的Zabbix 进程号 (例如, <mode> 被指定为 6 的时候运行 5 个 poller), 这样的监控项将变成不支持的状态.
最小值和最大值是指单个进程的使用百分比. 因此,如果在一组3个 poller 中,每个进程的使用率分别为 2、18 和 66,最小值将返回 2,最大值将返回 66.
进程报告它们在共享内存中所做的事情,并且自我监控进程则每秒钟都会汇总这些数据. 状态改变(busy/idle)是在变化时记录的 - 因此,一个进程成为 busy 状态时会被记录之后不会改变或更新状态,直到它变成 idle 状态. 这将确保即使完全挂起的进程也将正确地记录为100% busy.
目前,"busy" 意味着 "not sleeping",但在未来可能会引入额外的状态 - 等待锁,执行数据库查询,等等.
在 Linux 和大多数系统上,解析度是 1/100 秒.
时间的百分比.
浮点值.
server processes支持的 类型:
alert manager, alert syncer, alerter, availability manager, configuration syncer, discoverer, escalator, history poller, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, lld manager, lld worker, odbc poller, poller, preprocessing manager, preprocessing worker, proxy poller, self-monitoring, snmp trapper, task manager, timer, trapper, unreachable poller, vmware collector

proxy processes支持的 类型:
availability manager, configuration syncer, data sender, discoverer, heartbeat sender, history poller, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, odbs poller, poller, preprocessing manager, preprocessing worker, self-monitoring, snmp trapper, task manager, trapper, unreachable poller, vmware collector

有效的 modes 有:
avg - 给定类型的所有进程的平均值(缺省值)
count - 返回给定类型进程 fork 出来的数量, <state> 不应该被指定
max - 最大值
min - 最小值
<process number> - 进程数量 (在 1 和 pre-forked 实例之间的数量). 比如, 当有 4 个 trapper 的时候,这个值在 1 和 4 之间.

有效的 states 有:
busy - 进程处于繁忙状态, 比如, 处理请求(缺省值).
idle - 进程处于空闲状态什么都不做.

比如:
=> zabbix[process,poller,avg,busy] → poller 进程在最后一分钟内执行某项操作的平均时间
=> zabbix[process,"icmp pinger",max,busy] → 任何 ICMP ping 进程在最后一分钟做某件事所花费的最大时间
=> zabbix[process,"history syncer",2,busy] → history syncer 2号进程在最后一分钟所花费的时间
=> zabbix[process,trapper,count] → 当前运行的 trapper 进程的数量
zabbix[proxy,<name>,<param>]
Zabbix 代理端的信息. 整数. name: 代理端名称

param 的有效值有:
lastaccess - 从代理端上收到的最后一次心跳消息的时间戳
delay - 采集的值多长时间未发送, 计算方式为 "代理端延迟" (当前代理端的时间与代理端上最老的未发送值的时间戳之间的差值) + ("当前服务端时间" - "代理端最后一次访问时间")

比如:
=> zabbix[proxy,"Germany",lastaccess]

fuzzytime() 函数 可以用来检测代理端的可用性.
这个监控项始终由 Zabbix 服务端处理与主机位置无关(在服务端或者代理端).
zabbix[proxy_history]
代理端 history 表中等待发送到服务端的值的数量. 整数. (服务端不支持)
zabbix[queue,<from>,<to>]
大于 <from> 的秒数但是小于 <to>秒数的延迟的队列中被监控的监控项数量. 整数. from - 缺省值: 6 秒
to - default: 无穷,不限制
Time-unit symbols 支持 s,m,h,d,w 这些参数.
zabbix[rcache,<cache>,<mode>]
Zabbix配置缓存的可用性统计信息. 整数 (大小); float (百分比). cache: buffer

有效的 modes 有:
total - 总 buffer 大小
free - 空闲 buffer大小
pfree - 空闲 buffer 的百分比
used - 使用的 buffer大小
pused - 使用的buffer百分比

pused 模式从 Zabbix 4.0.0 开始支持.
zabbix[requiredperformance]
Zabbix 服务端或者 Zabbix 代理端所需的性能, 以每秒新增的值计算. 浮点数. 大约与 报告中的"服务端所需性能,每秒新值"相关 → System information.
zabbix[stats,<ip>,<port>]
远程 Zabbix 服务端或者代理端内部监控指标. JSON 对象. ip - 远程查询服务端/代理端的IP/DNS/网络掩码列表(缺省是 127.0.0.1)
port - 远程查询服务端/代理端的端口号(缺省是 10051)

注意,stats请求将只接受目标实例上'StatsAllowedIP'server/proxy 参数中列出的地址.

此监控项返回一组选定的内部指标. 更多信息参见 Zabbix 远程监控的统计数据.

从 4.2.0 开始支持.
zabbix[stats,<ip>,<port>,queue,<from>,<to>]
远程 Zabbix 服务端或者代理端内部队列指标(另见 zabbix[queue,<from>,<to>]). JSON 对象. ip - 远程查询服务端/代理端的IP/DNS/网络掩码列表(缺省是 127.0.0.1)
port - 远程查询服务端/代理端的端口号(缺省是 10051)
from - 最少的延迟 (缺省是 6 秒)
to - 最多的延迟 (缺省是 infinity)

注意,stats请求将只接受目标实例上'StatsAllowedIP' server/proxy 参数中列出的地址.

从 4.2.0 开始支持.
zabbix[tcache,cache,<parameter>]
Zabbix趋势功能缓存的有效性统计. 整数 (大小); 浮点数 (百分比). 有效 parameters 是:
all - 总缓存请求(缺省值)
hits - 缓存命中
phits - 缓存命中的百分比
misses - 缓存未命中
pmisses - 缓存未命中的百分比
items - 缓存的监控项数量
requests - 缓存请求的监控项数量
pitems - 缓存监控项/(缓存监控项+请求)的百分比. 较低的百分比很可能意味着可以减少缓存大小.

从 5.4.0 开始支持.

(代理端不支持)
zabbix[trends]
存储在 TRENDS 表中的值的数量. 整数. 该监控项自Zabbix 6.0以来已弃用.
如果使用了MySQL InnoDB, Oracle 或者 PostgreSQL 不要使用这个监控项!
(代理端不支持)
zabbix[trends_uint]
存储在 TRENDS_UINT 表中的值的数量. 整数. 该监控项自Zabbix 6.0以来已弃用.
如果使用了MySQL InnoDB, Oracle 或者 PostgreSQL 不要使用这个监控项!
这个监控项从 Zabbix 1.8.3 开始支持.
(代理端不支持)
zabbix[triggers]
Zabbix 数据库中已启用触发器的数量,在已启用的主机上启用所有监控项. 整数. (代理端不支持)
zabbix[uptime]
Zabbix 服务端或者 Zabbix 代理端进程启动的时间,单位是秒. 整数.
zabbix[vcache,buffer,<mode>]
Zabbix 值缓存的可用性统计信息. 整数 (大小); 浮点数 (百分比). 有效 modes 是:
total - buffer 总大小
free - 空闲 buffer 的大小
pfree - 空闲 buffer 的百分比
used - 已用的buffer
pused - 已用的buffer百分比

(代理端不支持)
zabbix[vcache,cache,<parameter>]
Zabbix值缓存的有效性统计. 整数.

mode 参数有:
0 - 正常模式,
1 - 低内存模式
parameter 有效值有:
requests - 请求的总数
hits - 缓存命中数量 (从缓存中获取的历史值)
misses - 缓存未命中数量 (从数据库中获取的历史值)
mode - 缓存操作模式的值

这个监控项从 Zabbix 2.2.0 开始支持,mode 参数从 Zabbix 3.0.0.
(代理端不支持)

一旦开启低内存模式,缓存值将保持这种状态24小时,即使触发此模式的问题被更快地解决.

您可以将此键值与 Change per second 预处理步骤一起使用,以便获得每秒统计值.
zabbix[version]
Zabbix 服务端或者代理端的版本. 字符串. 这个监控项从 Zabbix 5.0.0 开始支持.

比如返回这样的值: 5.0.0beta1
zabbix[vmware,buffer,<mode>]
Zabbix vmware 缓存可用性统计信息. 整数(大小); 浮点数 (百分比). modes 有效值:
total - buffer 的总大小
free - 空闲 buffer 的大小
pfree - 空闲 buffer 的百分比
used - 已用的 buffer 大小
pused - 已用的 buffer 百分比
zabbix[wcache,<cache>,<mode>]
Zabbix 写缓存的可用性和有效性统计. <cache> 必须指定.
Cache Mode
values all
(缺省值)
Zabbix 服务端或者代理端处理的值的总数,不支持的监控项除外. 整数. 计数器.
你可以将此键值与 Change per second 预处理步骤一起使用,以便获得每秒统计值.
float 处理的浮点值的数量. 整数. 计数器.
uint 处理的无符号整数值的数量. 整数. 计数器.
str 处理的字符/字符串的数量. 整数. 计数器.
log 处理的日志值的数量. 整数. 计数器.
text 处理的文本值的数量. 整数. 计数器.
not supported 监控项处理导致监控项变得不受支持或保持该状态的次数. 整数. 计数器.
history pfree
(缺省值)
可用历史 buffer 的百分比. 浮点数. 用于存储历史缓存的监控项值. 如果数值较低,则表明数据库端存在性能问题.
free 空闲历史 buffer 大小. 整数.
total 总的历史 buffer 大小. 整数.
used 已用的历史 buffer 大小. 整数.
pused 已用的历史 buffer 百分比. 浮点数. pused 模式从 Zabbix 4.0.0 开始支持.
index pfree
(缺省值)
可用历史索引缓冲区的百分比. 浮点数. 历史索引缓存用于对存储在历史缓存中的值进行索引.
Index 缓存从 Zabbix 3.0.0 开始支持.
free 空闲历史索引历史缓冲区的大小. 整数.
total 总的历史索引历史缓冲区的大小. 整数.
used 已经使用的历史索引历史缓冲区的大小. 整数.
pused 已经使用的历史索引历史缓冲区的百分比. 浮点数. pused 模式从 Zabbix 4.0.0 开始支持.
trend pfree
(缺省值)
可用趋势缓存的百分比. 浮点数. 趋势缓存存储当前小时内所有接收数据的监控项的聚合.
(代理端不支持)
free 可用趋势缓存的大小. 整数. (代理端不支持)
total 总的趋势缓存的大小. 整数. (代理端不支持)
used 已用趋势缓存的大小. 整数. (代理端不支持)
pused 已用趋势缓存的百分比. 浮点数. (代理端不支持)

pused 模式从 Zabbix 4.0.0 开始支持.