RabbitMQ 모니터링

Instana 의 RabbitMQ 센서를 사용하여 RabbitMQ 인스턴스를 모니터링할 수 있습니다. Instana 에이전트를 설치하면 RabbitMQ 센서가 자동으로 배포 및 설치됩니다. Instana UI에서 RabbitMQ 인스턴스와 관련된 메트릭을 확인할 수 있습니다.

지원 정보

RabbitMQ 센서가 현재 사용 중인 환경과 호환되는지 확인하려면 다음 지원 정보 섹션을 참조하십시오:

지원되는 버전 및 지원 정책

이 센서는 3.6.x 부터 4.0 까지의 RabbitMQ 버전을 지원합니다.

다음 표는 최신 지원 버전 및 지원 정책을 보여줍니다:

기술 지원 정책 최신 기술 버전 최신 지원 버전
RabbitMQ 45일 4.3.4 4.3.2

지원 정책에 대한 자세한 내용은 ‘센서 지원 전략’을 참조하십시오.

구성

RabbitMQ 센서를 통한 모니터링을 활성화하려면 다음 설정이 필요합니다:

RabbitMQ 관리 플러그인 활성화

RabbitMQ 인스턴스에서 메트릭을 수집하려면 RabbitMQ Management 플러그인을 활성화하십시오. RabbitMQ 관리 플러그인을 활성화하려면 다음 명령을 실행하십시오:

rabbitmq-plugins enable rabbitmq_management
 

센서 인증 구성

RabbitMQ 관리 인터페이스에서 인증이 필요한 경우, 다음 예시와 같이 에이전트 <agent_install_dir>/etc/instana/configuration.yaml 구성 파일에 자격 증명을 추가하여 센서가 해당 자격 증명을 사용하도록 구성할 수 있습니다:

com.instana.plugin.rabbitmq:
  user: 'guest'
  password: 'guest'
 

사용자 지정 폴링 빈도

에이전트 configuration.yaml 파일의 매개변수를 %poll_rate; 사용하여, Instana 가 데이터와 메트릭을 수집하기 위해 RabbitMQ 을 폴링하는 빈도를 설정할 수 있습니다.
com.instana.plugin.rabbitmq:
  poll_rate: 5 # values are in seconds. Default value is 5 second.

컨텍스트 경로 설정

RabbitMQ 관리 인터페이스에 루트 경로가 아닌 다른 경로를 통해 접속하는 경우, 해당 contextPath 매개변수를 구성할 수 있습니다. 이 구성은 관리 인터페이스가 루트 경로( https://your-server:15672/ )가 아닌 다른 경로(예: https://your-server:15672/rabbitmq/ )에서 제공될 때 센서가 API URL을 올바르게 생성할 수 있도록 합니다.

컨텍스트 경로를 구성하려면 다음과 같이 에이전트 구성 파일에 contextPath 매개변수를 추가하십시오:

com.instana.plugin.rabbitmq:
  user: 'guest'
  password: 'guest'
  contextPath: '/rabbitmq' # Specify if RabbitMQ Management API is accessed through a non-root path
 

사용자 지정 포트 구성

기본적으로 RabbitMQ 관리 플러그인은 15672번 포트에서 HTTP 요청을 수신 대기합니다. 특정 요구 사항에 맞게 이 포트를 사용자 지정할 수 있습니다. HTTP 접속을 위해 관리 인터페이스가 다른 포트에서 실행되도록 하려면 해당 rabbitmq.conf 파일을 업데이트하십시오.

HTTP 의 사용자 지정 포트 구성

HTTP 접속을 위해 사용자 지정 포트를 구성하려면 파일에 rabbitmq.conf management.tcp.port 매개변수를 추가하십시오.

HTTPS 의 사용자 지정 포트 구성

HTTPS 접속을 허용하고 SSL / TLS 설정과 함께 사용자 지정 포트를 지정하려면, 파일에 rabbitmq.confmanagement.ssl.cacertfile 매개변수를 management.ssl.port 추가하십시오.

참고:
유효한 인증서 및 키 파일의 경로를 반드시 지정해야 합니다. 이 구성을 통해 HTTPS 을 통해 RabbitMQ 관리 UI에 안전하게 액세스할 수 있습니다.

메트릭 보기

메트릭을 보려면 다음 단계를 완료하십시오.

  1. Instana UI의 사이드바에서 ‘인프라’를 선택합니다.
  2. 모니터되는 특정 호스트를 클릭하십시오. 수집된 모든 메트릭과 모니터링 중인 프로세스가 표시된 호스트 대시보드를 확인할 수 있습니다.

RabbitMQ 노드 메트릭

각 RabbitMQ 노드에서 다음 지표들이 수집됩니다:

구성 데이터

다음 구성 데이터는 RabbitMQ 노드에서 수집됩니다:

  • 포트
  • 버전
  • Erlang 버전
  • 노드 이름
  • 노드 (개수)
  • 큐 (개수)
  • 채널 (개수)

성능 매트릭

RabbitMQ 센서는 5초마다 메트릭을 수집하며, 이는 RabbitMQ 서버의 기본 샘플링 빈도입니다.

RabbitMQ 관리 콘솔에는 기본 데이터 보존 정책이 설정되어 있습니다. 전체 데이터는 5초 간격으로 10분 5초 동안, 1분 간격으로 1시간 1분 동안, 그리고 10분 간격으로 약 8시간 동안 보관됩니다. 기본 데이터는 5초 간격으로 1분 5초 동안, 1분 간격으로 1시간 동안 저장됩니다. 상세 데이터는 10초 간격으로 10초 동안 저장됩니다. 이 세 가지 정책은 모두 필수 사항이며, 최소한 하나 이상의 유지 쌍(와 MaxAgeInSeconds 로 구성됨)이 SampleEveryNSeconds 필요합니다. 자세한 내용은 RabbitMQ 문서를 참조하십시오.

메시지

다음 메시지 메트릭은 RabbitMQ 노드에서 수집됩니다:

메트릭 설명
공개됨 발행된 메시지 수 (5초당) 입니다.
전달됨 전달된 메시지 수 (5초당) 입니다.
수신확인됨 클라이언트에 전달되고 수신확인된 메시지 수 (5초당) 입니다.
메시지 상태

다음 메시지 상태 지표들은 RabbitMQ 노드에서 수집됩니다:

메트릭 설명
준비 클라이언트에 전달할 준비가 된 메시지 수입니다.
수신확인되지 않음 클라이언트에 전달되었지만 아직 수신확인되지 않은 메시지 수입니다.
총계 큐에 있는 총 메시지 수입니다.
준비율 클라이언트에 전달할 준비가 된 초당 메시지 수입니다.
수신확인 비율 클라이언트에 전달되었지만 아직 수신확인되지 않은 초당 메시지 수입니다.
총 비율 큐에 있는 초당 총 메시지 수입니다.
개요

다음의 개요 지표들은 RabbitMQ 노드에서 수집됩니다:

메트릭 설명
이용자 이용자 수입니다.
연결 RabbitMQ 서버에 대한 현재 연결 수입니다.
노드 (노드별 메트릭)

각 RabbitMQ 노드에 대해 다음 지표가 수집됩니다:

메트릭 설명
사용된 파일 설명자 사용 중인 파일 디스크립터 수입니다.
총 파일 디스크립터 사용 가능한 모든 파일 디스크립터의 수입니다.
사용 중인 Erlang 프로세스 사용 중인 Erlang 프로세스의 수입니다.
최대 Erlang 프로세스 수 사용 가능한 최대 Erlang 프로세스 수입니다.
사용된 메모리 사용된 메모리의 양입니다.
메모리 한계 사용 가능한 최대 메모리입니다.
디스크 알람 임계값 알람 트리거를 방지하기 위해 유지보수해야 하는 사용하지 않은 디스크 공간의 양입니다.
디스크 여유 공간 사용하지 않은 디스크 공간의 양입니다.
사용된 소켓 소켓으로 사용되는 파일 디스크립터 수입니다.
총 소켓 소켓으로 사용할 수 있는 파일 디스크립터 수입니다.
대기열 (대기열별 지표)

기본적으로 큐 모니터링은 사용으로 설정되어 있지 않습니다. 심층 메트릭 모니터링을 사용하려면 모니터할 큐 (최대 1000개의 큐) 에 대해 에이전트에 알리십시오. 에이전트 구성 파일 <agent_install_dir>/etc/instana/configuration.yaml에서 모니터링을 위해 큐를 구성할 수 있습니다.

com.instana.plugin.rabbitmq:
  queuesRegex: '.*' # Regex pattern used for matching monitored queues
  queuesBasePath: '/api/queues/' # Configure the queues api base path
  monitorQueues:
    - queue: 'instana1' # name of the queue
      vhost: '/' # name of the vhost, default is '/'
    - queue: 'stan1' # name of the queue
      vhost: '/' # name of the vhost, default is '/'
 
  • queuesRegex: 이름별로 큐를 필터링하는 데 사용되는 선택적 regex 패턴입니다. monitorQueues 구성과 함께 사용할 수 있습니다.
  • queuesBasePath: 큐 API 에 대한 선택적 기본 경로. 기본적으로 경로는. /api/queues/입니다.

각 큐에 대해 다음 지표들이 수집됩니다:

메트릭 설명
메시지 준비됨 클라이언트에 전달할 준비가 된 메시지 수입니다.
수신확인되지 않은 메시지 클라이언트에 전달되었지만 아직 수신확인되지 않은 메시지 수입니다.
총 메시지 큐에 있는 모든 메시지의 수입니다.
이용자 큐의 메시지를 사용하는 이용자 수입니다.

건강 지표

각 센서에 대해 수신 메트릭에 대해 지속적으로 평가되고 사용자 영향에 따른 문제 또는 인시던트를 제기하는 데 사용되는 상태 시그니처의 큐레이트된 지식 기반입니다.

내장 이벤트는 엔티티의 상태 지표가 정상 범위를 벗어날 경우 이슈나 인시던트를 발생시키며, 사용자 정의 이벤트는 선택한 엔티티의 개별 메트릭 임계값을 기준으로 이슈나 인시던트를 발생시킵니다.

RabbitMQ 클러스터, RabbitMQ 서버, RabbitMQ 노드 및 RabbitMQ 큐에 대한 기본 제공 이벤트에 대한 자세한 정보는 기본 제공 이벤트 참조를 참조하십시오.

RabbitMQ 클러스터 메트릭

각 RabbitMQ 클러스터에서 다음 지표들이 수집됩니다:

구성 데이터

RabbitMQ 클러스터에서 다음 구성 데이터가 수집됩니다:

  • 클러스터 이름
  • 노드 (개수)

성능 매트릭

RabbitMQ 클러스터에서 다음 성능 지표들이 수집됩니다:

  • 작동 중인 노드 (개수)
  • 작동 중지된 노드 (개수)
  • CONNECTIONS(COUNT)
전체 메시지

다음 메시지 메트릭은 RabbitMQ 클러스터에서 수집됩니다:

메트릭 설명
전체 공개 클러스터 전체에 게시된 메시지 수 (5초당).
전체 전달 클러스터 전체에 전달된 메시지 수 (5초당).
전체 수신확인 클러스터 전체에서 클라이언트에 전달되고 수신 확인된 메시지 수(5초당).
전체 메시지 상태

RabbitMQ 클러스터에서 다음 메시지 상태 지표가 수집됩니다:

메트릭 설명
전체 준비 클러스터 전체의 클라이언트에 전달될 준비가 된 메시지 수.
전체 수신미확인 클러스터 전체에서 클라이언트에 전달되었으나 아직 확인되지 않은 메시지 수.
전체 합계 클러스터 전체의 모든 큐에 있는 메시지의 총 수.
전체 준비 비율 클러스터 전체의 클라이언트에 전달될 준비가 된 초당 메시지 수.
전체 수신미확인 비율 클라이언트에 전달되었으나 클러스터 전체에서 아직 수신 확인되지 않은 초당 메시지 수.
전체 총 비율 클러스터 전체의 모든 큐에 있는 초당 총 메시지 수를 집계합니다.
개요

다음은 RabbitMQ 클러스터에서 수집된 개요 지표입니다:

메트릭 설명
이용자 클러스터 전체의 소비자 수.
연결 RabbitMQ 클러스터에 대한 현재 연결 수입니다.
클러스터 노드

RabbitMQ 클러스터에서 다음 노드 메트릭이 수집됩니다:

메트릭 설명
버전 RabbitMQ 노드의 버전입니다.
사용된 파일 디스크립터 사용 중인 파일 디스크립터 수입니다.
사용된 메모리 사용된 메모리의 양입니다.
사용된 소켓 소켓으로 사용되는 파일 디스크립터 수입니다.
Erlang 프로세스 사용 중인 Erlang 프로세스 수입니다.
사용 가능한 디스크 사용하지 않은 디스크 공간의 양입니다.
디스크 알람 임계값 알람 트리거를 방지하기 위해 유지보수해야 하는 사용하지 않은 디스크 공간의 양입니다.