首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用外部Prometheus刮取CoreDNS度量

用外部Prometheus刮取CoreDNS度量
EN

Stack Overflow用户
提问于 2020-09-27 12:17:46
回答 1查看 637关注 0票数 2

我有一个kubernetes集群(用Typhoon模块构建)和一个Prometheus实例在不同的VPC中(运行在docker-组合上,而不是在Kubernetes集群上)。我已经启用了vpc对等连接,并且所需的端口对此vpc是开放的。除了核心舱外,所有的指标都按照预期被刮掉了。这里的问题是核吊舱分配10.2..。IP,它与我的IP范围不同,它被配置为要运行的荚。

如果coredns pod获得IP 172.*,我的prometheus将能够解决它,刮取将是成功的。

现在,我不知道如何刮取这些指标。如果你知道我做错了什么,请告诉我。

代码语言:javascript
复制
$ kubectl get pods -n kube-system -o wide | grep coredns

coredns-7d8995c4cd-4l4ft                   1/1     Running   1          7d1h    10.2.5.2        ip-172-*-*-*   <none>           <none>
coredns-7d8995c4cd-vxd9d                   1/1     Running   1          6d3h    10.2.3.9        ip-172-*-*-*   <none>           <none>

Prometheus.yml文件配置为以下作业。

代码语言:javascript
复制
  - job_name: 'kubernetes-service-endpoints'
    kubernetes_sd_configs:
      - role: endpoints
        api_server: https://kubernetes-cluster:6443
        tls_config:
          insecure_skip_verify: true
        bearer_token: "TOKEN"

    bearer_token: "TOKEN"

    honor_labels: true
    relabel_configs:
      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
        action: keep
        regex: true
      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
        action: replace
        target_label: __scheme__
        regex: (https?)
      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
        action: replace
        target_label: __address__
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
      - action: labelmap
        regex: __meta_kubernetes_service_label_(.+)
      - source_labels: [__meta_kubernetes_namespace]
        action: replace
        target_label: namespace
      - source_labels: [__meta_kubernetes_pod_name]
        action: replace
        target_label: pod
      - source_labels: [__meta_kubernetes_service_name]
        action: replace
        target_label: job

    metric_relabel_configs:
      - source_labels: [__name__]
        action: drop
        regex: etcd_(debugging|disk|request|server).*

P.S:我使用Flannel作为我的网络CNI,这样我就可以使用主机网络本身的IP创建吊舱。

更新信息:我尝试在kubernetes上部署prometheus,并尝试将这些数据联合到由Yaron建议的prometheus码头。

我正在为联邦尝试下面的配置,但没有看到任何指标加载到我的目标prometheus。

代码语言:javascript
复制
  - job_name: 'federate'
    scrape_interval: 10s

    honor_labels: true
    metrics_path: '/federate'

    params:
      'match[]':
        - '{job="prometheus"}'
        - '{job="kubernetes-nodes"}'
        - '{job="kubernetes-apiservers"}'
        - '{job="kubernetes-service-endpoints"}'
        - '{job="kubernetes-cadvisor"}'
        - '{job="kubelet"}'
        - '{job="etcd"}'
        - '{job="kubernetes-services"}'
        - '{job="kubernetes-pods"}'
    scheme: https
    static_configs:
    - targets:
      - prom.mycompany.com
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-27 13:40:08

解决此问题的最佳实践是在运行Coredns的集群中运行一个prometheus实例,并将该prometheus所刮取的指标联合到您的外部prometheus中,使用docker-compose运行。

您可以阅读有关联邦这里的更多信息,以了解如何开始利用它。

更高级的用例是使用Thanos来更好地在不同的prometheus服务器之间分发查询,但要点仍然是在每个集群中运行内部prometheus服务器。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64088375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档