尝试为 prometheus 建立 SSL(通过 docker 启动)。我使用 open ssl 自己生成了密钥和 crt。配对:钥匙和 crt 工作正常。 当我在主机上执行此命令时:
openssl s_server -cert prometheus.crt -key prometheus.key
它说“接受”
这是我的 prometheus 容器的 Dockerfile:
https://pastebin.com/4wGtCGp6
当我构建图像并启动它时,它会说:
level=error ts=2021-09-24T20:44:11.649Z caller=stdlib.go:105 component=web caller="http: 来自 127.0.0.1:50458 的 TLS 握手错误" msg="远程错误:tls:证书错误”
кричит постоянно
在 web.yml 中,我按以下方式配置 SSL:
tls_server_config:
cert_file: /etc/prometheus/prometheus.crt
key_file: /etc/prometheus/prometheus.key
在 prometheus.yml 中,我按以下方式配置 SSL:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
scheme: https
tls_config:
ca_file: /etc/prometheus/prometheus.crt
cert_file: /etc/prometheus/prometheus.crt
key_file: /etc/prometheus/prometheus.key
此错误的原因可能是什么?
如果它是自签名的,则不需要 CA 文件,因此请尝试删除
tls_config
中的该行并重新启动容器。
我知道这已经很旧了,所以如果回答旧问题不好,我深表歉意。随意删除。
您需要告诉 prometheus 使用哪些配置文件。 您可以在 docker run 命令中定义它们,如下所示
docker run -d prom/prometheus \
--name prometheus \
-p 9090:9090 \
--config.file=/etc/prometheus/prometheus.yml \
--web.config.file=/etc/prometheus/web.yml
根据您的环境更改文件路径。