托管 Prometheus 服务提供基于 exporter 的方式来监控 RabbitMQ 运行状态,本文为您介绍如何在集群中部署 rabbitmq-exporter,并实现对 RabbitMQ 的监控。
apiVersion: v1 kind: Secret metadata: name: rabbitmq-demo namespace: volcano-metrics type: Opaque stringData: username: rabbitmq-username # 配置 RabbitMQ 的登录用户名 password: rabbitmq-password # 配置 RabbitMQ 的登录密码
apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq-exporter # 配置 exporter 的名称 namespace: volcano-metrics # 配置 exporter 的命名空间 labels: app-name: rabbitmq-exporter # 配置 exporter 的标签 spec: replicas: 1 # 配置 exporter 副本数 selector: matchLabels: app-name: rabbitmq-exporter # 根据业务需要调整成对应的名称,建议加上 RabbitMQ 实例的信息 template: metadata: labels: app-name: rabbitmq-exporter # 根据业务需要调整成对应的名称,建议加上 RabbitMQ 实例的信息 spec: containers: - name: postgres-exporter # 配置容器名称 image: kbudde/rabbitmq-exporter:latest # 拉取 Docker Hub 中的 exporter 镜像 env: - name: RABBIT_USER # 使用全局变量配置 RabbitMQ 的登录用户名 valueFrom: secretKeyRef: name: rabbitmq-demo key: username - name: RABBIT_PASSWORD # 使用全局变量配置 RabbitMQ 的登录密码 valueFrom: secretKeyRef: name: rabbitmq-demo key: password - name: RABBIT_URL # 使用全局变量配置 RabbitMQ 的地址和端口号 value: "x.x.x.x:15672" ports: - name: metric-port # 配置容器端口名称 containerPort: 9419 # 配置容器端口号
说明
rabbitmq-exporter 的详细参数,请参见 rabbitmq-exporter。
apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: rabbitmq-exporter # 配置 PodMonitor 的名称 namespace: volcano-metrics # 配置 PodMonitor 的命名空间 labels: volcengine.vmp: "true" # 配置 PodMonitor 的标签,允许被 Prometheus-agent 发现 spec: podMetricsEndpoints: - interval: 30s port: metric-port # 填写 exporter 的容器端口名称 path: /metrics # 填写指标暴露的 URI 路径,不填默认为 /metrics relabelings: # 配置指标的 relabel。如没有该需求,可省略。 - action: replace sourceLabels: - instance regex: (.*) targetLabel: instance replacement: 'rbtmq-xxxxxx' # 配置为 RabbitMQ 实例的 ID 值 namespaceSelector: matchNames: - volcano-metrics # 配置为 exporter 所在的命名空间 selector: matchLabels: app-name: rabbitmq-exporter # 配置 exporter 的 Label 值,以定位和选择目标 Pod
kubectl port-forward service/grafana 3000:3000 -n volcano-metrics
admin
密码admin
登录。说明
RabbitMQ-exporter 的详细参数,请参见 rabbitmq-exporter。