配置使用 SSL 连接.note
一、配置 SSL 连接:
1、配置 证书:
1、Prometheus证书 SAN:
DNS: prometheus
DNS:prometheus.shanghai.org
IP:192.168.2.1
2、Grafana证书:
DNS:grafana.shanghai.org
IP:192.168.2.1
3、Node Exporter证书:
DNS:server2.shanghai.org //机器FQDN
IP:192.168.1.2注意:Prometheus的证书,SAN要写 prometheus是因为granafa docker可以直接通过 prometheus:9090访问
生成证书:

2、配置 node exporter:
apt install -y prometheus-node-exporter安装即启用
1)调用 SSL 证书:
prometheus需要有读取证书的权限
# 随便在一个路径中编写yaml文件:
cp server2.* /etc/ssl
chown prometheus:prometheus /etc/ssl/server2.*
vim /etc/ssl/web.yml
vim /etc/default/prometheus-node-exporter
systemctl restart prometheus-node-exporter
·测试:

这个时候curl https://localhost:9100/metrics就能访问到了:

这个时候 http 是访问不了的:

3、配置 Prometheus:
1)配置使用 https 访问 node-exporter:
apt install -y prometheus
cd /etc/prometheus
cp /usr/share/doc/prometheus/examples/prometheus.yml .
vim prometheus.yml配置 连接 https node-exporter
在需要https的连接那里设置scheme: https

2)定义 prometheus 证书路径:
# 将证书放到/etc/ssl 中,然后在创建docker的时候映射进去:
cp prometheus.* /etc/ssl
cp ca.crt /etc/ssl //根证书不放都可以
chmod 644 /etc/ssl/prometheus.* //必须指定权限,否则prometheus没有权限读取
vim /etc/ssl/web.yml
# 定义prometheus证书路径:
3)创建 docker:
docker run -d --name prometheus --restart always -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro -v /etc/ssl:/etc/ssl:ro prom/prometheus:latest --config.file=/etc/prometheus/prometheus.yml --web.config.file=/etc/ssl/web.yml将证书目录映射进去后,使用 --web.config.file 来调用前面定义的ssl yaml
·测试https访问:
可以看到,https 访问成功

4、配置 grafana:
1)给予证书权限:
cp grafana.* /etc/ssl
chmod 644 /etc/ssl/grafana.*2)创建 docker:
docker run -d --name grafana --restart always -p 3000:3000 -e GF_SERVER_PROTOCOL=https -e GF_SERVER_CERT_FILE=/etc/ssl/grafana.crt -e GF_SERVER_CERT_KEY=/etc/ssl/grafana.key -v /etc/ssl:/etc/ssl:ro grafana/grafana:latest使用 -e GF_SERVER_CERT_FILE 指定证书路径
使用 -e GF_SERVER_CERT_KEY 指定私钥路径
·测试https访问:

5、Grafana 连接 https Prometheus:

注意,因为这里两个容器我并没有把他们放到同一个 network中,所以这里不能够直接使用 https://prometheus:9090 来访问,必须使用 DNS 名称:https://prometheus.shanghai.org:9090