[Self-Hosted] 서버 모니터링 Beszel을 설치해보자

[Self-Hosted] 서버 모니터링 Beszel을 설치해보자

설치하기 쉽고 UI 깔끔하고 그래프도 이쁘게 나오는 Beszel을 설치해보자


소개

기능

  • 가벼움
  • 간단함
  • 도커 상태
  • 경고 기능
  • 다중 사용자
  • OAuth / OIDC
  • 자동 백업
  • REST API

지원하는 메트릭

  • CPU 사용량
  • 메모리 사용량
  • 디스크 사용량
  • 디스크 I/O
  • 네트워크 사용량
  • 온도
  • GPU 사용량 / 온도 / 전력 소모 - Nvidia, AMD 전용. 바이너리 에이전트 필요

설치 환경

  • Synology DS220+ (DSM 7.2.2-72806 Update 3)
  • Docker Engine 24.0.2
  • Docker Compose 2.29.6

compose.yml 작성하기

Beszel은 대시보드를 담당하는 Hub와 시스템 메트릭 수집을 담당하는 Agent로 구성되어 있다.

services:
  beszel:
    image: henrygd/beszel
    container_name: beszel
    restart: unless-stopped
    ports:
      - 8090:8090
    volumes:
      - ./beszel_data:/beszel_data

공식 문서 Hub Installation

services:
  beszel-agent:
    image: henrygd/beszel-agent
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      # monitor other disks / partitions by mounting a folder in /extra-filesystems
      # - /mnt/disk1/.beszel:/extra-filesystems/disk1:ro
    environment:
      LISTEN: 45876
      KEY: '<public key>'

공식 문서 Agent Installation

공식 문서에서 제공하는 설치 구성이다.

나는 내 취향에 맞게 수정을 했다. 같은 서비스는 하나의 compose.yml로 관리하는 게 편하다.

services:
  beszel-hub:
    image: 'henrygd/beszel'
    container_name: beszel-hub
    hostname: beszel-hub
    restart: unless-stopped
    ports:
      - 8090:8090
    volumes:
      - ./data:/beszel_data
    environment:
      - TZ=Asia/Seoul

  beszel-agent:
    image: 'henrygd/beszel-agent'
    container_name: beszel-agent
    hostname: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - LISTEN=45876
      - KEY=UPDATE WITH YOUR PUBLIC KEY (copy from "Add system" dialog)

Beszel | Simple, lightweight server monitoring
Lightweight server monitoring with historical data, Docker stats, and alerts.

실행하기

docker compose up -d

명령어를 실행한 다음에 준비가 되면 http://아이피:8090으로 접속해서 대시보드가 잘 뜨는지 확인해보자.

대시보드가 잘 뜬다면 이제 모니터링할 시스템을 추가해야 한다.

오른쪽 위에 시스템 추가를 누르자

이름은 원하는 걸로 입력하고, 호스트 / IP는 자신의 NAS 내부 아이피를 입력하면 된다.

공개 키를 복사한 다음 작성했던 compose.yml에 넣어준 다음 재시작해주자.

docker compose up -d

재시작 후에 초록불이 들어온다면 성공이다!