콘텐츠로 이동

Docker

Docker Container의 지표, 오브젝트, 로그 데이터를 수집합니다.

수집기 설정

사전 조건

  • 현재 container는 Docker, Containerd, CRI-O 컨테이너 런타임을 지원합니다
    • 버전 요구 사항: Docker v17.04 이상, Containerd v1.5.1 이상, CRI-O 1.20.1 이상
Info
  • 컨테이너 수집은 Docker와 Containerd 두 가지 런타임 Version-1.5.7을 지원하며, 기본적으로 모두 수집이 활성화되어 있습니다.
  • DataKit

Docker 환경의 DataKit는 호스트 머신에만 설치할 수 있습니다.

DataKit 설치 디렉터리 아래의 conf.d/samples 디렉터리로 들어가서 container.conf.sample을 복사한 뒤 container.conf로 이름을 바꾸세요. 예시는 다음과 같습니다:

[inputs.container]
    endpoints = [
    "unix:///var/run/docker.sock"
    ]

일반적으로는 endpoints만 조정하면 됩니다

로그 수집

로그 수집 관련 설정은여기를 참고하세요.


지표

아래 모든 데이터 수집에는 기본적으로 host라는 전역 tag가 추가됩니다(tag 값은 DataKit가 실행되는 호스트명). 또한 설정에서 [inputs.container.tags]를 통해 다른 태그를 지정할 수도 있습니다:

 [inputs.container.tags]
  # some_tag = "some_value"
  # more_tag = "some_other_value"
  # ...

docker_containers

컨테이너의 metric이며, Running 상태만 지원합니다.

  • 태그
Tag Description
aws_ecs_cluster_name AWS ECS의 클러스터 이름.
cluster_name_k8s K8s 클러스터 이름(기본값은 default). datakit.yaml의 ENV_CLUSTER_NAME_K8S에서 이름을 변경할 수 있습니다.
container_id Container ID
container_name k8s의 컨테이너 이름(io.kubernetes.container.name 라벨). 비어 있으면 $container_runtime_name을 사용합니다.
container_runtime 컨테이너 런타임(Docker/Containerd/cri-o 기반 컨테이너).
container_runtime_name 런타임의 컨테이너 이름(예: 'docker ps'). 비어 있으면 'unknown'을 사용합니다.
container_runtime_version 컨테이너 런타임 버전.
container_type 컨테이너의 유형(이 컨테이너는 Kubernetes/Docker/Containerd/cri-o에 의해 생성됨).
daemonset 오브젝트가 속한 DaemonSet 이름.
deployment 오브젝트가 속한 Deployment 이름.
image 컨테이너 이미지의 전체 이름, 예: nginx.org/nginx:1.21.0.
image_name 컨테이너 이미지 이름, 예: nginx.org/nginx.
image_short_name 컨테이너 이미지의 짧은 이름, 예: nginx.
image_tag 컨테이너 이미지의 태그, 예: 1.21.0.
namespace 컨테이너의 namespace(io.kubernetes.pod.namespace 라벨).
pod_name 컨테이너의 pod 이름(io.kubernetes.pod.name 라벨).
pod_uid 컨테이너의 pod uid(io.kubernetes.pod.uid 라벨).
state 컨테이너 상태(Running만).
statefulset 오브젝트가 속한 StatefulSet 이름.
task_arn AWS Fargate의 task arn.
task_family AWS Fargate의 task family.
task_version AWS Fargate의 task version.
  • 지표 목록
Metric Description Type Unit
block_read_byte 컨테이너 파일 시스템에서 읽은 총 바이트 수(docker만 지원). int B
block_write_byte 컨테이너 파일 시스템에 기록한 총 바이트 수(docker만 지원). int B
cpu_numbers CPU 코어 수. int count
cpu_usage 시스템 호스트에서의 CPU 사용률. float percent
cpu_usage_base100 정규화된 CPU 사용률, 최대 100%. float percent
mem_capacity 호스트 머신의 전체 메모리. int B
mem_limit 컨테이너의 메모리 제한. int B
mem_usage 메모리 사용량. int B
mem_used_percent 호스트 머신의 용량을 기준으로 계산한 메모리 사용률. float percent
mem_used_percent_base_limit 제한값을 기준으로 계산한 메모리 사용률. float percent
network_bytes_rcvd 네트워크에서 수신한 총 바이트 수(컨테이너의 메인 프로세스 사용량만 집계하며, loopback은 제외). int B
network_bytes_sent 네트워크로 전송한 총 바이트 수(컨테이너의 메인 프로세스 사용량만 집계하며, loopback은 제외). int B

오브젝트

docker_containers

컨테이너의 object이며, Running 상태만 지원합니다.

  • 태그
Tag Description
aws_ecs_cluster_name AWS ECS의 클러스터 이름.
cluster_name_k8s K8s 클러스터 이름(기본값은 default). datakit.yaml의 ENV_CLUSTER_NAME_K8S에서 이름을 변경할 수 있습니다.
container_id Container ID
container_name k8s의 컨테이너 이름(io.kubernetes.container.name 라벨). 비어 있으면 $container_runtime_name을 사용합니다.
container_runtime 컨테이너 런타임(Docker/Containerd/cri-o 기반 컨테이너).
container_runtime_name 런타임의 컨테이너 이름(예: 'docker ps'). 비어 있으면 'unknown'을 사용합니다.
container_runtime_version 컨테이너 런타임 버전.
container_type 컨테이너의 유형(이 컨테이너는 Kubernetes/Docker/Containerd/cri-o에 의해 생성됨).
daemonset 오브젝트가 속한 DaemonSet 이름.
deployment 오브젝트가 속한 Deployment 이름.
image 컨테이너 이미지의 전체 이름, 예: nginx.org/nginx:1.21.0.
image_name 컨테이너 이미지 이름, 예: nginx.org/nginx.
image_short_name 컨테이너 이미지의 짧은 이름, 예: nginx.
image_tag 컨테이너 이미지의 태그, 예: 1.21.0.
name 컨테이너의 ID.
namespace 컨테이너의 namespace(io.kubernetes.pod.namespace 라벨).
pod_name 컨테이너의 pod 이름(io.kubernetes.pod.name 라벨).
pod_uid 컨테이너의 pod uid(io.kubernetes.pod.uid 라벨).
state Container의 상태(Running만).
statefulset 오브젝트가 속한 StatefulSet 이름.
status 컨테이너 상태, 예: Up 5 hours.
task_arn AWS Fargate의 task arn.
task_family AWS Fargate의 task family.
task_version AWS Fargate의 task version.
  • 지표 목록
Metric Description Type Unit
age 나이(초) int s
block_read_byte 컨테이너 파일 시스템에서 읽은 총 바이트 수(docker만 지원). int B
block_write_byte 컨테이너 파일 시스템에 기록한 총 바이트 수(docker만 지원). int B
cpu_numbers CPU 코어 수. int count
cpu_usage 시스템 호스트에서의 CPU 사용률. float percent
cpu_usage_base100 정규화된 CPU 사용률, 최대 100%. float percent
mem_capacity 호스트 머신의 전체 메모리. int B
mem_limit 컨테이너의 메모리 제한. int B
mem_usage 메모리 사용량. int B
mem_used_percent 호스트 머신의 용량을 기준으로 계산한 메모리 사용률. float percent
mem_used_percent_base_limit 제한값을 기준으로 계산한 메모리 사용률. float percent
network_bytes_rcvd 네트워크에서 수신한 총 바이트 수(컨테이너의 메인 프로세스 사용량만 집계하며, loopback은 제외). int B
network_bytes_sent 네트워크로 전송한 총 바이트 수(컨테이너의 메인 프로세스 사용량만 집계하며, loopback은 제외). int B

문서 평가

이 페이지가 도움이 되었나요?