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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

호스트 내 통합을 위한 컨테이너 자동 검색

컨테이너 자동 검색 기능을 사용하면 여러 컨테이너에서 실행되는 서비스를 자동으로 모니터링하도록 통합을 구성할 수 있습니다. 통합의 구성 파일에서 컨테이너의 일치 기준을 설정할 수 있으며 에이전트는 기준과 일치하는 각 로컬 컨테이너에 대해 통합을 실행합니다.

검색 요소를 찾은 횟수만큼 통합이 실행됩니다. 검색에서 컨테이너를 찾지 못하면 통합이 실행되지 않습니다.

현재 인프라 에이전트 는 로컬 Docker 컨테이너를 검색할 수 있습니다.

구성에 자리 표시자 추가

통합 구성에서 ${discovery.<property>} 자리 표시자를 만들어야 합니다. 그러면 자동으로 특정 컨테이너 정보로 대체됩니다.

이 예시(Docker 전용 환경 및 Kubernetes용)는 이미지 이름이 nginx포함하고 env=production로 라벨이 지정된 모든 로컬 컨테이너를 모니터링하도록 NGINX 통합을 구성하는 방법을 보여줍니다. 각 서비스는 서로 다른 IP와 포트를 통해 사용할 수 있으므로 변수여야 합니다.

검색 속성 추가

검색을 구성하려면 다음 속성을 사용하여 통합 구성 YAML에서 discovery 항목을 설정하세요. 모든 속성이 정의된 값과 일치하면 컨테이너가 일치합니다.

검색 키 이름

설명

ttl

유형: 문자열

캐싱된 검색 결과의 TTL(Time-To-Live)은 검색 프로세스 수를 최소화하는 데 사용됩니다. 숫자 다음에 시간 단위( s , m 또는 h )가 오는 방식으로 정의합니다.

예: 30s , 10m , 1h , 0

기본값: 1m

docker

유형: YAML 속성

정의와 일치하는 Docker 컨테이너. 이것은 다음과 같은 지도를 포함하는 match 속성으로 구성됩니다.

  • 각 키는 다음 속성 중 하나입니다.

  • 값은 반환된 컨테이너에 대해 지정된 속성의 예상 값입니다.

  • 모든 속성이 일치하면 컨테이너가 일치합니다(AND 연산).

    사용 가능한 YAML 키는 다음과 같습니다.

  • ip: 컨테이너 외부 IP 주소(있는 경우)

  • private.ip: 컨테이너 사설 IP 주소

  • port: 컨테이너 외부 포트 번호

  • private.port: 컨테이너 전용 포트 번호

  • image: 이미지 이름

  • name: 컨테이너 이름

  • label.<label name>: 이름으로 액세스할 수 있는 모든 컨테이너 레이블

발견 사례

다음 예시는 이미지가 httpd: (정규 표현식으로 제공됨)으로 시작하고 레이블이 scrapable=yes 인 모든 Docker 컨테이너와 일치합니다. 결과는 5분의 TTL(Time-To-Live)로 캐시됩니다.

discovery:
ttl: 5m
docker:
match:
image: /^httpd:/
label.scrapable: yes

사용 가능한 컨테이너 정보

검색 기능은 현재 통합을 구성하는 데 사용할 수 있는 다음 변수를 내보냅니다. 인프라 에이전트는 이를 검색된 컨테이너의 해당 값으로 바꿉니다.

중요

discovery. 접두사를 추가해야 합니다.

변하기 쉬운

설명

${discovery.ip}

컨테이너 공용 IP 주소(있는 경우)

${discovery.private.ip}

컨테이너 사설 IP 주소

${discovery.port}

컨테이너 공용 포트 번호

${discovery.private.port}

컨테이너 전용 포트 번호

${discovery.image}

이미지 이름

${discovery.name}

컨테이너 이름

${discovery.label.<label name>}

이름으로 액세스할 수 있는 모든 컨테이너 레이블

여러 포트 매핑

컨테이너가 많은 비공개 또는 공개 포트를 노출하면 discovery.private.ports. 또는 discovery.ports. 다음에 0에서 시작하는 색인을 통해 액세스할 수 있습니다. 포트는 낮은 비공개 포트 값에서 높은 값으로 색인이 생성됩니다.

예를 들어, 각각 공용 포트 2345 및 1111을 통해 80 및 443 개인 포트를 노출하는 컨테이너는 다음 변수에 해당 값을 제공합니다.

변하기 쉬운

${discovery.private.ports.0}

80 (최하위 프라이빗 포트)

${discovery.private.ports.1}

443 (가장 높은 개인 항구)

${discovery.ports.0}

2345 (개인 포트 0에 대한 공용 포트 매핑)

${discovery.ports.1}

1111 (개인 포트 1에 대한 공용 포트 매핑)

${discovery.private.port}

80 ( ${discovery.private.ports.0} 과 동일)

${discovery.port}

2345 ( ${discovery.ports.0} 과 동일)

중요

port 단어는 인덱싱되지 않은 변수에서는 단수이고 인덱싱된 변수에서는 복수입니다.

프로토콜 이름으로 포트 매핑

이전 섹션의 인덱싱 외에도 프로토콜 이름(예: tcp , udp 등)으로 포트를 참조할 수도 있습니다. 예: ${discovery.ports.tcp} 또는 ${discovery.ports.udp} .

여러 포트가 동일한 프로토콜과 일치하는 경우 이전 섹션의 규칙( ${discovery.ports.tcp.0} , ${discovery.ports.tcp.1} 등)에 의해 인덱싱될 수도 있습니다.

Copyright © 2024 New Relic Inc.

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