• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

OpenTelemetry를 사용하여 자체 호스팅 RabbitMQ를 모니터링하세요.

OpenTelemetry Collector를 설치하고 구성하여 Linux 호스트에서 실행 중인 RabbitMQ를 모니터링하세요. 이 종합 가이드는 Debian, Ubuntu, RHEL 및 CentOS 시스템의 설치, 설정 및 검증 과정을 단계별로 안내합니다.

설치 단계

자체 호스팅 RabbitMQ 인스턴스에 대한 모니터링을 설정하려면 다음 단계를 따르십시오.

시작하기 전에

사용 환경이 다음 요구 사항을 충족하는지 확인하십시오.

RabbitMQ 관리 플러그인을 활성화하세요.

관리 플러그인은 OpenTelemetry Collector가 수집하는 API를 제공합니다.

bash
$
sudo rabbitmq-plugins enable rabbitmq_management

제대로 작동하는지 확인하세요:

bash
$
curl -I -u admin:password http://localhost:15672/api/overview

응답에 HTTP/1.1 200 OK 표시되어야 합니다.

수집기 구성

/etc/otelcol-contrib/config.yaml 생성하거나 교체하세요:

receivers:
rabbitmq:
endpoint: http://localhost:15672
username: admin
password: password
collection_interval: 30s
metrics:
# Queue Metrics (essential for message flow and backlog)
rabbitmq.consumer.count:
enabled: true
rabbitmq.message.delivered:
enabled: true
rabbitmq.message.published:
enabled: true
rabbitmq.message.acknowledged:
enabled: true
rabbitmq.message.dropped:
enabled: true
rabbitmq.message.current:
enabled: true # Crucial for monitoring queue backlog, includes 'ready' and 'unacknowledged' states
# Node Health Metrics (critical for server resource monitoring)
rabbitmq.node.disk_free:
enabled: true
rabbitmq.node.disk_free_limit:
enabled: true
rabbitmq.node.disk_free_alarm:
enabled: true
rabbitmq.node.mem_used:
enabled: true
rabbitmq.node.mem_limit:
enabled: true
rabbitmq.node.mem_alarm:
enabled: true
rabbitmq.node.mem_used_details.rate:
enabled: true
rabbitmq.node.fd_used:
enabled: true
rabbitmq.node.fd_total:
enabled: true
rabbitmq.node.sockets_used:
enabled: true
rabbitmq.node.sockets_total:
enabled: true
rabbitmq.node.proc_used:
enabled: true
rabbitmq.node.proc_total:
enabled: true
rabbitmq.node.uptime:
enabled: true
rabbitmq.node.run_queue:
enabled: true
rabbitmq.node.processors:
enabled: true
rabbitmq.node.context_switches_details.rate:
enabled: true
rabbitmq.node.gc_num_details.rate:
enabled: true
rabbitmq.node.gc_bytes_reclaimed_details.rate:
enabled: true
# I/O Metrics (important for understanding disk and network activity)
rabbitmq.node.io_read_count_details.rate:
enabled: true
rabbitmq.node.io_read_bytes_details.rate:
enabled: true
rabbitmq.node.io_read_avg_time_details.rate:
enabled: true
rabbitmq.node.io_write_count_details.rate:
enabled: true
rabbitmq.node.io_write_bytes_details.rate:
enabled: true
rabbitmq.node.io_write_avg_time_details.rate:
enabled: true
rabbitmq.node.io_sync_count_details.rate:
enabled: true
rabbitmq.node.io_sync_avg_time_details.rate:
enabled: true
rabbitmq.node.io_seek_count_details.rate:
enabled: true
rabbitmq.node.io_seek_avg_time_details.rate:
enabled: true
rabbitmq.node.io_reopen_count_details.rate:
enabled: true
# Mnesia and Store Metrics (for internal database and message storage)
rabbitmq.node.mnesia_ram_tx_count_details.rate:
enabled: true
rabbitmq.node.mnesia_disk_tx_count_details.rate:
enabled: true
rabbitmq.node.msg_store_read_count_details.rate:
enabled: true
rabbitmq.node.msg_store_write_count_details.rate:
enabled: true
rabbitmq.node.queue_index_write_count_details.rate:
enabled: true
rabbitmq.node.queue_index_read_count_details.rate:
enabled: true
# Connection/Channel/Queue Lifecycle Metrics
rabbitmq.node.connection_created_details.rate:
enabled: true
rabbitmq.node.connection_closed_details.rate:
enabled: true
rabbitmq.node.channel_created_details.rate:
enabled: true
rabbitmq.node.channel_closed_details.rate:
enabled: true
rabbitmq.node.queue_declared_details.rate:
enabled: true
rabbitmq.node.queue_created_details.rate:
enabled: true
rabbitmq.node.queue_deleted_details.rate:
enabled: true
# processors: Process data before exporting.
processors:
resourcedetection:
detectors: [system]
system:
resource_attributes:
host.name:
enabled: true
host.id:
enabled: true
resource:
attributes:
- key: instrumentation.provider
value: opentelemetry
action: upsert
- key: rabbitmq.deployment.name
value: my-rabbitmq-server # Replace with your server name
action: upsert
batch:
send_batch_size: 1024
timeout: 30s
exporters:
otlphttp/newrelic:
endpoint: ${env:NEWRELIC_OTLP_ENDPOINT}
headers:
api-key: ${env:NEWRELIC_LICENSE_KEY}
compression: gzip
service:
pipelines:
metrics:
receivers: [rabbitmq]
processors: [resourcedetection, resource, batch]
exporters: [otlphttp/newrelic]

설정에서 다음 값을 업데이트하세요.

  • endpointRabbitMQ 관리 API URL (기본값: http://localhost:15672)
  • usernamepassword: RabbitMQ 자격 증명
  • rabbitmq.deployment.name이 RabbitMQ 인스턴스에 대한 고유한 이름입니다.
  • collection_interval메트릭을 수집하는 빈도(기본값: 30초)

환경 변수 설정

환경 변수에 대한 systemd 재정의 파일을 생성합니다.

bash
$
sudo mkdir -p /etc/systemd/system/otelcol-contrib.service.d

뉴렐릭 지역을 선택하세요:

bash
$
cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf
$
[Service]
$
Environment="NEWRELIC_OTLP_ENDPOINT=https://otlp.nr-data.net:4318"
$
Environment="NEWRELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
$
EOF

YOUR_LICENSE_KEY 뉴렐릭 클러스터 키로 바꿉니다.

bash
$
cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf
$
[Service]
$
Environment="NEWRELIC_OTLP_ENDPOINT=https://otlp.eu01.nr-data.net:4318"
$
Environment="NEWRELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
$
EOF

YOUR_LICENSE_KEY 뉴렐릭 클러스터 키로 바꿉니다.

systemd 다시 로드하고 수집기를 재시작하세요.

bash
$
sudo systemctl daemon-reload
$
sudo systemctl restart otelcol-contrib

뉴렐릭에서 데이터를 확인하세요

서비스 상태를 확인하세요:

bash
$
sudo systemctl status otelcol-contrib

출력 결과에 active (running) 표시되어야 합니다.

최근 로그 보기:

bash
$
sudo journalctl -u otelcol-contrib -n 50 --no-pager

데이터 수집이 성공적으로 완료되었음을 나타내는 메시지를 찾아보세요.

INFO RabbitmqReceiver Successfully scraped rabbitmq metrics

뉴렐릭에서 지표를 확인하세요.

데이터가 나타날 때까지 2-3분 정도 기다린 후 쿼리 빌더 에서 다음 쿼리를 실행하세요.

SELECT count(*)
FROM Metric
WHERE metricName LIKE 'rabbitmq.%'
AND instrumentation.provider = 'opentelemetry'
AND rabbitmq.deployment.name = 'my-rabbitmq-server'
FACET metricName
SINCE 10 minutes ago

다음과 같은 메트릭 이름이 표시될 것입니다.

  • rabbitmq.queue.count - 대기열 수
  • rabbitmq.queue.message.count - 큐 전체의 총 메시지 수
  • rabbitmq.connection.count - 활성 연결
  • rabbitmq.consumer.count - 적극적인 소비자

5분 후에도 데이터가 표시되지 않으면 아래 문제 해결, 해결 섹션을 확인하세요.

(선택 사항) RabbitMQ 로그를 뉴렐릭으로 전달합니다.

메트릭 외에도 포괄적인 옵저버빌리티를 위해 RabbitMQ 로그 로그를 뉴렐릭으로 전달할 수 있습니다. 이는 지표와 로그 전반에 걸쳐 문제를 연관시키는 데 도움이 됩니다.

중요

로그 포워딩에는 추가 설정 및 시스템 권한이 필요합니다. 진행하기 전에 필요한 접근 권한이 있는지 확인하십시오.

/etc/otelcol-contrib/config.yaml업데이트하여 파일 로그 수신기를 추가하세요.

receivers:
rabbitmq:
# ... existing rabbitmq config ...
# Add filelog receiver for RabbitMQ logs
filelog/rabbitmq:
include:
- /var/log/rabbitmq/*.log
- /var/log/rabbitmq/**/*.log
include_file_path: true
include_file_name: false
operators:
- type: regex_parser
regex: '^(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}) \[(?P<level>\w+)\] <(?P<pid>[^>]+)> (?P<message>.*)$'
timestamp:
parse_from: attributes.timestamp
layout: '%Y-%m-%d %H:%M:%S.%L'
severity:
parse_from: attributes.severity
processors:
# ... existing processors ...
transform/rabbitmq_logs:
log_statements:
- context: resource
statements:
- set(attributes["rabbitmq.display.name"], Concat(["server", attributes["rabbitmq.deployment.name"]], ":"))
service:
pipelines:
metrics:
receivers: [rabbitmq]
processors: [resourcedetection, resource, batch]
exporters: [otlphttp/newrelic]
logs/rabbitmq:
receivers: [filelog]
processors: [batch, resource, transform/rabbitmq_logs]
exporters: [otlphttp/newrelic]

수집기가 로그를 읽을 수 있는 권한을 부여하십시오. 한 가지 방법을 선택하세요:

rabbitmq 그룹에 추가:

bash
$
sudo usermod -a -G rabbitmq otelcol-contrib

또는 파일 권한을 설정하세요.

bash
$
sudo chmod 644 /var/log/rabbitmq/*.log

수집기를 재시작하세요:

bash
$
sudo systemctl restart otelcol-contrib

뉴렐릭에서 로그가 수집되고 있는지 확인하세요.

SELECT count(*)
FROM Log
WHERE service.name = 'rabbitmq'
AND rabbitmq.deployment.name = 'my-rabbitmq-server'
SINCE 10 minutes ago

데이터 찾기

몇 분 후 RabbitMQ 창이 뉴렐릭에 나타날 것입니다. 뉴럴릭 UI 의 다양한 보기에서 RabbitMQ 대역폭을 탐색하는 방법에 대한 자세한 지침은 데이터 찾기 및 검색을 참조하세요.

NRQL을 사용하여 데이터를 쿼리할 수도 있습니다.

FROM Metric SELECT * WHERE rabbitmq.deployment.name = 'my-rabbitmq-server'

문제점 해결

다음 단계

이제 RabbitMQ 모델 설정이 완료되었으므로 옵저버빌리티를 향상할 수 있습니다.

데이터를 살펴보세요:

모니터링 강화:

  • 알림 생성 - 큐 깊이 및 메시지 백로그에 대한 알림을 설정합니다.
  • 대시보드 구축 - RabbitMQ 지표를 시각화하기 위한 맞춤형 대시보드 생성
Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.