나의 잡다한 노트 및 메모
Promtail 이란? 본문
Grafana Loki와 함께 사용되는 log 수집 에이전트이다.
시스템에서 생성되는 로그를 모니터링하고, 이를 Loki로 전송하는 역할을 한다.
프로메테우스가 시계열 메트릭을 스크랩하듯, promtail은 로그 파일을 스크랩해 loki에 저장하는 구조를 갖는다.
참고 -> 2025년 2월 13일부터 deprecated 된 듯… grafana alloy로 갈아타라는 문구가 있다. ㅠ

주요 특징
- 가벼운(log lightweight) 설계
- Promtail은 Loki의 디자인 철학에 맞춰 개발되어, Elastic Stack(예: Logstash, Beats)처럼 복잡한 파이프라인보다는 간단하고 확장성 있는 방식을 지향합니다.
- 대부분의 로그 파싱/처리는 Loki가 아닌 Promtail에서 미리 수행할 수 있도록 설계되었으나, 규모가 크지 않거나 단순한 경우에는 별도의 복잡한 설정 없이도 쉽게 로그를 전송할 수 있습니다.
- 다양한 입력 소스
- 가장 많이 쓰이는 방식은 파일 시스템(직접 tailing) 이며, __path__ 설정을 통해 특정 디렉터리나 파일을 모니터링합니다.
- Kubernetes 환경에서는 file뿐 아니라 Pod/컨테이너 로그(kubernetes_sd_config), 시스템 저널 로그(journal) 등 다양한 소스에서 로그를 수집할 수 있습니다.
- 유연한 라벨(Label) 적용
- Prometheus처럼 라벨을 통해 로그를 분류합니다. 예: job, hostname, environment 등이 가능하며, 쿼리 시 job="webapp"처럼 필터링할 수 있게 됩니다.
- relabel_configs / pipeline_stages를 통해 로그 라벨을 생성·수정·삭제하여 원하는 형태로 Loki에 전송할 수 있습니다.
- 비동기 전송 & 재시작 시 위치 저장(Positions)
- Promtail은 내부적으로 Positions 파일을 유지하여, 마지막으로 처리한 로그 라인의 위치(오프셋)를 기억합니다.
- 재시작 후에도 이전에 수집했던 로그 이후부터 이어서 수집하므로, 중복이나 누락 없이 안정적으로 로그를 전송할 수 있습니다.
- Low overhead + 고성능 수집
- Promtail은 일반적으로 CPU와 메모리 사용량이 적어 노드별로 가볍게 배포하기 좋습니다.
- Loki와는 기본적으로 Push 모델(Promtail → Loki)로 동작하며, 필요할 경우 Promtail 대신 다른 로그 수집기(Fluent Bit, Logstash, Vector 등)와 연동해도 됩니다.
주의사항 및 한계
- 파싱 로직 제한
- Promtail은 Fluentd/Logstash처럼 복잡한 변환 로직을 수행하기엔 기능이 제한적입니다.
- 복잡한 로그 구조 변환이 필요한 경우, Fluent Bit Plugin이나 Logstash에서 Loki Output Plugin을 사용하는 것도 고려할 수 있습니다.
- 로그량 모니터링
- Promtail에서 전송하는 로그량이 많아질수록 Loki 스토리지와 비용이 증가할 수 있으므로, 불필요한 로그 필터링(drop)과 라벨 최소화가 중요합니다.
- 메타데이터 동기화
- Kubernetes에서 Pod 레이블을 기반으로 라벨을 생성할 때, Pod이 빠르게 종료/재시작하면 메타데이터가 늦게 반영될 수 있으므로, 어떤 시점의 로그가 어떤 라벨과 연결되는지 유의해야 합니다.
'DevOps > Promtail' 카테고리의 다른 글
| Promtail의 중요한 디테일 (0) | 2025.03.22 |
|---|---|
| Promtail의 주요 설정 요소 (0) | 2025.03.22 |