

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Prometheus 지표 액세스
<a name="rabbitmq-prometheus-metrics"></a>

**참고**  
Prometheus 지표는 RabbitMQ 4.2 이상에서만 사용할 수 있습니다. ActiveMQ 브로커는 Prometheus 지표를 지원하지 않습니다.

이제 Amazon MQ는 RabbitMQ용 Amazon MQ 브로커에 대한 Prometheus 지표를 지원합니다. Prometheus 지표를 사용하면 브로커 관찰성을 기존 모니터링 인프라에 통합하여 다른 서비스와 함께 브로커 성능을 통합적으로 볼 수 있습니다. Prometheus 지표를 사용하면 세분화된 알림 및 대시보드를 설정하여 메시징 워크로드의 문제를 사전에 감지하고 대응할 수 있습니다.

RabbitMQ 4.2부터 RabbitMQ용 Amazon MQ는 Prometheus 지표를 지원하므로 Prometheus 모니터링 시스템을 사용하여 브로커 지표를 스크레이프할 수 있습니다. RabbitMQ 지원되는 엔드포인트는 다음과 같습니다.
+ `/metrics`
+ `/metrics/detailed`
+ `/metrics/memory-breakdown`

`/metrics/per-object` 엔드포인트는 지원되지 않습니다.

각 엔드포인트에서 노출되는 지표에 대한 자세한 내용은 RabbitMQ 설명서의 [Prometheus 지표](https://www.rabbitmq.com/docs/prometheus#metric-aggregation)를 참조하세요.

## Prometheus 지표와 CloudWatch 지표 비교
<a name="rabbitmq-prometheus-metrics-vs-cloudwatch"></a>

RabbitMQ용 Amazon MQ는 Prometheus 엔드포인트와 CloudWatch를 통해 지표를 노출합니다. 둘 다 브로커 상태에 대한 가시성을 제공하지만 범위와 사용량은 다릅니다.

Prometheus 엔드포인트는 연결 이탈, 채널 활동, 대기열 및 교환 통계, Raft 합의 지표와 같은 광범위한 브로커 내부를 포함하는 RabbitMQ 브로커 상태에 대한 더 풍부한 집계 지표 세트를 제공합니다. 이는 기존 Prometheus 기반 모니터링 인프라 및 세분화된 알림과 통합하는 데 적합합니다.

CloudWatch 지표는 Prometheus 엔드포인트에서 얻은 브로커 지표의 선별된 하위 집합입니다. 사용 가능한 CloudWatch 지표의 전체 목록은 섹션을 참조하세요[RabbitMQ용 Amazon MQ 브로커에 사용 가능한 CloudWatch 지표](rabbitmq-logging-monitoring.md).

CloudWatch에서 지표는 항상 시각화 전 최소 60초 간격으로 집계됩니다. 반대로 Prometheus는 원시 지표 데이터 포인트를 노출하고 Grafana와 같은 대시보드 솔루션은 기본적으로 집계 없이 개별 데이터 포인트를 시각화합니다. 따라서 동일한 지표의 시각화는 CloudWatch에 사용되는 통계에 따라 CloudWatch와 Prometheus 간에 다를 수 있습니다.

**참고**  
RabbitMQ용 Amazon MQ 운영 지표의 집계되지 않은 모니터링에는 Prometheus를 사용하는 것이 좋습니다.

## Prometheus 엔드포인트 가져오기 및 액세스
<a name="rabbitmq-prometheus-metrics-endpoint"></a>

 AWS Management Console 또는를 사용하여 RabbitMQ용 Amazon MQ 브로커의 Prometheus 엔드포인트를 얻을 수 있습니다 AWS CLI.
+ **AWS Management Console** - Amazon MQ 콘솔로 이동하여 브로커의 세부 정보 페이지를 열고 **연결** 섹션에서 Prometheus 엔드포인트를 찾습니다.
+ **AWS CLI** - `describe-broker` 명령을 사용합니다.

  ```
  aws mq describe-broker --broker-id <broker-id>
  ```

  Prometheus 엔드포인트는의 응답으로 반환됩니다`BrokerInstances.Endpoints`.

RabbitMQ Prometheus용 Amazon MQ 지원은 브로커와 동일한 인증 체계를 사용합니다. RabbitMQ 지원되는 인증 방법에 대한 자세한 내용은 섹션을 참조하세요[RabbitMQ 인증 및 권한 부여를 위한 Amazon MQ RabbitMQ](rabbitmq-authentication.md). Prometheus에서 인증을 구성하는 방법을 알아보려면 Prometheus 설명서의 [http\_config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#http_config)를 참조하세요.

## Prometheus 구성 모범 사례
<a name="rabbitmq-prometheus-metrics-best-practices"></a>
+ 60초 이상의 스크레이핑 기간을 구성합니다. 이는 운영 안전을 위해 권장됩니다.

## 샘플 스크레이핑 구성
<a name="rabbitmq-prometheus-metrics-sample-config"></a>

다음 섹션에서는 RabbitMQ용 Amazon MQ에 대한 샘플 Prometheus 스크레이핑 구성을 제공합니다. `<broker-prometheus-endpoint>`를 브로커의 Prometheus 엔드포인트 호스트 이름으로 바꾸고 `<username>`를 브로커 자격 증명`<password>`으로 바꿉니다.

### 권장 구성
<a name="rabbitmq-prometheus-metrics-sample-config-recommended"></a>

대부분의 사용 사례에는 다음 구성을 사용하는 것이 좋습니다. `/metrics` 엔드포인트를 스크래핑하면 전체 클러스터 상태에 대한 잘 집계된 지표가 제공되므로 세부 지표 수집의 오버헤드 없이 브로커 성능을 명확하게 파악할 수 있습니다.

```
global:
  scrape_interval: 60s

scrape_configs:
  - job_name: 'rabbitmq-aws-cluster'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics'
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
```

### 세부 지표 구성
<a name="rabbitmq-prometheus-metrics-sample-config-detailed"></a>

다음 구성은 특정 브로커 구성 요소에 대한 심층적인 관찰성을 위해 추가 세부 지표 패밀리를 스크레이프합니다.

```
global:
  scrape_interval: 60s

scrape_configs:
  - job_name: 'rabbitmq-connection-churn'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['connection_churn_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-ra'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['ra_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-queue'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['queue_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-exchange'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['exchange_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-connection'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['connection_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-channel'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['channel_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-exchange-count'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['exchange_names']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
```