New Relic RabbitMQ 온-호스트 통합 은 클러스터, 가상 호스트, 대기열, 교환 및 소비자와 관련된 중요한 메트릭을 포함하여 RabbitMQ 서비스의 메트릭 및 구성 데이터를 보고합니다.
호환성 및 요구 사항
우리의 통합은 다음과 호환됩니다.
- 메트릭 데이터용 RabbitMQ 버전 3.0 이상.
- 인벤토리 데이터용 RabbitMQ 버전 3.7 이상.
통합을 설치하기 전에 다음 요구 사항을 충족하는지 확인하십시오.
RabbitMQ 관리 플러그인 이 구성되었습니다.
루트 사용자의
PATH
에 있는 RabbitMQ 명령줄 도구, rabbitmqctl .RabbitMQ가 Kubernetes 또는 Amazon ECS에서 실행되고 있지 않으면 RabbitMQ를 실행하는 호스트에 인프라 에이전트를 설치 해야 합니다. 그렇지 않으면:
설치 및 활성화
RabbitMQ 통합을 설치하려면 환경에 대한 지침을 따르세요.
' '
추가 참고 사항:
- 고급: 통합은 패키지 관리자 외부에서 설치할 수 있도록 tarball 형식 으로도 제공됩니다.
- 호스트 내 통합은 자동으로 업데이트되지 않습니다. 최상의 결과를 얻으 려면 통합 패키지 및 인프라 에이전트 를 정기적으로 업데이트하십시오.
중요
이 통합은 호스트당 하나의 RabbitMQ 서버 인스턴스만 모니터링할 수 있습니다.
이 문서가 설치하는데 도움이 되셨나요?
통합 구성
통합의 YAML 형식 구성은 필수 로그인 자격 증명을 배치하고 데이터 수집 방법을 구성할 수 있는 곳입니다. 변경하는 옵션은 설정 및 기본 설정에 따라 다릅니다.
설치 방법에 따라 통합을 구성하는 몇 가지 방법이 있습니다.
- Kubernetes를 통해 활성화된 경우: Kubernetes에서 실행 중인 서비스 모니터링을 참조하십시오.
- Amazon ECS를 통해 활성화된 경우: ECS에서 실행 중인 서비스 모니터링을 참조하십시오.
- 호스트에 설치된 경우: 통합의 YAML 구성 파일
rabbitmq-config.yml
에서 구성을 편집합니다.
예제 구성은 예제 구성 파일 을 참조하십시오.
구성 파일에는 interval
, timeout
, inventory_source
와 같은 모든 통합에 적용할 수 있는 공통 설정이 있습니다. 이러한 공통 설정에 대한 모든 내용을 읽으려면 구성 형식 문서를 참조하십시오.
중요
여전히 레거시 구성/정의 파일을 사용하고 있다면 이 문서를 참조하십시오.
RabbitMQ와 관련된 특정 설정은 구성 파일의 env
섹션을 사용하여 정의됩니다. 이러한 설정은 RabbitMQ 인스턴스에 대한 연결과 기타 보안 설정 및 기능을 제어합니다. 유효한 설정 목록은 이 문서의 다음 섹션에 설명되어 있습니다.
클러스터 환경
클러스터 환경에서 통합은 하나의 노드에 연결된 하나의 통합 인스턴스만 있는 모든 클러스터에서 메트릭을 수집합니다. 이 인스턴스는 METRICS=true
및 INVENTORY=true
사용해야 합니다. 나머지 노드의 경우 인벤토리만 METRICS=false
및 INVENTORY=true
를 사용하여 수집해야 합니다. 이에 대한 자세한 내용은 인스턴스 설정을참조하십시오.
Kubernetes에서 클러스터 환경을 실행하는 경우에는 RabbitMQ를 StatefulSet 으로 배포하고 RabbitMQ 포드의 모든 메트릭을 쿼리하도록 에이전트를 구성해야 합니다. 구성 파일 의 자동 검색 일치 조건을 다음 값으로 설정합니다.
discovery: command: exec: /var/db/newrelic-infra/nri-discovery-kubernetes match: podName: rabbitmq-0
중요
통합에는 수집할 수 있는 대기열 수에 대한 제한이 있습니다. 대기열 수가 2000개를 초과하면 대기열 필터를 적용한 후 통합에서 대기열을 보고하지 않습니다. 모든 메트릭을 보존하는 해결 방법을 제공하지만 엔터티 등록을 비활성화합니다. 해결 방법을 적용하려면 구성 파일에 다음 환경 변수를 추가합니다.
integrations:- name: nri-rabbitmq env: # Integration configuration parameters. METRICS: true DISABLE_ENTITIES: true QUEUES_MAX_LIMIT: "0"
RabbitMQ 인스턴스 설정
RabbitMQ 통합은 Metrics( M ) 및 Inventory( I ) 정보를 모두 수집합니다. 아래의 적용 대상 열을 확인하여 각 특정 컬렉션에 사용할 수 있는 설정을 찾으십시오.
' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
환경 | 설명 | 기본값 | 적용 대상 |
---|---|---|---|
호스트 이름 | RabbitMQ 관리 플러그인의 호스트 이름 또는 IP입니다. | 로컬 호스트 | 미 |
포트 | RabbitMQ 관리 플러그인의 포트 번호입니다. | 15672 | 미 |
사용자 이름 | RabbitMQ 관리 플러그인에 연결하는 사용자입니다. | 해당 없음 | 미 |
비밀번호 | RabbitMQ 관리 플러그인에 연결하기 위한 비밀번호입니다. | 해당 없음 | 미 |
시간 초과 | RabbitMQ 끝점에 대한 연결을 시간 초과하는 초 단위의 시간 초과입니다. | 30 | 미 |
MANAGEMENT_PATH_PREFIX | RabbitMQ 관리 접두어. | 해당 없음 | 미 |
USE_SSL | SSL을 사용하여 연결하는 옵션입니다. | 잘못된 | 미 |
CA_BUNDLE_DIR | 호스트에서 SSL 인증서의 위치입니다. | 해당 없음 | 미 |
CA_BUNDLE_FILE | 호스트에서 SSL 인증서의 위치입니다. | 해당 없음 | 미 |
NODE_NAME_OVERRIDE | RabbitMQ에서 검색하는 대신 로컬 노드 이름을 재정의합니다. | 해당 없음 | 미 |
CONFIG_PATH | RabbitMQ 구성 파일의 절대 경로입니다. | 해당 없음 | 미 |
대기열 | 문자열의 JSON 배열 형식으로 수집할 대기열 이름입니다. 대기열 이름이 이들 중 하나와 정확히 일치하면(대소문자 구분) 수집됩니다. 예시:
| 해당 없음 | 나 |
QUEUES_REGEXES | REGEX 문자열의 JSON 배열 형식으로 수집할 대기열 이름입니다. 대기열 이름이 이들 중 하나와 일치하면 수집됩니다. 예시:
| 해당 없음 | 미 |
교환 | 문자열의 JSON 배열 형식으로 수집할 이름을 교환합니다. 교환 이름이 이 중 하나와 정확히 일치하면(대소문자 구분) 수집됩니다. | 해당 없음 | 미 |
EXCHANGES_REGEXES | REGEX 문자열의 JSON 배열 형식으로 수집할 이름을 교환합니다. 교환 이름이 이들 중 하나와 일치하면 수집됩니다. | 해당 없음 | 미 |
가상 호스트 | 문자열의 JSON 배열 형식으로 수집할 가상 호스트 이름입니다. 가상 호스트 이름이 이 중 하나와 정확히 일치하면(대소문자 구분) 포함됩니다. 이것은 또한 지정된 가상 호스트에 속하는 수집 개체에만 영향을 미칩니다. | 해당 없음 | 미 |
VHOSTS_REGEXES | REGEX 문자열의 JSON 배열 형식으로 수집할 가상 호스트 이름입니다. 가상 호스트 이름이 이러한 가상 호스트 중 하나와 일치하면 이 가상 호스트에 속한 모든 엔터티가 수집됩니다. | 해당 없음 | 미 |
측정항목 | 측정항목 전용 수집을 활성화하려면 | 잘못된 | |
목록 | 인벤토리 전용 컬렉션을 활성화하려면 | 잘못된 | |
이벤트 | 이벤트 전용 수집을 활성화하려면 | 잘못된 | |
DISABLE_ENTITIES | 메트릭 수집 중에 엔터티에 대해 인벤토리 항목이 생성되는지 여부를 구성합니다. 많은 양의 대기열을 수집하기 위한 해결 방법으로만 사용됩니다. | 잘못된 | |
QUEUES_MAX_LIMIT | 처리할 수 있는 최대 대기열 양을 정의합니다. 이 수에 도달하면 모든 대기열이 삭제됩니다. '0'으로 정의된 경우 제한이 적용되지 않으며 에이전트의 메모리 증가를 방지하기 위해 DISABLE_ENTITIES=true와 함께 사용됩니다. | 2000 년 |
이러한 설정의 값은 여러 가지 방법으로 정의할 수 있습니다.
- 구성 파일에 직접 값을 추가합니다. 이것은 가장 일반적인 방법입니다.
{{}}
표기법을 사용하여 환경 변수의 값 바꾸기. 이를 위해서는 인프라 에이전트 v1.14.0 이상이 필요합니다. 여기에서 더 읽어보세요.- 비밀 관리 사용. 구성 파일에서 일반 텍스트로 노출될 비밀번호와 같은 민감한 정보를 보호하기 위해 이것을 사용합니다. 자세한 내용은 비밀 관리 를 참조하십시오.
라벨/맞춤 속성
환경 변수를 사용하여 다음과 같은 구성 설정을 제어할 수 있습니다. , 그런 다음 인프라 에이전트로 전달됩니다. 이 기능을 사용하는 방법에 대한 지시사항은 인프라 에이전트 구성을참조하십시오. 레이블을 사용하여 메트릭을 추가로 꾸밀 수 있습니다. 레이블을 사용하면 메트릭에 키/값 쌍 특성을 추가한 다음 메트릭을 쿼리, 필터링 또는 그룹화하는 데 사용할 수 있습니다.
기본 샘플 구성 파일에는 레이블의 예가 포함되어 있지만 필수가 아니므로 선택한 새 레이블을 제거, 수정 또는 추가할 수 있습니다.
labels: env: production role: rabbitmq
구성 예
다음은 구성 파일의 예입니다.
호스트 내 통합 구성의 일반 구조에 대한 자세한 내용은 구성 을 참조하십시오.
데이터 찾기 및 사용
이 서비스의 데이터는 통합 대시보드 에 보고됩니다.
메트릭은 다음 이벤트 유형 에 연결됩니다.
문제 해결을 위해 이 데이터를 쿼리 하거나 사용자 지정 차트 및 대시보드를 만들 수 있습니다.
데이터를 찾고 사용하는 방법에 대한 자세한 내용은 통합 데이터 이해 를 참조하십시오.
측정항목 데이터
RabbitMQ 통합은 다음 메트릭 데이터 속성을 수집합니다. 각 메트릭 이름에는 범주 표시기와 마침표(예: 대기열)가 접두사로 붙습니다. 또는 노드..
RabbitMQ 가상 호스트 샘플 이벤트
다음 속성은 RabbitmqVhostSample
이벤트 유형에 연결됩니다.
이름 | 설명 |
---|---|
| 차단된 상태의 현재 연결 수입니다. |
| 차단 상태의 현재 연결 수입니다. |
| 닫힌 상태의 현재 연결 수입니다. |
| 닫는 상태의 현재 연결 수입니다. |
| 상태 흐름의 현재 연결 수입니다. |
vhost.connections열기 | 상태 개방의 현재 연결 수입니다. |
vhost.connections실행 중 | 실행 중인 상태의 현재 연결 수입니다. |
vhost.connections시작 | 시작 상태의 현재 연결 수입니다. |
vhost.connectionsTotal | 주어진 rabbitmq 가상 호스트에 대한 현재 연결 수입니다. |
vhost.connections조정 | 상태 조정의 현재 연결 수입니다. |
RabbitMQ 노드 샘플 이벤트
다음 속성은 RabbitmqNodeSample
이벤트 유형에 연결됩니다.
이름 | 설명 |
---|---|
node.averageErlangProcessesWaiting | 실행 대기 중인 Erlang 프로세스의 평균 수입니다. RabbitMQ에서 이는 |
| 노드 디스크 알람(0 또는 1). 0은 알람이 트립되지 않았음을 나타내고 1은 알람이 트립되었음을 나타냅니다. RabbitMQ에서 이는 |
| 현재 사용 가능한 디스크 공간(바이트)입니다. RabbitMQ에서 이는 |
| 파일 설명자의 총 수입니다. RabbitMQ에서 이는 |
| 사용된 파일 설명자의 총 수입니다. RabbitMQ에서 이는 |
| 소켓으로 사용되는 파일 설명자의 수입니다. RabbitMQ에서 이는 |
| 소켓으로 사용할 수 있는 파일 설명자의 총 수입니다. RabbitMQ에서 이는 |
| 호스트 메모리 알람(0 또는 1). 0은 알람이 트립되지 않았음을 나타내고 1은 알람이 트립되었음을 나타냅니다. RabbitMQ에서 이는 |
| 사용된 메모리(바이트)입니다. RabbitMQ에서 이는 |
| 노드당 표시되는 네트워크 파티션 수입니다. RabbitMQ에서 이는 |
| Erlang 프로세스 제한. RabbitMQ에서 이는 |
| Erlang 프로세스가 사용되었습니다. RabbitMQ에서 이는 |
| 노드 실행 중(0 또는 1). 0은 노드가 실행 중이 아님을 나타내고 1은 노드가 실행 중임을 나타냅니다. RabbitMQ에서 이는 |
RabbitMQ 교환 샘플 이벤트
다음 속성은 RabbitmqExchangeSample
이벤트 유형에 연결됩니다.
이름 | 설명 |
---|---|
| 특정 교환에 대한 바인딩 수입니다. |
| 채널에서 이 교환으로 게시된 메시지 수입니다. RabbitMQ에서 이는 |
| 채널에서 이 교환으로 초당 게시된 메시지의 비율입니다. RabbitMQ에서 이는 |
| 이 교환에서 대기열로 게시된 메시지 수입니다. RabbitMQ에서 이는 |
| 초당 이 교환에서 대기열로 게시된 메시지의 비율입니다. RabbitMQ에서 이는 |
RabbitMQ 큐 샘플 이벤트
다음 속성은 RabbitmqQueueSample
이벤트 유형에 연결됩니다.
이름 | 설명 |
---|---|
| 특정 대기열에 대한 바인딩 수입니다. |
| 대기열로 전송된 모든 메시지를 즉시 수신할 수 있는 활성 소비자의 수입니다. RabbitMQ에서 이는 |
| 대기열당 소비자 수입니다. RabbitMQ에서 이것은 소비자로 간주됩니다. |
| 대기열의 소비자가 새 메시지를 받을 수 있는 시간의 비율(초당 사용률)입니다. RabbitMQ에서 이는 이 측정항목은 RabbitMQ 버전 3.3 이상에서만 사용할 수 있습니다. |
| 대기열과 연결된 Erlang 프로세스에서 사용한 바이트입니다. RabbitMQ에서 이는 |
| 클라이언트에 전달할 준비가 된 메시지 수입니다. RabbitMQ에서 이는 |
| 초당 클라이언트에 전달할 준비가 된 메시지의 비율입니다. RabbitMQ에서 이는 |
| 클라이언트에 전달되었지만 아직 승인되지 않은 대기열당 메시지 수입니다. RabbitMQ에서 이는 |
| 클라이언트에 전달되었지만 아직 승인되지 않은 대기열당 초당 메시지 비율입니다. RabbitMQ에서 이는 |
| 클라이언트에 전달되고 대기열당 확인된 메시지 수입니다. RabbitMQ에서 이는 |
| 클라이언트에 전달되고 대기열당 초당 확인된 메시지의 비율입니다. RabbitMQ에서 이는 |
| 대기열당 소비자에게 승인 모드에서 전달된 메시지 수입니다. RabbitMQ에서 이는 |
| 초당 대기열당 소비자에게 승인 모드에서 전달된 메시지의 비율입니다. RabbitMQ에서 이는 |
| 대기열당 게시된 메시지 수입니다. RabbitMQ에서 이는 |
| 대기열당 초당 게시된 메시지 비율입니다. RabbitMQ에서 이는 |
| 대기열당 재전송 플래그가 설정된 확인 모드의 메시지 하위 집합 수입니다. RabbitMQ에서 이는 |
| 초당 대기열당 재전송 플래그가 설정된 확인 모드의 메시지 하위 집합 비율입니다. RabbitMQ에서 이는 |
| 승인 모드에서 소비자에게, 비승인 모드에서 소비자에게, basic.get에 대한 응답으로 승인 모드에서, basic.get에 대한 응답으로 비승인 모드에서 전달된 메시지의 합계입니다. 대기열당. RabbitMQ에서 이는 |
| 대기열당 수신확인 모드에서 소비자에게, 무확인 모드에서 소비자에게, 확인 모드에서 basic.get에 대한 응답으로, 무확인 모드에서 기본.get에 대한 응답으로 배달된 메시지 합계의 초당 비율입니다. RabbitMQ에서 이는 |
| 큐에 있는 총 메시지 수입니다. RabbitMQ에서 이는 |
| 대기열의 총 메시지 비율입니다. RabbitMQ에서 이는 |
시스템 메타데이터
기타 메타데이터에는 다음이 포함됩니다.
이름 | 설명 |
---|---|
| RabbitMQ 서버의 버전입니다. 예: 3.6.7. |
| RabbitMQ 관리 플러그인의 버전입니다. 예: 3.6.7. |
인벤토리 데이터
통합은 /etc/rabbitmq/rabbitmq.conf
파일에서 RabbitMQ의 구성 매개변수를 캡처합니다. 인벤토리 데이터는 RabbitMQ 버전 3.7 이상에서만 캡처됩니다. 인벤토리 데이터 는 config/rabbitmq
소스 아래의 인프라 인벤토리 페이지 에 나타납니다.
주의
rabbit.conf
파일에 입력한 모든 민감한 정보는 인프라 인벤토리 페이지에 나타납니다. 여기에는 AWS의 다음과 같은 항목이 포함됩니다.
cluster_formation.aws.secret_key,cluster_formation.aws.access_key_id
문제점 해결
문제 해결 팁:
소스 코드 확인
이 통합은 오픈 소스 소프트웨어입니다. 즉 , 소스 코드를 탐색하고 개선 사항을 보내거나 자신만의 포크를 만들어 빌드할 수 있습니다.