[Monitoring/Loki] loki 설정 기초 (Bitnami Loki 3.x + Schema v13) (4)Monitoring/Loki2024. 12. 6. 10:15
Table of Contents
728x90
반응형
이번글의 loki은 다음을 따른다.
- promtail 설명 및 설치
- 로그 수집 기초
- loki 설명 및 설치
- loki 설정 기초
- LogQL
이번글에서 설명하는 내용은 4번이다.
3번을 선행해야 4번을 진행하기 쉽다.
4. Loki 설정 기초
Loki Config
volumes:
- loki_data:/loki
- ./loki/local-config.yaml:/etc/loki/loki.yaml
ports:
- "3100:3100"
command: -config.file=/etc/loki/loki.yaml
3번에서 진행한 volumes로 설정파일을 잘 연결해주고 command를 입력해줘야 설정 파일이 제대로 적용된다.
설정파일 전문 주석버전
auth_enabled: false # 필수: 인증 비활성화 여부를 설정.
# 기본값은 false이, 프로덕션 환경에서는 인증 활성화를 위해 리버스 프록시 사용 권장.
server:
http_listen_port: 3100 # 필수: Loki HTTP API가 수신 대기할 포트 번호.
# 대체: 기본값은 3100 필요에 따라 변경 가능.
log_level: debug # 선택: Loki 로그 수준 개발/테스트 환경에서는 'debug'
# 프로덕션 환경에서는 'info' 또는 'warn' 권장.
grpc_server_max_recv_msg_size: 8388608 # 선택: gRPC 서버에서 수신 가능한 최대 메시지 크기(8MB)
# 대체: 로그 크기가 크다면 증가 가능
grpc_server_max_send_msg_size: 8388608 # 선택: gRPC 서버가 보낼 수 있는 최대 메시지 크기
graceful_shutdown_timeout: 5s # 선택: 서버 종료 시 요청 처리를 대기할 시간
# 대체: 기본값은 즉시 종료이며 5s 이상 권장
common:
path_prefix: /loki # 필수: Loki 데이터 저장 경로
# 대체: 기본값은 `/loki` 원하는 경로로 변경 가능
replication_factor: 1 # 필수: 데이터 복제 인수 단일 노드 환경에서는 1
# 클러스터 환경에서는 2 이상 권장
ring:
kvstore:
store: inmemory # 필수: 링 메타데이터 저장소
# 대체: 단일 노드에서는 'inmemory' 클러스터 환경에서는 'memberlist' 또는 'etcd' 사용
heartbeat_timeout: 1m # 선택: 링 상태 확인 주기. 클러스터 환경에서 노드 가용성을 점검
schema_config:
configs:
- from: 2022-01-01 # 필수: 이 스키마 설정이 적용되는 시작 날짜
store: tsdb # 필수: 스토리지 유형
# 대체: 기본값은 'boltdb-shipper' 장기 저장소와의 통합에는 'tsdb' 추천
object_store: filesystem # 필수: 청크 데이터 저장소
# 대체: 프로덕션 환경에서는 's3' 'gcs', 또는 'azure' 권장
schema: v13 # 필수: Loki 스키마 버전
# 대체: 최신 스키마(v13)를 사용하는 것이 권장됨
index:
prefix: index_ # 필수: 인덱스 이름 접두사
# 대체: 기본값은 'index_'이며 커스터마이징 가능
period: 24h # 필수: 인덱스 주기(24시간 단위)
# 대체: 데이터 크기에 따라 주기를 늘릴 수 있음
storage_config:
filesystem:
directory: /loki/data # 필수: 파일 시스템에 데이터를 저장할 경로
# 대체: 기본값은 `/loki/data` 클라우드 저장소 사용 시 's3', 'gcs' 등으로 전환
ruler:
alertmanager_url: http://localhost:9093 # 선택: Alertmanager와 연동하기 위한 URL
# 대체: Alertmanager가 없다면 생략 가능
rule_path: /loki/rules # 선택: 알림 규칙 파일을 저장할 경로
# 대체: `/loki/rules` 기본값 사용 가능
enable_api: true # 선택: 규칙 관리 API 활성화 여부
limits_config:
reject_old_samples: true # 선택: 오래된 로그 데이터를 거부할지 여부
# 대체: 기본값은 false이며 데이터 정확성을 위해 true 설정 추천
retention_period: 168h # 필수: 로그 데이터 보존 기간(7일)
# 대체: 필요에 따라 보존 기간을 늘리거나 줄일 수 있음
max_streams_per_user: 1000 # 선택: 사용자당 최대 스트림 수 제한
# 대체: 기본값은 무제한이며 리소스 보호를 위해 설정 권장
max_entries_per_query: 5000 # 선택: 쿼리당 최대 항목 수 제한
# 대체: 기본값은 무제한 리소스 소모 방지를 위해 설정 필요
query_range:
align_queries_with_step: true # 선택: 쿼리를 스텝과 정렬하여 효율적인 검색 수행
max_retries: 5 # 선택: 실패한 쿼리의 최대 재시도 횟수
split_queries_by_interval: 1h # 선택: 대규모 쿼리를 1시간 단위로 분할하여 처리
# 대체: 데이터 양이 많을수록 간격을 줄일 수 있음
cache_results: true # 선택: 쿼리 결과를 캐싱하여 동일 요청 성능 향상
frontend:
log_queries_longer_than: 5s # 선택: 지정 시간(5초) 이상 실행된 쿼리를 로그로 기록
compress_responses: true # 선택: 응답 데이터를 압축하여 네트워크 대역폭 절약
frontend_worker:
frontend_address: 127.0.0.1:9095 # 필수: Query Frontend와 통신할 워커 주소
# 대체: 단일 노드에서는 로컬 주소 유지 클러스터에서는 노드 IP 지정
parallelism: 4 # 선택: 병렬로 처리할 작업 수 설정
# 대체: 기본값은 1이며 리소스 여유에 따라 늘릴 수 있음
memberlist:
bind_port: 7946 # 필수: 멤버리스트 클러스터 노드 간 통신에 사용할 포트
# 대체: 기본값은 7946이며 포트 충돌 시 변경 가능
join_members:
- 127.0.0.1:7946 # 선택: 멤버리스트 클러스터의 초기 노드 목록
# 대체: 단일 노드 환경에서는 생략 가능
이번에는 주석으로 설명을 달아보았다. 필수로 적혀있는 부분은 필수로 설정해줘야하며 선택은 필요에 따라서 선택적으로 대체해도 된다.
설정파일 전문 주석없음
auth_enabled: false
server:
http_listen_port: 3100
log_level: debug
grpc_server_max_recv_msg_size: 8388608
grpc_server_max_send_msg_size: 8388608
graceful_shutdown_timeout: 5s
common:
path_prefix: /loki
replication_factor: 1
ring:
kvstore:
store: inmemory
heartbeat_timeout: 1m
schema_config:
configs:
- from: 2022-01-01
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
storage_config:
filesystem:
directory: /loki/data
cache:
enable_fifocache: true
fifocache:
max_size_items: 10000
max_size_bytes: 1GB
compactor:
working_directory: /loki/compactor
shared_store: filesystem
compaction_interval: 5m
ruler:
alertmanager_url: http://localhost:9093
rule_path: /loki/rules
enable_api: true
limits_config:
reject_old_samples: true
retention_period: 168h
max_streams_per_user: 1000
max_entries_per_query: 5000
query_range:
align_queries_with_step: true
max_retries: 5
split_queries_by_interval: 1h
cache_results: true
frontend:
log_queries_longer_than: 5s
compress_responses: true
frontend_worker:
frontend_address: 127.0.0.1:9095
parallelism: 4
memberlist:
bind_port: 7946
join_members:
- 127.0.0.1:7946
728x90
반응형
'Monitoring > Loki' 카테고리의 다른 글
[Monitoring/Loki] Loki 설치 & 설명에 대한 모든 것 (3) (1) | 2024.12.06 |
---|
@코딩하는 자연대생 :: 자연대생도 코딩을 하고 싶어
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간