How to configure Rabbitmq Metric in Prometheus/Grafana Kubernetes

525 views
Skip to first unread message

Mohd Rashid

unread,
Sep 12, 2022, 7:27:44 AM9/12/22
to rabbitmq-users

My question i want to add rabbitmq monitoring in prometheus. I already have rabbitmq running in Kubernetes but i dont know how to add rabbitmq metric in prometheus

I have install promethues and grafana through yaml file along with pv,pvc,storage,svc,config,deploy and cluster-role

Here is the screenshot of rabbitmq showing empty in promethues enter image description here

I have install Kubernetes in one vm with local storage i.e.., control-plane and node both install in one vm and everything is working fine

Here is my prometheus-config yaml file

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) enter image description here

here is my rabbitmq-svc yaml file

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

Michal Kuratczyk

unread,
Sep 19, 2022, 2:29:53 AM9/19/22
to rabbitm...@googlegroups.com
Hi,

1. Seems like you are using RabbitMQ 3.7.3. It's over 4 years old and has not been supported for a long time. Please upgrade.

2. RabbitMQ Prometheus plugin was added in 3.8, so that's another reason to upgrade. 

3. Once you are running a supported version with the rabbitmq_prometheus plugin enabled, it will likely just work.
If not, have a look at the Monitoring guide for the RabbitMQ Operator:

Most of the guide is applicable regardless of whether you use the Operator or not.
RabbitMQ Cluster Operator is the recommended way of running RabbitMQ on Kubernetes though.

Best,

--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rabbitmq-users/e23cdb18-4042-44b8-be07-cd8dc2af813bn%40googlegroups.com.


--
Michał
RabbitMQ team
Reply all
Reply to author
Forward
0 new messages