基于prometheus operator引入外部exporter

基于k8s平台部署prometheus operator 引入外部exporter的数据
场景为
prometheus operator部署在k8s集群内部 rabbitmq在集群外部 我需要拿到外部的rabbitmq exporter
prometheus operator 通过crd 以及webhook controller 实现了一部分自己的逻辑在里面 所以我们通过操作crd 的cr 就可以对k8s内部资源做修改
ep.yaml
kubectl apply -f ep.yaml -n xxx
xxx是prometheus的ns

apiVersion: v1
kind: Endpoints
metadata:
  name: rabbitmq
  labels:
  #标签很重要 service 以及ep 都需要有相同的标签
    k8s-app: rabbitmq
subsets:
  - addresses:
      - ip: 外部exporter的ip
    ports:
    - name: metrics
      port: 外部exporter的端口
      protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
    name: rabbitmq
    labels:
        k8s-app: rabbitmq
spec:
    type: ExternalName
    externalName: 外部exporter的ip
    clusterIP: ""
    ports:
      - port: 外部exporter的端口
        protocol: TCP
        targetPort: 外部exporter的端口
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
    name: rabbitmq
    labels:
        k8s-app: rabbitmq
        prometheus: kube-prometheus
spec:
    selector:
        matchLabels:
           #具备什么样的标签我去收集 这里需要跟上面对应
            k8s-app: rabbitmq
        namespaceSelector:
            matchNames:
            - monitoring
    endpoints:
    - port: metrics
     #多久采集一次
      interval: 10s
      honorLabels: true

部署完之后 等待一小会 prometheus 支持配置热更 要么重启prome 要么等待他热更完毕 可以在ui的
在这里插入图片描述
在这里插入图片描述
如图就已经配置成功,可以在grafana中配置rabbitmq的仪表盘

猜你喜欢

转载自blog.csdn.net/weixin_45413603/article/details/107618020