【问题标题】:Prometheus Operator not scraping colocated etcd metricsPrometheus Operator 不抓取托管的 etcd 指标
【发布时间】:2022-01-31 16:00:49
【问题描述】:

我有一个使用 Kubespray 的 K8s 集群,其中包含托管的 etcd 部署在本地服务器上。我没有看到 Prometheus 操作员抓取 etcd 指标。使用 helm v3.5.4 部署的 Prometheus 操作员。 K8s版本1.22,Helm图表prometheus-community/kube-prometheus-stack版本25.0.0,3节点控制平面CentOS 7

Prometheus 配置显示 etcd - job_name: serviceMonitor/monitoring/kube-prometheus-kube-prome-kube-etcd/0 的作业。 但是 Prometheus 的服务列表中没有 etcd 的服务。

没有为 etcd 定义端点

用于 helm 部署的 Values.yml(使用 volumes 更新)

prometheus:
    service: 
        type: NodePort
        externalTrafficPolicy: Local
    ingress:
        enabled: true
        annotations:
            kubernetes.io/ingress.class: "custom"
        hosts:
            - prometheus.{{ cluster_domain }}.mydomain.com
        paths: 
            - /
        pathType: Prefix
        tls:
            - secretName: 
    prometheusSpec:
        storageSpec:
            volumeClaimTemplate:
                spec:
                    accessModes: ["ReadWriteOnce"]
                    storageClassName: rook-ceph-block
                    resources:
                        requests:
                            storage: {{ monitoring.storage_size }}
        volumeMounts:
        - name: cert-vol
          mountPath: "/etc/prometheus/secrets/etcd-certs"
          readOnly: true

        volumes:
        - name: cert-vol
          secret: 
            secretName: etcd-certs

kubeEtcd:
    enabled: true
    endpoints:
      - 172.1.1.1
      - 172.1.1.2
      - 172.1.1.3
  
    service:
        port: 2379
        targetPort: 2379
    serviceMonitor:
        scheme: https
        insecureSkipVerify: true
        caFile: /etc/prometheus/secrets/etcd-certs/ca.crt
        certFile: /etc/prometheus/secrets/etcd-certs/client.crt
        keyFile: /etc/prometheus/secrets/etcd-certs/client.key

【问题讨论】:

  • 你有一些来自 etcd 的日志吗?
  • etcd 很好,如果我卷曲到它,我可以从 etcd 获取指标。 Prometheus 甚至没有抓取指标。我需要在 etcd 日志中查找特定内容吗?
  • 我注意到一个问题,在 prometheus pod 日志中,prometheus 找不到证书的路径。
  • 我修复了证书丢失的路径问题,并使用信息更新了问题。但仍然缺少 etcd 数据。
  • 你检查 prometheus 日志了吗?

标签: kubernetes prometheus prometheus-operator helm3 kube-prometheus-stack


【解决方案1】:

我将端点添加到 kubeEtcd 部分以使其正常工作。更新后的 values.yaml 如下(更改 IP 地址):

prometheus:
    service: 
        type: NodePort
        externalTrafficPolicy: Local
    ingress:
        enabled: true
        annotations:
            kubernetes.io/ingress.class: "custom"
        hosts:
            - prometheus.{{ cluster_domain }}.mydomain.com
        paths: 
            - /
        pathType: Prefix
        tls:
            - secretName: 
    prometheusSpec:
        storageSpec:
            volumeClaimTemplate:
                spec:
                    accessModes: ["ReadWriteOnce"]
                    storageClassName: rook-ceph-block
                    resources:
                        requests:
                            storage: {{ monitoring.storage_size }}
        volumeMounts:
        - name: cert-vol
          mountPath: "/etc/prometheus/secrets/etcd-certs"
          readOnly: true

        volumes:
        - name: cert-vol
          secret: 
            secretName: etcd-certs

kubeEtcd:
    enabled: true
    endpoints:
      - 172.1.1.1
      - 172.1.1.2
      - 172.1.1.3
  
    service:
        port: 2379
        targetPort: 2379
    serviceMonitor:
        scheme: https
        insecureSkipVerify: true
        caFile: /etc/prometheus/secrets/etcd-certs/ca.crt
        certFile: /etc/prometheus/secrets/etcd-certs/client.crt
        keyFile: /etc/prometheus/secrets/etcd-certs/client.key

【讨论】:

    猜你喜欢
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多