健康检查三类端点
InfluxDB 2.x 暴露三个关键端点:/health 返回实例状态与版本,用于存活探针;/ready 在实例可以承接请求时返回成功状态,用于就绪探针;/metrics 以 Prometheus 格式输出数据库自身的运行指标,用于监控与告警。三者解决的问题不同:存活判断实例是否还活着,就绪判断能不能接流量,指标用来定位趋势与容量。
基本信息
| GET /health | 返回状态值与服务版本,用于存活探针 |
|---|---|
| GET /ready | 可承接请求时返回 204,用于就绪探针 |
| GET /metrics | Prometheus 格式指标,含请求、队列与运行时统计,需要鉴权 |
| 默认端口 | 8086(可通过配置调整) |
| 鉴权要求 | /health 与 /ready 通常无需鉴权;/metrics 需要有效 Token |
| 典型接入 | Kubernetes 探针、负载均衡健康检查、Prometheus 抓取任务 |
典型使用场景
- 容器编排探针:存活与就绪分开配置,避免启动期被误杀
- 负载均衡门控:实例未就绪时不接收流量,减少重启期间的错误率
- 自身指标采集:把写入请求、错误率与队列指标接入监控体系
- 发布流程校验:滚动更新时用就绪状态判断新实例是否可用
- 故障定位:区分「实例挂了」与「实例活着但写入链路异常」
示例
示例
# 存活:返回体内包含状态与版本信息
curl -s http://127.0.0.1:8086/health
# 就绪:只看状态码,204 表示可以承接请求
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:8086/ready
# 自身指标:Prometheus 抓取格式,需带 Token
curl -s -H "Authorization: Token $INFLUX_TOKEN" http://127.0.0.1:8086/metrics | head -20
# 常用监控点:写入请求数与错误数、队列长度、运行时内存
# curl -s -H "Authorization: Token $INFLUX_TOKEN" http://127.0.0.1:8086/metrics \
# | grep -E "^influxdb_(http|write|queue)"端点读法
| 端点 | 正常表现 | 异常与处理 |
|---|---|---|
| /health | 返回状态为通过并带版本号 | 返回失败或超时说明进程异常,检查日志与资源 |
| /ready | 返回 204 | 返回其他状态说明尚未就绪或处于恢复中,不要接收流量 |
| /metrics | 返回大量指标行 | 401 说明 Token 无效或缺失,403 说明权限不足 |
| 写入错误指标 | 长期为 0 或极低 | 持续上升说明写入链路或容量出现问题 |
| 队列相关指标 | 波动但在阈值内 | 持续堆积需要检查磁盘 IO 与写入压力 |
负载均衡把流量分给实例之前用 /ready 做就绪门控,可以避免把请求打到尚未准备好的实例上,滚动重启期间的错误率会明显下降。
/metrics 会把版本、内部指标与部分配置信息暴露出来:不要直接开放到公网,应限制来源网段并加上鉴权。