Prometheus - 通过 mTLS 抓取指标端点

Prometheus - Scrape metrics endpoint over mTLS

关于如何通过 HTTPS、双向 TLS、双向 SSL 抓取 /metrics 端点的小问题。

我们的Prometheus实例部署在位置A。

然后我们在所有地方部署了一堆微服务,但从来没有像 Prometheus 一样部署在相同的地方。

所有微服务都成功公开了一个 /metrics 端点,准备好让 Prometheus 来轮询数据。我们已经看到 Prometheus 格式的数据。

所有微服务都必须通过 HTTPS、mTLS、双向 TLS、双向 SSL 公开 /metrics 端点。

QA 中的所有微服务通过普通旧的简单 HTTP 公开 /metrics 端点的测试工作得非常好。 Prometheus 正在使用此配置成功轮询所有数据。

    scrape_configs:
      - job_name: 'some-job-name'
        metrics_path: /metrics
        static_configs:
          - targets:
            - some-host.com:8080

但是,在 Prod 中,/metrics 必须通过 HTTPS mTLS

如果 /metrics 端点应该通过 HTTP 或 HTTPS,这个问题的目的不是创建一个参数。这个问题实际上是一个技术问题,即如何使 Prometheus 能够通过 HTTPS、mTLS 查询此 /metrics 端点。

允许 Prometheus 通过 HTTPS、mTLS 抓取这些现有数据的配置是什么?

谢谢!

您需要在您的 prometheus 配置中添加 tls 配置。 您需要一个为所有微服务指定 SAN 的证书。 因此,SAN 将是目标 url.or 的子域,直接是 ip 或主机名,如果它是固定的。

现在将证书加载到所有微服务和 prometheus 中。这将允许您使用 mTLS 抓取 HTTPS。

tls_config: ca_file: 你的证书路径。

您需要为证书添加卷挂载和卷。这将在您的 helm 图表中配置。

尝试 运行 Prometheus 版本 2.24.0+ 并在 HTTPS 本身上启动 Prometheus