繁体   English   中英

访问 Prometheus 的 etcd 指标

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM