12 远程监控 Zabbix 状态
概述
可以制定 Zabbix server 和 proxy 的一些内部指标,可以通过另一个 Zabbix 实例或第三方工具访问。这可能很有用,以便支持者/服务提供者可以远程监控他们的客户端 Zabbix server/proxy,或者在组织中 Zabbix 不是主要的监控工具,Zabbix 内部指标可以在伞式监控设置中由第三方系统监控。
Zabbix 内部统计数据暴露给新的 ‘StatsAllowedIP’ server/proxy 参数中列出的一组可配置地址。仅接受来自这些地址的请求。
监控项
要在另一个 Zabbix 实例上配置内部统计信息的查询,可以使用两项:
zabbix[stats,<ip>,<port>]
内部监控项 - 用于直接远程查询 Zabbix server/proxy. <ip> 和 <port> 用于标识目标实例。zabbix.stats[<ip>,<port>]
Agent 监控项 - 用于基于 Agent 的 Zabbix server/proxy 的远程查询。 <ip> 和 <port> 用于标识目标实例。
另请参见:内部监控项,Zabbix agent 监控项
下图根据上下文说明了这两个项的用法。
- - Server → external Zabbix instance (
zabbix[stats,<ip>,<port>]
) - - Server → proxy → external Zabbix instance (
zabbix[stats,<ip>,<port>]
) - - Server → agent → external Zabbix instance (
zabbix.stats[<ip>,<port>]
) - - Server → proxy → agent → external Zabbix instance (
zabbix.stats[<ip>,<port>]
)
要确保目标实例允许外部实例查询它,请在目标实例的”StatsAllowedIP”参数中列出外部实例的地址。
暴露指标
状态监控项收集统计信息后返回一个JSON,这是其他依赖监控项从中获取数据的基础。以下 内部指标 由两个监控项中的任何一个返回:
zabbix[boottime]
zabbix[hosts]
zabbix[items]
zabbix[items_unsupported]
zabbix[preprocessing_queue]
(server only)zabbix[process,<type>,<mode>,<state>]
(only process type based statistics)zabbix[rcache,<cache>,<mode>]
zabbix[requiredperformance]
zabbix[triggers]
(server only)zabbix[uptime]
zabbix[vcache,buffer,<mode>]
(server only)zabbix[vcache,cache,<parameter>]
zabbix[version]
zabbix[vmware,buffer,<mode>]
zabbix[wcache,<cache>,<mode>]
(‘trends’ cache type server only)
模板
可用于从外部实例 远程监控 Zabbix server 或 proxy 内部指标的模板:
- Remote Zabbix server health
- Remote Zabbix proxy health
请注意,为了使用模板远程监视多个外部实例,每个外部实例监视都需要一个单独的主机。
捕捉器执行过程
Zabbix 实例接收内部指标请求,由trapper进程处理,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
}
}
}
}
内部队列监控项
另外还有两个监控项可以远程查询另一个 Zabbix 实例上的内部队列统计信息:
zabbix[stats,<ip>,<port>,queue,<from>,<to>]
内部监控项 - 用于将内部队列查询直接发送到 Zabbix server/proxyzabbix.stats[<ip>,<port>,queue,<from>,<to>]
Agent 监控项 - 用于将内部队列查询直接发送到 Zabbix server/proxy