기본 loki-config.yaml 파일 생성
이 단계에서는 Loki 를 위한 최소한의 설정 파일 (configuration file) 을 생성합니다. 이 파일인 loki-config.yaml은 Loki 가 어떻게 실행되어야 하는지, 데이터를 어디에 저장할지, 어떤 스키마 (schema) 를 사용할지를 지시합니다. 본 실습에서는 Loki 가 스토리지를 위해 로컬 파일 시스템을 사용하도록 구성할 것입니다.
nano 텍스트 편집기를 사용하여 파일을 생성합니다. loki-config.yaml이라는 새 파일을 열려면 다음 명령어를 실행하십시오:
nano loki-config.yaml
이제 다음 YAML 내용을 nano 편집기에 복사하여 붙여넣으십시오:
auth_enabled: false
server:
http_listen_port: 3100
common:
path_prefix: /tmp/loki
storage:
filesystem:
chunks_directory: /tmp/loki/chunks
rules_directory: /tmp/loki/rules
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /tmp/loki/index
cache_location: /tmp/loki/cache
filesystem:
directory: /tmp/loki/chunks
ruler:
alertmanager_url: http://localhost:9093
limits_config:
allow_structured_metadata: false
이 설정은 컨테이너 내부의 /tmp/loki 아래에 Loki 가 필요로 하는 모든 것을 유지하여 권한 문제를 피하고 설정을 이해하기 쉽게 만듭니다. 이는 인증을 비활성화하고, 단일 노드 사용을 위해 인메모리 링 (in-memory ring) 을 활성화하며, 블록과 인덱스를 로컬 파일 시스템에 저장합니다.
파일의 각 섹션이 하는 일은 다음과 같습니다:
auth_enabled: false: 인증을 비활성화하여 추가 자격 증명 없이 Loki 와 통신할 수 있도록 합니다. 이는 로컬 테스트를 단순화하며, 프로덕션 환경에서는 인증을 활성화해야 합니다.
server.http_listen_port: 3100: Loki 에게 3100 포트에서 HTTP 요청을 수신 대기하도록 지시합니다. localhost:3100으로 curl 을 실행하면 이 포트에 접속하게 됩니다.
common.path_prefix: 컨테이너 내부에서 Loki 가 임시 데이터를 저장하는 기본 폴더를 설정합니다. 이 파일의 다른 모든 경로는 /tmp/loki를 기반으로 하므로 모든 것이 한 곳에 유지됩니다.
common.storage.filesystem: 로그 데이터의 청크 (chunk) 와 규칙 파일 저장을 위해 Loki 를 두 개의 폴더로 지정합니다. 컨테이너에 특별히 마운트하는 것이 없으므로 /tmp/loki를 사용하면 권한 문제를 피할 수 있습니다.
common.ring.kvstore.store: inmemory: 멤버십 정보를 메모리에 유지합니다. 단일 노드 실습에는 이것이 완벽하지만, 실제 클러스터에서는 Consul 이나 etcd 와 같은 공유 스토어를 사용하게 됩니다.
schema_config: Loki 가 로그 데이터에 대한 인덱스를 어떻게 구성할지 정의합니다. 시작 날짜를 설정하고, boltdb-shipper 스토어를 선택하며, 인덱스를 파일 시스템에 유지합니다. prefix와 period는 파일 이름 지정 방식과 새 인덱스 파일이 생성되는 빈도 (24 시간마다) 를 제어합니다.
storage_config: boltdb-shipper 인덱스 (active_index_directory 및 cache_location) 와 원시 청크 스토리지를 위한 정확한 폴더를 제공합니다. 모든 경로는 깔끔하게 유지하기 위해 다시 /tmp/loki 아래에 위치합니다.
ruler.alertmanager_url: Loki 의 ruler 컴포넌트가 http://localhost:9093에 있는 Alertmanager 로 알림을 보내도록 준비합니다. Alertmanager 가 실행되고 있지 않아도 아무것도 중단되지 않으며, Loki 는 알림을 보내려고 시도할 때 경고 (warning) 를 기록할 뿐입니다.
limits_config.allow_structured_metadata: false: 고급 기능을 비활성화하여 Loki 가 초보자가 예상하는 더 간단한 일반 텍스트 로그 메타데이터를 사용하도록 합니다.
Ctrl+X를 눌러 종료하고, Y를 눌러 저장을 확인한 다음, 마지막으로 Enter를 눌러 loki-config.yaml이라는 이름으로 파일을 저장하십시오.