Docker 모니터링

Instana Docker 컨테이너를 자동으로 탐지하고 모니터링하여, 탐지된 각 컨테이너 내에서 실행 중인 메타데이터(라벨), 메트릭 및 지원되는 모든 기술에 대한 실시간 인사이트를 제공합니다.

자세한 내용은 지원되는 기술을 참조하십시오.

각 컨테이너의 상태를 모니터링하고 문제 발생 시 알림을 받는 것 외에도, 서비스 검색 기능을 활성화하여 모든 컨테이너 정보를 활용할 수 있습니다.

지원 정보

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

지원되는 버전 및 지원 정책

이 센서는 다음 버전의 Docker 를 지원합니다:

  • Docker 23.0
  • Docker 25.0
  • Docker 26.x
  • Docker 27.x

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

기술 지원 정책 최신 기술 버전 최신 지원 버전
Docker 45일 29.7.1 29.6.0

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

메트릭 콜렉션

메트릭을 확인하려면 Instana 사용자 인터페이스의 사이드바에서 ‘인프라(Infrastructure)’를 선택하고, 모니터링 중인 특정 호스트를 클릭하면 수집된 모든 메트릭과 모니터링 중인 프로세스가 표시된 호스트 대시보드를 볼 수 있습니다.

기본적으로 Docker 메트릭은 10초마다 수집됩니다. 이 간격은 에이전트 구성 파일 <agent_install_dir>/etc/instana/configuration.yml내에서 구성할 수 있습니다.

com.instana.plugin.docker:
  stats: true
  interval: 10
 

컨테이너의 CPU 및 메모리 사용량 개요를 확인하려면 인프라 맵에서 ‘메트릭 개요’ 옵션을 활성화하세요. 또한 ‘동적 포커스(Dynamic Focus) ’ 기능을 사용하여 컨테이너 환경 내에서 인프라의 특정 부분을 식별하고 분리할 수도 있습니다.

Docker 컨테이너 대시보드 에서는 해당 컨테이너의 구성 및 성능 지표가 표시됩니다.

실행 중인 컨테이너에 대한 자세한 정보를 보려면 컨테이너 정보 가져오기를 클릭하십시오. 표시되는 정보는 docker inspect 명령을 실행하는 것과 동일합니다.

구성 데이터

구성 설명
이미지 Docker 이미지 이름입니다.
명령
작성일시 컨테이너가 시간소인을 작성했습니다.
시작됨 컨테이너가 시작된 시간소인입니다.
ID 컨테이너 ID입니다.
이름 컨테이너 이름입니다.
네트워크 모드 컨테이너에 대해 구성된 네트워크 설정입니다.
스토리지 드라이버 구성된 스토리지 드라이버입니다.
Docker 버전 사용 중인 Docker 버전입니다.
컨테이너 레이블 컨테이너에 적용되는 레이블입니다.
포트

성능 매트릭

Docker Engine ( API )를 사용하면 해당 /containers/{id}/stats 엔드포인트에서 성능 지표가 반환됩니다.

CPU 총 %

CPU 사용량의 총%입니다. 현재 측정된 KPI값이 표시됩니다.

데이터 점: 값은 cpu_stats 오브젝트에서 리턴된 total_usage 키에서 수집됩니다.

메모리 사용량(%)

총 메모리 사용량 (백분율) 입니다. 현재 측정된 KPI값이 표시됩니다.

데이터 점: 값은 memory_stats 오브젝트에서 리턴된 usagelimit 키의 몫으로 계산됩니다.

CPU

[0, 100]% 범위의 정규화된 값뿐만 아니라 총계, 커널 및 사용자 메트릭이 선택된 기간 동안 그래프에 표시됩니다.

데이터 점: 값은 cpu_stats 오브젝트에서 리턴된 total_usage, usage_in_kernalmodeusage_in_usermode 키에서 수집됩니다.

조절 수 및 시간 값은 선택된 기간 동안 그래프에 표시됩니다.

데이터 점: 값은 cpu_stats 오브젝트에서 리턴된 periodsthrottling_time 키에서 수집됩니다.

메모리

사용량, RSS, 캐시 메트릭 및 메모리 사용량은 선택된 기간 동안 그래프에 표시됩니다.

데이터 점: 값은 memory_stats 오브젝트에서 리턴된 usage, total_rsstotal_cache 키에서 수집됩니다. 메모리 사용량은 백분율로 표시되는 파생 메트릭입니다.

활성 익명, 활성 캐시, 비활성 익명 및 비활성 캐시 지표는 선택된 기간 동안 그래프에 표시됩니다.

데이터 점: 값은 memory_stats 오브젝트에서 리턴된 active_anon, active_file, inactive_anoninactive_file 키에서 수집됩니다.

블록 IO

읽기 및 쓰기 값은 선택된 기간 동안 그래프에 표시됩니다.

데이터 점: 값은 blkio_stats 오브젝트에서 리턴된 blkio.io_service_bytes 키에서 수집됩니다.

네트워크

네트워크 rx (수신됨) 및 tx (전송됨) 바이트, 오류, 패킷 및 삭제된 지표가 선택된 기간 동안 그래프에 표시됩니다.

데이터 점: 모든 값은 network 오브젝트에서 리턴된 키 ( rx_dropped, rx_bytes, rx_errors, rx_packets, tx_dropped, tx_bytes, tx_errorstx_packets) 에서 수집됩니다.

특정 Docker 런타임 메트릭에 대한 자세한 정보는 Docker 문서를 참조하십시오.

건강 서명

각 센서의 경우, 수신 메트릭에 대해 지속적으로 평가되고 사용자 영향에 따라 문제 또는 인시던트를 일으키기 위해 사용되는 상태 서명의 조직된 지식 기반 데이터베이스가 있습니다.

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

Docker 센서의 기본 제공 이벤트에 대한 정보는 기본 제공 이벤트 참조를 참조하십시오.

Docker 로그 센서 구성

기본적으로 ‘ Docker ’ 센서에서는 로그 수집 기능이 비활성화되어 있습니다. 로깅을 활성화하려면 Docker 로그 센서를 구성해야 합니다. 그러나 Docker 로그 센서에는 몇 가지 한계가 있습니다. 자세한 내용은 ‘ Docker ’ 로그 센서의 제한 사항을 참조하십시오.

Docker 로그 수집 활성화

로그 수집을 활성화하려면 다음 단계를 따르십시오:

  1. Instana 라이선스에 대한 추가 기능을 구매하세요. 라이선스를 확인하려면 계속 진행하기 전에 ‘라이선스 및 권한 요구 사항’을 참조하십시오.

  2. 다음 예시와 같이 에이전트 구성 파일에서 ` Docker ` 로그 센서를 구성하여 로그 수집을 활성화하십시오:

    com.instana.plugin.docker:
      logs:
        enabled: true
     

    다음 예제는 가능한 구성 옵션과 해당 기본값을 보여줍니다:

    com.instana.plugin.docker:
      logs:
        enabled: true
      unixSocket: "/var/run/docker.sock"
      maxBufferSize: 16777216
      minBatchSize: 1024
      minBatchWithholdCount: 2
      sendInterval: 1
      socketTimeout: 600
      maxLineLength: 16384
     

    다음 표에는 구성 옵션과 해당 설명이 나열되어 있습니다:

    구성 옵션 설명 기본값
    unixSocket Docker 데몬의 소켓 경로. "/var/run/docker.sock"
    maxBufferSize 바이트 단위의 최대 내부 버퍼 크기. 이 설정은 읽기 작업 중 센서 내부 메모리에 저장할 수 있는 로그 메시지 데이터의 양을 제어합니다. 16777216
    minBatchSize 서버로 전송될 메시지 배치의 최소 크기(문자 단위). 메시지 묶음은 최소한 이 크기(재시도 횟수까지minBatchWithholdCount )에 도달할 때까지 전송되지 않습니다. 1024
    minBatchWithholdCount 배치 크기가 너무 작다는 이유로 보류가 허용되는 횟수(최종적으로는 전송됨). 로그 배치의 크기가 minBatchSize, 보다 작으면 즉시 전송되지 않습니다. 데이터 양이 ` minBatchSize, `보다 적더라도, 시도 횟수가 이 수치를 초과하면 결국 전송됩니다. 2
    sendInterval 로그 배치 전송 시도 사이에 대기할 시간(초 단위). 1
    socketTimeout 소켓 연결이 시간 초과되기까지 걸리는 시간(초 단위). 600
    maxLineLength 로그 내 한 줄의 최대 길이(문자 수 기준). 이 길이는 문자 단위로 측정되므로, 실제로 사용되는 바이트 수는 인코딩 방식에 따라 달라집니다. 16384

로그 수집을 활성화하면 Instana UI에서 로그를 확인할 수 있습니다. 자세한 내용은 ‘ Docker 로그 확인’을 참조하십시오.

Docker 로그 수집 비활성화

Docker 의 로깅을 다시 비활성화하려면 다음 옵션 중 하나를 사용하십시오:

  • 에이전트 구성 파일에서 해당 enabledfalse 플래그를 다음과 같이 설정하십시오:

    com.instana.plugin.docker:
      logs:
        enabled: false
     
  • 에이전트 구성 파일에서 해당 logs 섹션을 삭제하십시오.

참고:
로깅은 기본적으로 사용 안함으로 설정되어 있습니다.

중복 로그 방지

에이전트의 ` AutoTracing ` 기능은 컨테이너 내부의 애플리케이션에서 추적 로그를 자동으로 수집하므로, 추적 로그와 ` Docker ` 로그를 모두 활성화하면 로그가 중복되어 기록됩니다. 이 문제를 방지하려면 둘 중 하나만 활성화하십시오.

애플리케이션 추적 로그는 애플리케이션 추적과 상호 연관될 수 있다는 장점이 있는 반면, Docker 로그는 그렇지 않습니다. 하지만 애플리케이션 추적 기능은 및 WARNING 레벨의 ERROR 로그만 수집하는 반면, Docker 로그 센서는 모든 레벨의 로그를 포함하여 전체 로그 출력 스트림을 수집합니다.

Docker 로그 확인

Docker 로그를 확인하려면 다음 단계를 따르십시오:

  1. Instana UI의 탐색 메뉴에서 ‘로그’를 클릭합니다.
  2. ‘로그 분석’을 클릭하세요.
  3. 애널리틱스 로그 대시보드의 ‘필터’ 필드에 ‘ Docker ’ 컨테이너 필터를 추가합니다.

Docker 로그 센서가 수집한 모든 로그를 확인할 수 있습니다.

Streams

Docker 로그 센서는 Docker 컨테이너에서 stderrstdout 스트림을 수집합니다.

Docker 로그 센서의 한계

Docker 로그 센서에는 다음과 같은 제한 사항이 있습니다:

  • 컨테이너 로그를 수집하려면 Docker 데몬이 실행 중이어야 합니다.
  • Docker 로그 센서는 컨테이너 기술로 Containerd를 사용하는 Docker 환경의 로그를 수집하지 않습니다. 이러한 컨테이너를 모니터링하려면 Containerd 센서를 사용하십시오.