컨테이너 자동 검색 기능을 사용하면 여러 컨테이너에서 실행되는 서비스를 자동으로 모니터링하도록 통합을 구성할 수 있습니다. 통합의 구성 파일에서 컨테이너의 일치 기준을 설정할 수 있으며 에이전트는 기준과 일치하는 각 로컬 컨테이너에 대해 통합을 실행합니다.
검색 요소를 찾은 횟수만큼 통합이 실행됩니다. 검색에서 컨테이너를 찾지 못하면 통합이 실행되지 않습니다.
팁
현재 인프라 에이전트 는 로컬 Docker 컨테이너를 검색할 수 있습니다.
구성에 자리 표시자 추가
통합 구성에서 ${discovery.<property>}
자리 표시자를 만들어야 합니다. 그러면 자동으로 특정 컨테이너 정보로 대체됩니다.
이 예시(Docker 전용 환경 및 Kubernetes용)는 이미지 이름이 nginx
포함하고 env=production
로 라벨이 지정된 모든 로컬 컨테이너를 모니터링하도록 NGINX 통합을 구성하는 방법을 보여줍니다. 각 서비스는 서로 다른 IP와 포트를 통해 사용할 수 있으므로 변수여야 합니다.
검색 속성 추가
검색을 구성하려면 다음 속성을 사용하여 통합 구성 YAML에서 discovery
항목을 설정합니다. all 속성이 정의된 값과 일치하면 컨테이너가 일치됩니다.
팁
일치하는 값이 /.../
사이에 설정되지 않은 경우 속성 값은 exact string 과 일치됩니다. 슬래시 안의 내용은 정규식 으로 일치됩니다.
검색 키 이름 | 설명 |
---|---|
유형: 문자열 | 캐싱된 검색 결과의 TTL(Time-To-Live)은 검색 프로세스 수를 최소화하는 데 사용됩니다. 숫자 다음에 시간 단위( 예: 기본값: 1m |
유형: YAML 속성 | 정의와 일치하는 Docker 컨테이너. 이것은 다음과 같은 지도를 포함하는
|
발견 사례
다음 예시는 이미지가 httpd:
(정규 표현식으로 제공됨)으로 시작하고 레이블이 scrapable=yes
인 모든 Docker 컨테이너와 일치합니다. 결과는 5분의 TTL(Time-To-Live)로 캐시됩니다.
discovery: ttl: 5m docker: match: image: /^httpd:/ label.scrapable: yes
사용 가능한 컨테이너 정보
검색 기능은 현재 통합을 구성하는 데 사용할 수 있는 다음 변수를 내보냅니다. 인프라 에이전트는 이를 검색된 컨테이너의 해당 값으로 바꿉니다.
중요
discovery.
접두사를 추가해야 합니다.
변하기 쉬운 | 설명 |
---|---|
| 컨테이너 공용 IP 주소(있는 경우) |
| 컨테이너 사설 IP 주소 |
| 컨테이너 공용 포트 번호 |
| 컨테이너 전용 포트 번호 |
| 이미지 이름 |
| 컨테이너 이름 |
| 이름으로 액세스할 수 있는 모든 컨테이너 레이블 |
여러 포트 매핑
컨테이너가 많은 비공개 또는 공개 포트를 노출하면 discovery.private.ports.
또는 discovery.ports.
다음에 0에서 시작하는 색인을 통해 액세스할 수 있습니다. 포트는 낮은 비공개 포트 값에서 높은 값으로 색인이 생성됩니다.
예를 들어, 각각 공용 포트 2345 및 1111을 통해 80 및 443 개인 포트를 노출하는 컨테이너는 다음 변수에 해당 값을 제공합니다.
변하기 쉬운 | 값 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
중요
port
단어는 인덱싱되지 않은 변수에서는 단수이고 인덱싱된 변수에서는 복수입니다.
프로토콜 이름으로 포트 매핑
이전 섹션의 인덱싱 외에도 프로토콜 이름(예: tcp
, udp
등)으로 포트를 참조할 수도 있습니다. 예: ${discovery.ports.tcp}
또는 ${discovery.ports.udp}
.
여러 포트가 동일한 프로토콜과 일치하는 경우 이전 섹션의 규칙( ${discovery.ports.tcp.0}
, ${discovery.ports.tcp.1}
등)에 의해 인덱싱될 수도 있습니다.