简体   繁体   English

如何在 Prometheus/Grafana 中配置 Rabbitmq Metric Kubernetes

[英]How to configure Rabbitmq Metric in Prometheus/Grafana Kubernetes

My question i want to add rabbitmq monitoring in prometheus.我的问题我想在普罗米修斯中添加 rabbitmq 监控。 I already have rabbitmq running in Kubernetes but i dont know how to add rabbitmq metric in prometheus我已经在 Kubernetes 中运行了 rabbitmq 但我不知道如何在普罗米修斯中添加 rabbitmq 指标

I have install promethues and grafana through yaml file along with pv,pvc,storage,svc,config,deploy and cluster-role我已经通过 yaml 文件以及 pv、pvc、storage、svc、config、deploy 和 cluster-role 安装了 promethues 和 grafana

Here is the screenshot of rabbitmq showing empty in promethues这是 rabbitmq 在 promethues 中显示为空的屏幕截图在此处输入图像描述

I have install Kubernetes in one vm with local storage ie., control-plane and node both install in one vm and everything is working fine我已经在一个带有本地存储的虚拟机中安装了 Kubernetes,即控制平面和节点都安装在一个虚拟机中,一切正常

Here is my prometheus-config yaml file这是我的 prometheus-config yaml 文件

apiVersion: v1
kind: ConfigMap
metadata:
  name: prometheus-config
  namespace: monitoring
data:
  prometheus.yml: |
    global:
      scrape_interval: 5s
      evaluation_interval: 5s
    rule_files:
      - /etc/prometheus/prometheus.rules
    alerting:
      alertmanagers:
      - scheme: http
        static_configs:
        - targets:
          - "alertmanager.monitoring.svc:9093"

    scrape_configs:
      - job_name: 'kubernetes-apiservers'

        kubernetes_sd_configs:
        - role: endpoints
        scheme: https

        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

        relabel_configs:
        - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
          action: keep
          regex: default;kubernetes;https

      - job_name: 'kubernetes-nodes'

        scheme: https

        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

        kubernetes_sd_configs:
        - role: node

        relabel_configs:
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)
        - target_label: __address__
          replacement: kubernetes.default.svc:443
        - source_labels: [__meta_kubernetes_node_name]
          regex: (.+)
          target_label: __metrics_path__
          replacement: /api/v1/nodes/${1}/proxy/metrics

      
      - job_name: 'kubernetes-pods'

        kubernetes_sd_configs:
        - role: pod

        relabel_configs:
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
          action: keep
          regex: true
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
          action: replace
          target_label: __metrics_path__
          regex: (.+)
        - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
          action: replace
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
          target_label: __address__
        - action: labelmap
          regex: __meta_kubernetes_pod_label_(.+)
        - source_labels: [__meta_kubernetes_namespace]
          action: replace
          target_label: kubernetes_namespace
        - source_labels: [__meta_kubernetes_pod_name]
          action: replace
          target_label: kubernetes_pod_name
      
      - job_name: 'kube-state-metrics'
        static_configs:
          - targets: ['kube-state-metrics.kube-system.svc.cluster.local:8080']

      - job_name: 'kubernetes-cadvisor'

        scheme: https

        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

        kubernetes_sd_configs:
        - role: node

        relabel_configs:
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)
        - target_label: __address__
          replacement: kubernetes.default.svc:443
        - source_labels: [__meta_kubernetes_node_name]
          regex: (.+)
          target_label: __metrics_path__
          replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
      
      - job_name: 'kubernetes-service-endpoints'

        kubernetes_sd_configs:
        - role: endpoints

        relabel_configs:
        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
          action: keep
          regex: true
        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
          action: replace
          target_label: __scheme__
          regex: (https?)
        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
          action: replace
          target_label: __metrics_path__
          regex: (.+)
        - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
          action: replace
          target_label: __address__
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
        - action: labelmap
          regex: __meta_kubernetes_service_label_(.+)
        - source_labels: [__meta_kubernetes_namespace]
          action: replace
          target_label: kubernetes_namespace
        - source_labels: [__meta_kubernetes_service_name]
          action: replace
          target_label: kubernetes_name
      
      - job_name: 'rabbitmq'
        metrics_path: /metrics
        scrape_interval: 5s
        kubernetes_sd_configs:
        - role: endpoints
          namespaces:
            names:
              - default

        relabel_configs:
          - source_labels: [__meta_kubernetes_service_label_app]
            separator: ;
            regex: rabbitmq
            replacement: $1
            action: keep
          - source_labels: [__meta_kubernetes_endpoint_port_name]
            separator: ;
            regex: prometheus

Even after adding rabbitmq metric it is not showing in prometheus url (target)即使在添加 rabbitmq 指标后,它也没有在普罗米修斯 url (目标)中显示在此处输入图像描述

here is my rabbitmq-svc yaml file这是我的 rabbitmq-svc yaml 文件

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: xxx-rabbitmq
spec:
  selector:
    matchLabels:
      app: xxx-rabbitmq
  serviceName: xxx-rabbitmq
  replicas: 1
  template:
    metadata:
      labels:
        app: xxx-rabbitmq
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: xxx-rabbitmq
        image: rabbitmq:3.7.3-management
        ports:
        - containerPort: xxx
        - containerPort: xxx
        - containerPort: xxx
        - containerPort: xxx        
        volumeMounts:
        - name: xxx-rabbitmq-pvc
          mountPath: /var/lib/rabbitmq
          subPath: rabbitmq
        envFrom:
        - configMapRef:
            name: rabbitmq-config

  volumeClaimTemplates:
    - metadata:
        name: xxx-rabbitmq-pvc
      spec:
        accessModes: ["ReadWriteOnce"]
        volumeMode: Filesystem
        storageClassName: xxxx-storage
        resources:
          requests:
           storage: 10Gi  
---
apiVersion: v1
kind: Service
metadata:
  name: xxx-rabbitmq
  labels:
    app: xxx-rabbitmq
spec:
  type: ClusterIP
  ports: 
  - port: xxx
    name: main
  - port: xxx
    name: rabbitmqssl
  - port: xxx
    name: rabvitmqmgmt
  selector:
    app: xxx-rabbitmq

Please help me out how to get all information of rabbitmq in promethues/grafana请帮助我如何在 promethues/grafana 中获取 rabbitmq 的所有信息

If you use rabbitmq of version 3.8 and above you have to use rabbitmq_prometheus plugin.如果你使用3.8及以上版本的rabbitmq ,你必须使用rabbitmq_prometheus插件。

As the docs state:作为文档state:

The plugin exposes all RabbitMQ metrics on a dedicated TCP port, in Prometheus text format.该插件以 Prometheus 文本格式在专用 TCP 端口上公开所有 RabbitMQ 指标。

To enable it run:要启用它,请运行:

rabbitmq-plugins enable rabbitmq_prometheus

To validate it's working run inside rabbitmq container:要验证它是否在rabbitmq容器内运行:

curl -s localhost:15692/metrics | head -n 3

and see if you get metrics in response.看看你是否得到指标作为回应。

For versions prior to 3.8, you'd have to use prometheus_rabbitmq_exporter对于 3.8 之前的版本,您必须使用prometheus_rabbitmq_exporter

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在 Kubernetes 中为 RabbitMQ 警报设置 Prometheus / Grafana - Setting up Prometheus / Grafana in Kubernetes for RabbitMQ alerts 使用来自 Kubernetes 度量服务器的 PromQL (prometheus) 列出 Grafana 上的命名空间名称、命名空间年龄和状态 - List Namespace name, Namespace Age, and Status on Grafana using PromQL (prometheus) from Kubernetes Metric server 在kubernetes(gcloud)上设置Prometheus / Grafana - Prometheus / Grafana setup on kubernetes (gcloud) 如何配置 istio 以使用外部监控系统(Prometheus 和 Grafana) - How to configure istio to use external monitoring system (Prometheus and Grafana) 在 Kubernetes 上的 Grafana 中设置 Prometheus 数据源时出错 - Error in setting Prometheus datasource in Grafana on Kubernetes 在Kubernetes的Grafana仪表板中无法获取Prometheus数据 - Can not get Prometheus data in Grafana dashboard in Kubernetes 用于水平自动缩放的 kubernetes / prometheus 自定义指标 - kubernetes / prometheus custom metric for horizontal autoscaling 如何启用 Prometheus/Grafana 以显示我的 rabbitmq 指标? 目前没有显示数据 - How do i enable Prometheus/Grafana to show my rabbitmq metrics ? It currently shows no data 如何使用Istio的Prometheus配置kubernetes hpa? - How to use Istio's Prometheus to configure kubernetes hpa? 最适合 grafana sysdig 的 prometheus 指标数据 model - Best fit prometheus metric data model for grafana sysdig
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM