server:
# Promtail 내부 상태 및 메트릭 확인용 서버 설정
http_listen_port: 9080
grpc_listen_port: 0
positions:
# Promtail이 마지막으로 읽은 로그 위치를 저장하는 파일
filename: /tmp/positions.yaml
clients:
# Loki 서버에 로그를 전송하기 위한 설정 (push 방식)
- url: http://loki:3100/loki/api/v1/push # 예: Loki 서비스 주소
scrape_configs:
# 어떤 로그를 어떻게 수집할지 정의하는 섹션
- job_name: system_logs
static_configs:
- targets:
- localhost
labels:
job: system_logs # 로그에 부여할 라벨
__path__: /var/log/*.log # 수집할 로그 파일 경로 (와일드카드 사용 가능)
# (선택) 로그 파이프라인 설정
pipeline_stages:
- drop:
# 정규식 매칭 시 해당 로그 라인을 드롭(수집 제외)
expression: '(?s).*healthcheck.*status=200.*'
# - regex:
# # 로그 내용을 정규식으로 파싱해 라벨로 추출할 때 사용
# expression: '^(?P<timestamp>[^ ]+) (?P<loglevel>[A-Z]+) (?P<msg>.*)'
# - labels:
# timestamp: ts
# loglevel: level
# msg: message
# - timestamp:
# source: ts
# format: RFC3339
# (선택) 라벨 재가공 설정
relabel_configs:
- source_labels: ["__path__"]
target_label: "source_file"
# 필요하다면, 다른 job 정의를 추가
- job_name: app_logs
static_configs:
- targets:
- localhost
labels:
job: app_logs
__path__: /home/myapp/logs/*.log
# 여기에 별도의 pipeline_stages, relabel_configs를 정의할 수도 있음