![[Monitoring/Promtail] Promtail 설치 & 설명에 대한 모든 것 (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNnja3%2FbtsK8HtJt8F%2FFyprKWkTmsuTMXaZpqpaA1%2Fimg.png)
이번글의 promtail은 다음을 따른다.
- promtail 설명 및 설치
- 로그 수집 기초
- loki 설명 및 설치
- loki 설정 기초
- LogQL
이번글에서 설명하는 내용은 1번이다.
1. Promtail 설명 및 설치
언제까지 로그파일에서 로그 찾을래?
Promtail은 Grafana의 Loki와 함께 사용되는 로그 수집기로 Loki가 효율적으로 log를 저장하고 쿼리할 수 있도로 데이터를 전송하는데 사용된다.
logback.xml같은 방식으로 생성된 로그파일을 읽고 필요한 라벨을 추가한 뒤 Loki에 전송하는 역할을 수행한다.
Promtail 설치
바이너리 방식으로 다운로드해서 직접 설치할 수 있으나 권장되는 방식은 아니다.
공식 문서에서도 Docker를 사용하는 방식을 사용하기 때문에 Docker를 사용한 설치 방식으로 설명하겠다.
DockerFile
FROM grafana/promtail:latest
ENV TZ=Asia/Seoul
grafana 공식 dockerhub에서 이미지를 다운받는다. ENV로 컨테이너의 TZ을 한국으로 설정했다.
ENV로 한국으로 설정해도 loki프로그램은 기본적으로 UTC를 사용하기 때문에 log는 UTC기반으로 보내게 된다.
이는 중요한 개념이니 꼭 숙지하도록하자 (모니터링에서 중요한건 시간이지 않을까? 언제 무슨 일이)
Docker-comopse.yml
version: '3.7'
networks:
loki_network: # 네트워크 이름 정의
volumes:
loki_data: # Loki 데이터를 위한 볼륨
promtail_data: # Promtail 데이터를 위한 볼륨
services:
promtail:
build:
context: .
dockerfile: ./dockerfile/Dockerfile-promtail # Promtail의 커스텀 Dockerfile 지정
container_name: promtail
volumes:
- ./promtail/data:/tmp/
- ./promtail/promtail-config.yml:/etc/promtail/config.yml
- C:\Users\logfolder:/mnt/logs
ports:
- "9080:9080"
restart: always
environment:
- TZ=Asia/Seoul
command: ["-config.file=/etc/promtail/config.yml", "-log.level=debug"]
networks:
- loki_network
나중에 로키에서 사용할테니 잘 알아두자 docker 관련 설정에 대한 설명은 필자 블로그에 정리되어 있으니 그걸 참고해도 된다.
volumes을 통해서 log파일을 컨테이너가 호스트랑 공유하는 방식을 사용했다.
위방식대로 설계를 진행하면 다음 그림처럼 pormtail에서 loki로 data가 이동하게 된다.(loki 구동은 나중에 알아본다)
중요!
volumes:
- ./promtail/data:/tmp/
- ./promtail/promtail-config.yml:/etc/promtail/config.yml
위 코드를 보면 다음 방식으로 tmp랑 config.yml을 공유한다.
config.yml을 통해서 promtail이 어떤식으로 log를 보낼지 정할수 있다.
tmp는 pormtail이 log를 어디까지 봤는지 기록하는 파일을 저장하기 위해서 사용한다.
command: ["-config.file=/etc/promtail/config.yml", "-log.level=debug"]
command로 config.yml을 지정해줘야만 사용하니 중요하다
log.level도 debug로 설정해서 어떤식으로 데이터를 수집하는지볼수 있다. log.level은 상용화할때는 제거하자
그래서 다른 경쟁 software에 비한 차별점이 뭔데?
1. Grafana Labs
모니터링, 관찰, 데이터 시각화 솔루션을 제공하는 회사에서 관리해준다.
이는 loki, promtail, grafana의 호환성을 매우 좋게 만들어준다.
2. 경량 및 단순성
Logstash는 다른 형식으로 로그를 변환하거나 복잡한 파이프라인을 구축할수 있지만 그만큼 자원 소모가 크다.
단순히 log를 수집하고 라벨링하는 작업만 진행할 경우 훨씬 가볍다.
그렇다고 lavel 및 필터링 기능 수준이 떨어지는 것도 아니다.
3. 설정 및 사용이 비교적 쉽다.
config.yml파일로 직관적인 설정이 가능하다.
이는 Fluentd나 Logstash처럼 복잡한 플러그인, 데이터 변환 로직 설정이 필요 없다.
'Monitoring > Promtail' 카테고리의 다른 글
[Monitoring/Promtail] 로그 수집 기초 (v2.x.x) & 고급 (다중 서버 로그 읽기) (2) (0) | 2024.12.05 |
---|
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간