메인 콘텐츠로 건너뛰기
RabbitMQ 브로커를 연결하여 Tony(데이터베이스 엔지니어)가 큐 깊이를 모니터링하고, 컨슈머 지연을 분석하며, 데드 레터 큐를 검사하고, 클러스터 및 노드 상태를 추적할 수 있도록 합니다. RabbitMQ는 Management HTTP API(기본 포트 15672)를 통해 사용자 이름과 비밀번호로 인증합니다 — RabbitMQ 관리 UI와 동일한 API를 사용하므로 별도의 AMQP 클라이언트 설정이 필요하지 않습니다.

지원 플랫폼

플랫폼지원
자체 호스팅 RabbitMQmanagement 플러그인이 활성화된 3.8 이상
매니지드 RabbitMQCloudAMQP 및 Management HTTP API를 제공하는 기타 공급자

사전 요구 사항

  • CloudThinker에서 management 포트(기본값 15672, HTTPS의 경우 15671)로 접근 가능한 RabbitMQ 브로커.
  • management 플러그인 활성화. 자체 호스팅 브로커의 경우:
    rabbitmq-plugins enable rabbitmq_management
    
  • Management HTTP API에서 큐, 노드, 클러스터 데이터를 반환하도록 monitoring 또는 administrator 태그가 지정된 브로커 사용자.
monitoring 태그는 모든 읽기 및 상태 확인 기능에 충분합니다. 에이전트가 게이트된 쓰기 작업(큐/익스체인지 삭제, 정의 업데이트)을 실행하도록 하려는 경우에만 administrator를 부여하세요 — 이러한 작업은 항상 앱 내 승인이 필요합니다. 필요 권한을 참고하세요.

설정

1

management 플러그인 활성화

자체 호스팅 브로커에서 management 플러그인을 활성화하고 수신 중임을 확인합니다:
rabbitmq-plugins enable rabbitmq_management
curl -u <user>:<password> http://localhost:15672/api/overview
CloudAMQP와 같은 매니지드 공급자는 Management HTTP API를 기본으로 제공합니다 — 다음 단계로 건너뛰세요.
2

모니터링 사용자 생성

CloudThinker 전용 사용자를 생성하고 monitoring 태그를 지정합니다:
rabbitmqctl add_user cloudthinker <strong-password>
rabbitmqctl set_user_tags cloudthinker monitoring
rabbitmqctl set_permissions -p / cloudthinker "" "" ".*"
monitoring 태그는 모든 가상 호스트의 큐, 익스체인지, 노드, 클러스터 상태에 대한 읽기 접근 권한을 부여합니다.
3

네트워크 접근 확인

CloudThinker가 <host>:15672(또는 TLS의 경우 <host>:15671)에서 브로커에 접근할 수 있는지 확인합니다. CloudThinker의 이그레스를 위해 방화벽 또는 보안 그룹에서 management 포트를 엽니다.
4

CloudThinker에 연결 추가

Connections → RabbitMQ로 이동하여 다음을 입력합니다:
  • Username: 브로커 사용자 (예: cloudthinker)
  • Password: 사용자 비밀번호
  • Host: 브로커 호스트명 또는 IP (스킴 및 포트 제외)
  • Management Port: management API 포트 (기본값 15672)
  • Use TLS: HTTPS management API 및 AMQPS 사용 시 활성화
  • Log Level: 커넥터 로그 상세도 (기본값 info)
Connect를 클릭합니다. CloudThinker가 Management HTTP API에 대해 자격 증명을 확인하고 Connected 상태를 표시합니다.
Host에는 호스트명만 입력하세요 — http://, https://, 또는 포트를 포함하지 마세요. HTTP와 HTTPS 선택에는 Use TLS 토글을, 포트 설정에는 Management Port를 사용하세요.

연결 세부 정보

필드설명기본값
RABBITMQ_USERNAMEmonitoring 또는 administrator 태그가 있는 브로커 사용자
RABBITMQ_PASSWORD브로커 사용자 비밀번호
RABBITMQ_HOST브로커 호스트명 또는 IP (스킴 및 포트 제외)
RABBITMQ_MANAGEMENT_PORTManagement HTTP API 포트15672
RABBITMQ_USE_TLSHTTP + AMQP는 Disabled, HTTPS + AMQPS는 EnabledDisabled
LOG_LEVEL커넥터 로그 상세도: debug, info, warn, errorinfo
management API는 HTTP의 경우 15672, HTTPS의 경우 15671에서 수신합니다. Use TLS를 활성화할 때는 Management Port를 TLS management 포트로 설정하세요.

필요 권한

연결 사용자는 HTTP API가 브로커 데이터를 반환하도록 management 태그가 필요합니다:
태그활성화 기능
monitoring큐, 익스체인지, 바인딩, 연결, 채널, 노드, 클러스터, 상태 확인에 대한 읽기 접근 — 모든 모니터링 및 진단 기능 포함.
administratormonitoring의 모든 기능에 더해 게이트된 쓰기 작업(큐 삭제/비우기, 익스체인지 삭제, 정의 업데이트).
최소 권한 원칙을 따르세요: monitoring 태그는 큐, 컨슈머 지연, DLQ, 클러스터 상태 조사에 충분합니다. 아래 설명된 게이트된 쓰기 작업을 실행하려는 경우에만 administrator를 사용하세요.

쓰기 작업은 승인 필요

이 연결에는 네 가지 변경 도구가 활성화되어 있습니다. 이 도구들은 항상 앱 내 승인을 통해 게이트됩니다 — 에이전트가 실행하기 전에 확인을 요청해야 합니다:
  • delete_queue — 큐 삭제
  • purge_queue — 큐의 모든 메시지 삭제
  • delete_exchange — 익스체인지 삭제
  • update_definition — 브로커 정의 수정
기타 모든 기능은 읽기 전용입니다. 파괴적인 작업에는 브로커 사용자가 대상 가상 호스트에 대한 쓰기 권한과 함께 administrator 태그를 갖고 있어야 합니다.

에이전트 기능

연결 후 Tony는 다음을 수행할 수 있습니다:
기능설명
큐 깊이 및 메시지 속도큐 깊이, 준비/미확인 메시지, 게시/전달 속도 스냅샷
컨슈머 지연높은 컨슈머 지연 또는 컨슈머가 없는 큐 식별
데드 레터 분석포이즌 메시지 및 오류 패턴에 대한 데드 레터 큐 검사
클러스터 및 노드 상태노드 상태, 로컬 및 글로벌 알람, 쿼럼 크리티컬 큐 확인
알람 및 인증서 확인알람 상태의 브로커 및 만료 임박한 인증서 감지
게이트된 쓰기 작업큐 비우기 또는 삭제, 익스체인지 삭제, 정의 업데이트 — 각 작업은 앱 내 승인 필요

연결 확인

@tony show RabbitMQ cluster status and list all queues with their current depths

예시 프롬프트

@tony check all queues for abnormal depth or zero-consumer conditions and #alert on any queue growing faster than 500 msg/s
@tony identify queues with high consumer lag and inspect their dead-letter queues for poison messages, then #recommend remediation steps
@tony check cluster node status, alarms, quorum-critical queues, and certificate expiration; #alert on any node down or in alarm

문제 해결

  • <host>:15672(또는 TLS management 포트)에서 CloudThinker가 브로커에 접근할 수 있는지 확인합니다.
  • 방화벽 또는 보안 그룹에서 AMQP 포트 5672가 아닌 management 포트가 열려 있는지 확인합니다.
  • 자체 호스팅 브로커의 경우, RabbitMQ가 127.0.0.1이 아닌 접근 가능한 인터페이스에 바인딩되어 있는지 확인합니다.
management 플러그인이 활성화되지 않았습니다. rabbitmq-plugins enable rabbitmq_management를 실행하고 다시 시도하세요. 매니지드 공급자의 경우, 해당 인스턴스에 Management HTTP API가 제공되는지 확인하세요.
  • 사용자 이름과 비밀번호를 확인합니다.
  • 사용자에게 monitoring 또는 administrator 태그가 있는지 확인합니다: rabbitmqctl set_user_tags <user> monitoring.
  • management 태그가 없는 사용자는 AMQP 인증은 가능하지만 Management HTTP API에서는 거부됩니다.
  • Use TLS가 브로커 설정과 일치하는지 확인합니다: management API가 HTTPS를 제공할 때(일반적으로 포트 15671)만 활성화합니다.
  • Use TLS가 활성화되어 있지만 포트가 일반 HTTP를 제공하는 경우(또는 그 반대), 연결이 실패합니다 — 토글과 Management Port를 맞추세요.
  • monitoring 사용자가 일부 가상 호스트에 권한이 없을 수 있습니다. 조회할 vhost에 대해 읽기 권한을 부여하세요: rabbitmqctl set_permissions -p <vhost> <user> "" "" ".*".

보안

  • 최소 권한 — 에이전트가 사용 사례에 필요한 권한만 부여하세요. 읽기 전용으로 시작한 후 필요에 따라 확장하세요.
  • 기본 읽기 전용 — 에이전트가 이 연결을 통해 변경 작업을 수행하게 할 것이 아니라면 읽기 전용 자격증명을 사용하세요.
  • 자격증명 교체 — 정기 일정에 따라 키와 토큰을 교체하세요. 연결을 업데이트하면 CloudThinker가 새 값을 자동으로 반영합니다.
  • 오프보딩 시 취소 — 연결을 삭제하거나 팀원이 퇴사할 때 프로바이더에서 자격증명을 제거하세요.
  • 전용 사용자 — 별도의 cloudthinker 브로커 사용자를 생성하고, guest 또는 관리자 계정을 재사용하지 마세요.
  • 전송 중 TLSUse TLS를 활성화하여 CloudThinker와 브로커 간의 management API 트래픽을 암호화합니다.

관련 항목

Tony 에이전트

데이터베이스 중심 모니터링 및 최적화 에이전트
https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/kafka.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=f977ba21911cea4b67d99e55c7565058

Kafka 연결

Apache Kafka 스트리밍 설정 가이드