앞선 글 (https://jammdev.tistory.com/282) 에서 로그 모니터링 시스템의 구조를 설계했다. 이어서 설계한 구조대로 로그 모니터링 시스템을 구성해 볼 것이다.
간단한 로그를 출력하는 app 을 두고 로그를 대시보드에서 모니터링 할 수 있도록 Fluent-bit, Loki, Grafana 를 설치할 것이다. 시스템 구성을 간편하게 하기 위해 호스트에 직접 설치하기 보다는 docker compose 를 사용하여 시스템을 구성할 것이다.
가장 먼저 Grafana 를 설치 과정을 정리해보았다.
Grafana
Grafana 는 오픈 소스 소프트웨어로 여러 방식으로 설치할 수 있다. Debian, Ubuntu, Windows, macOS 등 다양한 OS 와 Docker, k8s 등 다양한 환경을 지원해준다.
로그 모니터링 시스템은 docker compose 로 환경을 구성할 것이기 때문에 Grafana 도 docker container 로 실행하려고 한다.
- docker-compose.yaml 설정
Grafana 를 실행하기 위해 docker-compose.yaml 파일을 정의하였다. 아래의 docker-compose.yaml 은 Grafana 공식문서의 예제로 Grafana 에서 제공해주는 Docker image 를 사용하고, 사이트 접속을 위해 3000 번 포트를 개방하도록 서비스를 정의했다.
services:
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'
docker-compose.yaml 로 서비스를 실행한 후, localhost:3000 으로 접속하면 Grafana 화면에 접근할 수 있다.

사이트 접속을 위해서는 로그인이 필요한데, 기본 계정은 `id: admin / password: admin` 이다.

로그인하면 위와 같이 Grafana 사이트에 접속되는 것을 확인할 수 있다.
- Grafana data 영속성 설정
Grafana 는 기본 저장소로 내부에서 SQLite 를 DB 로 사용한다. DB 에는 Grafana 설정, 유저 정보, 대시보드 등의 정보가 저장된다.
컨테이너 내부에 저장된 정보들은 컨테이너가 재실행 될 때마다 초기화 되는데, 이를 유지하기 위해서는 컨테이너 외부 저장소와 연결이 필요하다.
아래의 예제는 Docker volume 을 정의하여 데이터를 저장하는 방식이다. grafana-storage 라는 volume 영역을 생성하여 해당 영역에 /var/lib/grafana 경로를 연결하여 데이터를 저장한다.
services:
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- grafana-storage:/var/lib/grafana
volumes:
grafana-storage: {}
Docker volume 이 아닌 mount binding 을 사용할 수도 있다. 아래와 같이 host 디렉토리를 volume 경로로 지정하여 컨테이너의 /var/lib/grafana 경로의 데이터를 지정한 디렉토리에 저장한다.
services:
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
user: '0'
ports:
- '3000:3000'
volumes:
- './grafana/data:/var/lib/grafana'
mount 사용 시, host 디렉토리와 컨테이너 내부에서의 사용자 권한 차이, 보안 문제 등을 이유로 volume 방식을 권장한다.
[References]
Run Grafana Docker image | Grafana documentation
CautionStarting with Grafana release 12.4.0 , the grafana/grafana-oss Docker Hub repository will no longer be updated. Instead, we encourage you to use the grafana/grafana Docker Hub repository. These two repositories have the same Grafana OSS docker image
grafana.com
'기타' 카테고리의 다른 글
| [로그 모니터링] Fluent Bit 설치와 시스템 연동 (0) | 2026.03.14 |
|---|---|
| [로그 모니터링] Loki 설치와 Grafana 연동 (0) | 2026.03.11 |
| [로그 모니터링] Fluent-bit + Loki + Grafana 로그 모니터링 시스템 (0) | 2026.02.28 |
| [RabbitMQ] RabbitMQ 개념 설명 (0) | 2025.05.13 |
| [가상 면접 사례로 배우는 대규모 시스템 설계 기초] 9. 웹 크롤러 설계 (0) | 2025.04.06 |