Azure Kubernetes - Prometheus 自动服务发现?

标签 azure kubernetes prometheus azure-aks

我已按照以下配置在我的 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

该堆栈有一个内置的发现机制 - 一个名为 ServiceMonitor 的 CRD:https://coreos.com/operators/prometheus/docs/latest/user-guides/running-exporters.html 。这是一个选择器,它将通过标签自动发现您的服务,进一步发现这些服务背后的 pod,并将它们加载到 Prometheus scrape 配置中。

关于Azure Kubernetes - Prometheus 自动服务发现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63896748/

相关文章:

kubernetes - 使用 prometheus 监控 pod 终止时间

sql - 在运行复制数据事件之前从目标表中删除数据

php - Azure blob 图像 - 加载到闪存时质量较差

go - 使用 client-go api 回滚部署

azure - Azure Kubernetes 服务是否支持 SSL3 协议(protocol)

node.js - 为 GKE kubernetes 集群选择 Node 大小

grafana - 普罗米修斯查询以计算唯一标签值

普罗米修斯 json 指标

c# - 类型或命名空间名称 'AspNetCore' 在命名空间 'Microsoft' 中不存在

azure - 在 SQL 连接器中使用存储过程?