Profile picture

[Docker] 시스템 모니터링을 위한 Netdata 설치

JaehyoJJAng2023년 05월 02일

◾️ Netdata


netdata는 시스템 모니터링을 위한 툴이다.
image
시스템 리소스의 사용량을 그래프나 게이지 등으로 쉽게 확인이 가능하다.
또한 리소스가 과도하게 사용될 시, 경고를 하는 기능도 포함되어 있다.


▪️ netdata 설치


Docker를 통한 설치는 굉장히 간단하다. 아래 명령어를 입력해 Netdata에서 공식으로 지원하는 이미지로 컨테이너를 생성만 하면 된다

docker run -d --name=netdata \
  --pid=host \
  --network=host \
  --expose 19999 \
  -v netdataconfig:/etc/netdata \
  -v netdatalib:/var/lib/netdata \
  -v netdatacache:/var/cache/netdata \
  -v /etc/passwd:/host/etc/passwd:ro \
  -v /etc/group:/host/etc/group:ro \
  -v /etc/localtime:/etc/localtime:ro \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /etc/os-release:/host/etc/os-release:ro \
  -v /var/log:/host/var/log:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --restart unless-stopped \
  --cap-add SYS_PTRACE \
  --cap-add SYS_ADMIN \
  --security-opt apparmor=unconfined \
  netdata/netdata

▪️ 접속

기본 포트는 19999으로 http://<IP>:19999 형태로 접속하면 된다

접속하면 CPU, 디스크 I/O, 네트워크 I/O 등을 확인할 수 있다.
image


◾️ Docker Compose

매번 docker run으로 컨테이너 띄우기 귀찮으니 docker-compose.yaml 파일을 작성해 컨테이너 설정을 저장해놓도록 하자.

{% include codeHeader.html name="~/netdata/docker-compose.yaml" %}

version: '3'
services:
  netdata:
    image: netdata/netdata
    container_name: netdata
    pid: host
    network_mode: host
    expose:
      - "19999"
    restart: unless-stopped
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    volumes:
      - netdataconfig:/etc/netdata
      - netdatalib:/var/lib/netdata
      - netdatacache:/var/cache/netdata
      - /etc/passwd:/host/etc/passwd:ro
      - /etc/group:/host/etc/group:ro
      - /etc/localtime:/etc/localtime:ro
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /etc/os-release:/host/etc/os-release:ro
      - /var/log:/host/var/log:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  netdataconfig:
  netdatalib:
  netdatacache:

Loading script...