Azure Kubernetes - Prometheus 自动服务发现?
Azure Kubernetes - Prometheus Automatic Service Discovery?
我已经按照以下配置在我的 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 服务并开始拉取指标?
我建议设置 kube-prometheus-stack
(以前的 prometheus-operator
)而不是使用裸 Prometheus:https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack
此堆栈中有一个 built-in 发现机制 - 一个名为 ServiceMonitor
:https://coreos.com/operators/prometheus/docs/latest/user-guides/running-exporters.html 的 CRD。这是一个选择器,它将 auto-discover 您的服务通过标签,进一步发现 pods 这些服务背后的内容,并将它们加载到 Prometheus 抓取配置中。
我已经按照以下配置在我的 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 服务并开始拉取指标?
我建议设置 kube-prometheus-stack
(以前的 prometheus-operator
)而不是使用裸 Prometheus:https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack
此堆栈中有一个 built-in 发现机制 - 一个名为 ServiceMonitor
:https://coreos.com/operators/prometheus/docs/latest/user-guides/running-exporters.html 的 CRD。这是一个选择器,它将 auto-discover 您的服务通过标签,进一步发现 pods 这些服务背后的内容,并将它们加载到 Prometheus 抓取配置中。