可以通过另一个 Zabbix 实例或第三方工具远程访问 Zabbix server 和 proxy 的某些内部指标。 这在以下场景中非常有用:支持人员/服务提供商可以远程监控其客户 Zabbix servers/proxies,或者在组织中 Zabbix 不是主要监控工具的情况下,可通过第三方系统在统一监控架构中监控 Zabbix 的内部指标。
Zabbix 的内部统计信息将暴露给在新参数 'StatsAllowedIP' server/proxy 中配置的一组可配置地址。仅接受来自这些地址的请求。
要配置对其他Zabbix实例内部统计数据的查询,可以使用以下两种监控项:
zabbix[stats,<ip>,<port>] 内部监控项 - 用于直接远程queriesZabbix server/proxy。<ip>和<port>用于标识目标实例。zabbix.stats[<ip>,<port>] agent监控项 - 用于基于agent的远程queriesZabbix server/proxy。<ip>和<port>用于标识目标实例。另请参阅:Internal items, Zabbix agent items
下图展示了根据上下文使用不同监控项的场景。

- 服务器 → 外部Zabbix实例(zabbix[stats,<ip>,<port>])
- 服务器 → proxy → 外部Zabbix实例(zabbix[stats,<ip>,<port>])
- 服务器 → agent → 外部Zabbix实例(zabbix.stats[<ip>,<port>])
- 服务器 → proxy → agent → 外部Zabbix实例 (zabbix.stats[<ip>,<port>])为确保目标实例允许外部实例查询其数据,需在目标实例的'StatsAllowedIP'参数中添加外部实例的地址。
统计 监控项 会批量收集统计数据并返回一个 JSON,这是依赖的 监控项 从其中 get 获取数据的基础。以下 internal metrics 由这两个中的任意一个 监控项 返回:
zabbix[boottime]zabbix[hosts]zabbix[items]zabbix[items_unsupported]zabbix[preprocessing](仅服务器)zabbix[preprocessing_queue](仅服务器)zabbix[process,<type>,<mode>,<state>](仅基于进程类型的统计)zabbix[rcache,<cache>,<mode>]zabbix[requiredperformance]zabbix[triggers](仅服务器)zabbix[uptime]zabbix[vcache,buffer,<mode>](仅服务器)zabbix[vcache,cache,<parameter>]zabbix[version]zabbix[vmware,buffer,<mode>]zabbix[wcache,<cache>,<mode>](仅限“趋势”缓存类型的服务器)模板可用于从外部实例远程监控 Zabbix server 或 proxy 的内部指标:
请注意,若要使用模板远程监控多个外部实例,则每个外部实例的监控都需要一个独立的 主机。
接收来自外部Zabbix实例的内部指标请求是由trapper进程处理的,该进程验证请求、收集指标、创建JSON数据缓冲区并发送准备好的JSON数据返回,例如,从服务器返回的数据:
{
"response": "success",
"data": {
"boottime": N,
"uptime": N,
"主机": N,
"监控项": N,
"items_unsupported": N,
"preprocessing": {
"queued": {
"count": N,
"size": N
},
"direct": {
"count": N,
"size": N
},
"queue": N
},
"preprocessing_queue": N,
"process": {
"alert manager": {
"busy": {
"avg": N,
"max": N,
"min": N
},
"idle": {
"avg": N,
"max": N,
"min": N
},
"count": N
},
...
},
"queue": N,
"rcache": {
"total": N,
"free": N,
"pfree": N,
"used": N,
"pused": N
},
"requiredperformance": N,
"triggers": N,
"uptime": N,
"vcache": {
"buffer": {
"total": N,
"free": N,
"pfree": N,
"used": N,
"pused": N
},
"cache": {
"requests": N,
"hits": N,
"misses": N,
"mode": N
}
},
"vmware": {
"total": N,
"free": N,
"pfree": N,
"used": N,
"pused": N
},
"version": "N",
"wcache": {
"values": {
"all": N,
"float": N,
"uint": N,
"str": N,
"log": N,
"text": N,
"not supported": N
},
"history": {
"pfree": N,
"free": N,
"total": N,
"used": N,
"pused": N
},
"index": {
"pfree": N,
"free": N,
"total": N,
"used": N,
"pused": N
},
"trend": {
"pfree": N,
"free": N,
"total": N,
"used": N,
"pused": N
}
}
}
}还有另外两个监控项专门用于允许远程query 另一个Zabbix实例的内部队列统计信息:
zabbix[stats,<ip>,<port>,queue,<from>,<to>] 内部 监控项 - 用于 直接内部队列 queries 到远程 Zabbix server/proxyzabbix.stats[<ip>,<port>,queue,<from>,<to>] agent 监控项 - 用于 基于agent的内部队列queries到远程Zabbix server/proxy