Azure Kubernetes - Prometheus自动服务发现?

h22fl7wq  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(118)

我已经按照以下配置在我的Azure Kubernetes上安装和配置了Prometheus

prometheus_values.yaml
======================
global:
  scrape_interval: 1m
  scrape_timeout: 10s
  evaluation_interval: 1m
# Forcing Kubelet metrics scraping on http 
kubelet:
  enabled: true
  serviceMonitor:
    https: false
# Disabling scraping of Master Nodes Components
kubeControllerManager:
  enabled: false
kubeScheduler:
  enabled: false
kubeEtcd:
  enabled: false
kubeProxy:
  enabled: false
scrape_configs:
- job_name: dev-go-app
  static_configs:
  - targets: ['40.x.x.x:8080']
- job_name: default-go-app
  static_configs:
  - targets: ['40.x.x.x:8080']

并安装了prometheus,如下所示

Installing prometheus
=====================
helm upgrade --install prometheus \
--namespace monitoring \
stable/prometheus \
--values prometheus_values.yaml

看起来我必须手动更新Prometheus配置并为每个应用程序申请,这是一项艰巨的任务,特别是当我在同一个Azure Kubernetes集群中有100多个应用程序时。
有没有一种方法可以让Prometheus自动发现Kubernetes服务并开始提取指标?

5n0oy7gb

5n0oy7gb1#

我建议不要使用裸Prometheus,而是设置kube-prometheus-stack(以前的prometheus-operator):https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack
这个堆栈有一个内置的发现机制-一个名为ServiceMonitor的CRD:https://coreos.com/operators/prometheus/docs/latest/user-guides/running-exporters.html。这是一个选择器,它会通过标签自动发现你的服务,进一步发现这些服务背后的Pod,并将它们加载到Prometheus scrap config中。

相关问题