[英]Access etcd metrics for Prometheus
我已经使用 Kube Spray 建立了一个 v1.13 Kubernetes 集群。 我们的 etcd 在 K8s 集群之外作为 docker 容器运行。 如果我检查 etcd 证书,我可以看到每个 etcd 都有自己的 ca、客户端证书和密钥。
如果我想为 Prometheus 抓取这些 etcd 容器的 /metrics 端点,要为 HTTPS 端点使用哪些证书?
我还不确定这是否是最安全的方式。 但是我拿了其中一个 etcd 使用的 ca.pem、cert 和 key。
我从三个对象中创建了一个 Kubernetes 秘密对象:
kubectl create secret generic etcd-metrics -n monitoring --from-file=etcd-secrets/
然后我在 Prometheus 配置和下面添加了秘密作为配置映射作为我的抓取
targets:
- job_name: etcd
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: https
static_configs:
- targets:
- 172.xxxxx:2379
- 172.xxxxx:2379
- 172.xxxxx:2379
tls_config:
ca_file: /etc/ssl/etcd/ca.pem
cert_file: /etc/ssl/etcd/etcd-node.pem
key_file: /etc/ssl/etcd/etcd-key.pem
insecure_skip_verify: false
虽然不完全符合您的要求,但我通过使用在 sidecar 容器中运行的socat侦听etcd 的 prometheus 端口 :9379将身份验证推送到实际机器上取得了巨大成功,然后您可以将 prometheus 指向http://${etcd_hostname}:9379/metrics
而无需处理这些指标端点的身份验证。
我面前没有socat
调用,但类似于:
socat tc4-listen:9379,reuseaddr,fork \
openssl:127.0.0.1:2379,capath=/etc/kubernetes/pki/etcd/cacert.crt,key=/etc/kubernetes/pki/etcd/peer.key,cert=/etc/kubernetes/pki/etcd/peer.crt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.