上一篇博客中,有说到用kube-prometheus安装prometheus全家桶,用来监控,其中演示了如何通过配置文件的形式来添加,它有点不好的地方,就要修改,可能还需要重启,不是自动的,不是特别方便。


下面介绍一个它自动服务发现的方式:

自动发现scrape api主要得力于prometheus-operator这个项目,这个项目是方便管理prometheus在k8s集群中的自定义资源、配置、监控对象等,十分的方便。

【2020.07.06】kube-prometheus中如何添加新scrape api?

其中,自定义资源ServiceMonitor它就能自动的获取到符合要求的metrics指标

自定义ServiceMonitor实现metrics指标自动获取(场景1)

  • 此方法适用于,你暴露metrics的service的namespacemonitoring下的
  • service中,添加annotations

  1. 【2020.07.06】kube-prometheus中如何添加新scrape api?
  2. 上面2个key,就是约定的,必须要有的,这样才能自动探测到,注意port要和service保持 一致
  • 新增servicemonitor定义

    • 【2020.07.06】kube-prometheus中如何添加新scrape api?
  • 验证

    • 【2020.07.06】kube-prometheus中如何添加新scrape api?
    • 至此就自动发现了,成功!
  • 附上完整文件
    •   1 apiVersion: apps/v1
        2 kind: Deployment
        3 metadata:
        4   name: rabbitmq-exporter-auto
        5   namespace: monitoring
        6   labels:
        7     app: rabbitmq-exporter-auto
        8     author: jamestao
        9 spec:
       10   replicas: 1
       11   selector:
       12     matchLabels:
       13       app: rabbitmqpod-auto
       14   template:
       15     metadata:
       16       name: rabbitmq-exporter-pod-auto
       17       labels:
       18         app: rabbitmqpod-auto
       19     spec:
       20       restartPolicy: Always
       21       containers:
       22         - name: rabbitmq-exporter-container-auto
       23           image: kbudde/rabbitmq-exporter:latest
       24           resources:
       25             requests:
       26               memory: 10Mi
       27           ports:
       28             - containerPort: 9419
       29           env:
       30             - name: RABBIT_URL
       31               value: http://192.168.26.91:15672
       32             - name: RABBIT_USER
       33               value: james
       34             - name: RABBIT_PASSWORD
       35               value: "666666"
       36             - name: INCLUDE_VHOST
       37               value: ".*"
       38             - name: INCLUDE_QUEUES
       39               value: ".*"
       40 ---
       41 apiVersion: v1
       42 kind: Service
       43 metadata:
       44   name: svc-rabbitmq-management-auto
       45   labels:
       46     app: rabbitmq-exporter-svc-auto
       47   namespace: monitoring
       48   annotations:
       49     prometheus.io/port: "39418"
       50     prometheus.io/scrape: "true"
       51 spec:
       52   selector:
       53     app: rabbitmqpod-auto
       54   ports:
       55     - protocol: TCP
       56       port: 39418
       57       targetPort: 9419
       58       name: metrics
       59 ---
       60 apiVersion: monitoring.coreos.com/v1
       61 kind: ServiceMonitor
       62 metadata:
       63   name: taozhiqiang
       64   namespace: monitoring
       65 spec:
       66   endpoints:
       67   - interval: 15s
       68     port: metrics
       69   namespaceSelector:
       70     matchNames:
       71     - monitoring
       72   selector:
       73     matchLabels:
       74       app: rabbitmq-exporter-svc-auto
      rabbitmq_exporter_auto.yaml

    相关文章:

    • 2021-11-03
    • 2021-11-27
    • 2022-01-12
    • 2021-10-07
    • 2023-03-21
    • 2021-11-21
    • 2021-10-13
    猜你喜欢
    • 2021-08-31
    • 2021-08-28
    • 2022-02-06
    • 2022-12-23
    • 2022-12-23
    • 2021-08-03
    • 2022-12-23
    相关资源
    相似解决方案