首页 > 解决方案 > Prometheus - 通过 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 抓取这些现有数据的配置是什么?

谢谢!

标签: sslprometheus

解决方案


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

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

tls_config: ca_file: 你的证书路径。

您需要为证书添加volumemount 和volume。这将在您的 helm 图表中进行配置。

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


推荐阅读