
이번글은 Loki를 사용해서 dashboard를 만들고는 싶으나 돈이없어서 서버에 구축하기엔 아깝고 모니터링은 하고싶은 사람을 위한 글이다. 한국에서는 Grafana Cloud를 사용하는 글이 없어서 한번 작성해보려고 한다.
어떻게 발전할지는 몰라서 목차는 없다 ㅎㅎ
이번글에서 작성하는 내용은 Grafana Cloud를 통해서 Loki를 띄우고 promtail을 통해서 발송해보는 과정이다.
이전 글에서 사용한 promtail이나 loki를 docker로 설치하지 않고 공식 문서에 있는 방식으로 promtail을 설치한다.
이번글에서는 앞의 내용을 토대로 promtail을 docker로 띄워보고 Loki로 로그를 발송해보고 간단하게 grafana 화면을 구성해보려고한다.
앞의 내용은 하기와 같다.
[Monitoring/Loki] Grafana Cloud & Loki & Promtail 사용기 (돈이 없지만 모니터링, 로그수집은 하고싶어)
이번글은 Loki를 사용해서 dashboard를 만들고는 싶으나 돈이없어서 서버에 구축하기엔 아깝고 모니터링은 하고싶은 사람을 위한 글이다. 한국에서는 Grafana Cloud를 사용하는 글이 없어서 한번 작성
naturecancoding.tistory.com
1. Promtail docker로 설치하기
이글은 dokcer 설치는 설명하지 않을것이기 때문에 docker가 처음이라면 아래 글들을 참고해서 docker을 배워도된다.
여기서 사용해볼 docker는 최대한 간단하게 진행할꺼기 때문에 필수로 봐야할 선수과정은 없다.
'Deployment/Docker 기초' 카테고리의 글 목록
naturecancoding.tistory.com
promtail에 대한 설명도 있다. 아래글을 참고해보자 설치방법도 아래글에서 설명할꺼니 아 이런거구나 정도 이해하면 된다.
[Monitoring/Promtail] Promtail 설치 & 설명에 대한 모든 것 (1)
이번글의 promtail은 다음을 따른다.promtail 설명 및 설치로그 수집 기초loki 설명 및 설치loki 설정 기초LogQL이번글에서 설명하는 내용은 1번이다.1. Promtail 설명 및 설치언제까지 로그파일에서 로그
naturecancoding.tistory.com

다시 stack으로 돌아오면 Loki가 있다. 여기서 Send Logs을 누르자 그럼 Logs를 보내는 법을 알려준다.
눌러보면 여러가지 방법을 알려준다. 우리가 사용할 방법은 promtail을 이용한 아래 방법이다.

여기 화면에 들어오면 위 사진과 같이 당신의 메타데이터를 얻을수 있다.
Passwords에 필요한 API Token은 이전글에서 발급한 인증/인가 토큰이니 만들지 않아도 된다.
Sending Logs to Grafana Cloud using Promtail
하지만 이거는 관리하기도 힘들고 매번 저런 긴 명령어를 치는건 귀찮기 때문에 비슷하지만 다른 방식을 사용할 것이다.
Promtail 디렉토리 구조

아무곳에 promtail이라는 폴더(이제부터 디렉토리)를 생성하자
그후 아래처럼 파일을 생성하자
- logs :
나중에 app.log 파일을 만들어서 promtail이 로그를 수집하는 대상이 될것이다. - .env
이전 글에서 만들었던 accesstoken을 저장해둘 env파일 - docker-compose.yml
dockerfile을 사용해서 진짜 컨테이너를 실행하는 파일, dockerfile만 사용하는 것에 비해 docker-compose를 사용하면 컨테이너 관리가 더 편해진다. - Dockerfile
grafana/promtail:latest 기반 이미지 빌드. promtail-config.yaml를 컨테이너의 /etc/promtail/config.yml로 복사하고 환경변수 확장을 활성화해 실행 - promtail-config.yaml
Loki한테 어떻게 log를 발송할껀지 어디로 발송할껀지 등의 설정을 만드는 파일
추가 설정으로 log파일들을 얼마나 읽었는지 기록할수 있는 기능이있지만 이 기능은 추가하지 않고 빠르게 진행하겠다. 있다는 것만 알아두자
Dockerfile
FROM grafana/promtail:latest
COPY ./promtail-config.yaml /etc/promtail/config.yml
ENTRYPOINT ["/usr/bin/promtail","-config.file=/etc/promtail/config.yml","-config.expand-env=true"]
docker-compose.yml
services:
promtail:
build: .
container_name: promtail
restart: unless-stopped
environment:
GRAFANA_LOKI_TENANT: ""
GRAFANA_LOKI_HOST: ""
GRAFANA_LOKI_TOKEN: "${GRAFANA_LOKI_TOKEN}"
HOSTNAME: "${COMPUTERNAME:-windows-docker}"
APP_NAME: "spring-api"
ENV: "dev"
volumes:
- ./logs:/var/log
promtail-config.yaml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: https://${GRAFANA_LOKI_TENANT}:${GRAFANA_LOKI_TOKEN}@${GRAFANA_LOKI_HOST}/loki/api/v1/push
scrape_configs:
- job_name: windows
static_configs:
- targets: [localhost]
labels:
job: winlogs
app: ${APP_NAME}
env: ${ENV}
host: ${HOSTNAME}
__path__: /var/log/*.log
실행 명령
cd promtail
docker-compose down
docker-compose up -d --build


여기서 로그가 제대로 보내지고 있는지 log를 확인할 수 있다.
2. Grafana 데시보드 만들기

우리는 간단하게 테스트 해볼테니까 Add visualization을 누르자

이제 data source를 클릭해야하는데 아까 전송한 Loki를 누르자

Label filters를 다음과같이 설정하고 refresh를 클릭하면 위와같이 Switch to table이 나오면 누르자
이제 원하는 데로 눌러보면서 설정하면된다.!
'Monitoring > Loki' 카테고리의 다른 글
| [Monitoring/Loki] Grafana Cloud & Loki & Promtail 사용기 (돈이 없지만 모니터링, 로그수집은 하고싶어) (0) | 2025.08.19 |
|---|---|
| [Monitoring/Loki] loki 설정 기초 (Bitnami Loki 3.x + Schema v13) (4) (2) | 2024.12.06 |
| [Monitoring/Loki] Loki 설치 & 설명에 대한 모든 것 (3) (1) | 2024.12.06 |