13 Zabbix 统计数据的远程监控
概述
可以通过另一个Zabbix实例或第三方工具远程访问Zabbix server和proxy的部分内部指标. 这一功能非常实用,既能让技术支持人员/服务提供商远程监控其客户的Zabbix servers/proxies,也适用于Zabbix非主要监控工具的组织场景,使得第三方系统能在伞状监控架构中监控Zabbix内部指标.
Zabbix内部统计信息会暴露给配置在新增'StatsAllowedIP'参数server/proxy中的地址列表.系统仅会接受来自这些地址的请求.
监控项
要配置对另一个Zabbix实例的内部统计信息查询,
您可以使用两种监控项:
zabbix[stats,<ip>,<port>]内部监控项 - 用于直接远程queries
Zabbix server/proxy。<ip>和<port>用于标识目标实例-
zabbix.stats[<ip>,<port>]agent 监控项 - 用于基于agent的远程查询queries of Zabbix server/proxy. <ip> and <port> are used to identify the target instance.
另请参阅:Internal items,
Zabbix agent items
下图展示了根据上下文使用不同监控项的场景。

- 服务器
→ 外部Zabbix实例(zabbix[stats,<ip>,<port>])
- 服务器 →
proxy → 外部Zabbix实例(zabbix[stats,<ip>,<port>])
- 服务器 →
agent → 外部Zabbix实例(zabbix.stats[<ip>,<port>])-
- 服务器 → proxy → agent → external Zabbix instance (
zabbix.stats[<ip>,<port>])
zabbix.stats[<ip>,<port>])
为确保目标实例允许外部实例查询,
需在目标实例的'StatsAllowedIP'参数中列出外部实例的地址。
暴露的指标
统计监控项批量收集统计数据并返回JSON格式结果,这是依赖监控项从中get数据的基础。以下internal metrics由两种监控项中的任意一种返回:
zabbix[boottime]zabbix[hosts]zabbix[items]zabbix[items_unsupported]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>](仅'trends'缓存类型的服务器)
模板
模板可用于从外部实例远程监控Zabbix server或proxy的内部指标:
- 远程Zabbix server健康状态
- 远程Zabbix proxy健康状态
请注意,要使用模板监控多个外部实例,每个外部实例监控都需要单独的主机。
Trapper进程
从外部Zabbix实例接收内部指标请求由 trapper进程处理 该进程会验证请求、收集指标、 创建JSON数据缓冲区并发送准备好的JSON返回 例如 从服务器端:
{
"response": "success",
"data": {
"boottime": N,
"uptime": N,
"hosts": N,
"items": N,
"items_unsupported": 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/proxy-
zabbix.stats[<ip>,<port>,queue,<from>,<to>]agent 监控项 - 用于agent-based internal queue queries to remote Zabbix server/proxy
另请参阅: Internal items, Zabbix agent items