在 Kubernetes (k8S) 中,状态码监控通常是指对服务端点、API 等网络资源的 HTTP(S) 响应状态码进行监控。这可以通过集成 Prometheus 和 Blackbox Exporter 来实现。
具体步骤如下:
- 部署 Blackbox Exporter:
在 Kubernetes 集群中部署 Blackbox Exporter 作为 Pod 或者 DaemonSet。Blackbox Exporter 提供了多种探测模块,其中http_
系列的模块可以用来检查 HTTP(S) 状态码。 - 配置 Blackbox Exporter:
在 Blackbox Exporter 的配置文件(例如blackbox.yml
)中设置 HTTP(S) 检查模块的相关参数,如超时时间、重试次数以及目标 URL 列表等。 - Prometheus 配置:
- 对于常规 Prometheus 设置,需要在 Prometheus 的配置文件中添加一个新的 scrape job,指向 Blackbox Exporter 的 metrics 端点,并指定对应的 relabel_configs 以便正确地从 Blackbox Exporter 收集响应状态码指标。
- 如果使用 Prometheus Operator,创建一个 ServiceMonitor 资源对象,它会自动发现并配置针对 Blackbox Exporter 的监控目标。
- 抓取和监控状态码:
Prometheus 将根据配置定期向 Blackbox Exporter 发送请求,指示其执行 HTTP(S) 探测。Blackbox Exporter 返回的状态码信息会被 Prometheus 抓取并存储为度量数据。 - 可视化与告警:
在 Grafana 或其他可视化工具中配置仪表板,展示 HTTP(S) 状态码相关的图表,比如按状态码分组的请求次数、成功率等。
同时,在 Prometheus Alertmanager 中定义针对不同状态码的告警规则,比如当出现非 2XX 或非预期状态码的响应比例超过阈值时发送告警通知。
综上所述,Prometheus 可以通过 Blackbox Exporter 监控到的指标如 probe_http_status_code
,来跟踪 HTTP 请求返回的各种状态码,从而帮助运维人员及时了解集群内或外部服务的健康状况。