[K8S] RabbitMQ 컨테이너를 위한 Grafana 대시보드

Hyun-Sung Kim·2024년 8월 22일

Kubernetes

목록 보기
1/24

1. Grafana의 RabbitMQ 대시보드 템플릿

AWS에서 Amazon MQ를 운영할 경우, CloudWatch에서 제공해 주는 대시보드를 통해 MQ의 메트릭을 확인할 수 있지만
매니지드 서비스가 아닌, 우리가 MQ를 직접 구축해서 사용하는 경우 대시보드를 손수 구성해야 합니다.

Grafana는 아래와 같이 RabbitMQ를 위한 대시보드 템플릿을 제공하고 있기 때문에, 컨테이너 환경에서 실행되는 RabbitMQ 메트릭을 Prometheus로 내보내는 방법을 소개합니다.

2. 대시보드 구성 절차

2-1. 구성 절차(요약)

Prometheus와 Grafana가 사전구성되어 있다는 전제 하에, 그 이후 절차입니다.

  1. RabbitMQ가 프로메테우스 메트릭을 내보내도록, rabbitmq-prometheus 플러그인 활성화
  2. MQ SVC에 15692 port 추가 오픈
  3. 프로메테우스가 RabbitMQ 메트릭을 scrape 하도록 설정
  4. 프로메테우스 MQ영역 scrape interval을 15초로 하향 조정 (※ default : 1분)
  5. 프로메테우스 컨테이너 재 시작
  6. 대시보드 import

2-2. 구성 절차(상세)

* RabbitMQ에서 prometheus 플러그인 활성화

RabbitMQ에는 Prometheus 형식으로 메트릭을 노출하는 내장 플러그인이 있습니다.

이 플러그인이 노드, 연결, 대기열, 메시지 속도 등에 대한 RabbitMQ 메트릭을 노출해 주기 때문에 우리는 별도의 작업 없이 이 플러그인을 활용하면 됩니다.

* MQ의 deployment에서 15692 port 오픈

EKS/K8S 상에서 MQ를 위한 deployment에서 15692 port를 추가로 오픈해 줍니다.

ports:
- containerPort: 15692
name: prometheus
protocol: TCP

* MQ의 EKS의 Service에서 15692 port 오픈

마찬가지로 MQ를 위한 service에서 15692 port를 추가로 오픈해 줍니다.

  • name: prometheus
    port: 15692
    targetPort: 15692
    protocol: TCP

* 프로메테우스가 RabbitMQ 메트릭을 scrape 하도록 설정

  • job_name: rabbitmq
    static_configs:
    - targets:
    - localhost:15692

* 프로메테우스 MQ영역 scrape interval을 15초로 변경

해당 값을 명시적으로 선언하지 않을 경우, default 값은 1분입니다.
detailed monitoring이 필요한 경우 아래와 같이 15초로 지정해 줍니다.

global:

## How frequently to scrape targets by default
##
scrape_interval: 15s

profile
Cloud Engineer

0개의 댓글