[인프라] Loki Grafana Log수집 연동
- 인프라/그라파나 & 프로메테우스
- 2022. 8. 20. 07:10
개요
- Loki, Grafana Log 수집 PoC 진행합니다.
디렉터리 구성
- Loki, Grafana Log 수집 관련하여 docker-compose 를 이용하여 로그 수집 테스트 진행할 예정입니다.
- docker-compose.yml 작성 하기 전, Volumn Mount 를 하기 위한 선행 작업으로 디렉터리 구조를 다름과 같이 진행하였습니다.
loki-config.yaml 파일 작성
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
ingester:
wal:
enabled: true
dir: /tmp/wal
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 1h # Any chunk not receiving new logs in this time will be flushed
max_chunk_age: 1h # All chunks will be flushed when they hit this age, default is 1h
chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
chunk_retain_period: 30s # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m)
max_transfer_retries: 0 # Chunk transfers disabled
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/boltdb-shipper-active
cache_location: /tmp/loki/boltdb-shipper-cache
cache_ttl: 24h # Can be increased for faster performance over longer query periods, uses more disk space
shared_store: filesystem
filesystem:
directory: /tmp/loki/chunks
compactor:
working_directory: /tmp/loki/boltdb-shipper-compactor
shared_store: filesystem
limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: false
retention_period: 0s
ruler:
storage:
type: local
local:
directory: /tmp/loki/rules
rule_path: /tmp/loki/rules-temp
alertmanager_url: http://localhost:9093
ring:
kvstore:
store: inmemory
enable_api: true
promtail-config.yaml 파일 작성
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*/*.json
docker-compose.yaml 파일 작성
- 이제 Loki, Promtail, Grafana 를 실행시킬
docker-compose.yml
을 작성합니다.
version: "3.4"
networks:
loki:
services:
loki:
image: grafana/loki:2.2.1
ports:
- "3100:3100"
volumes:
- ./loki:/etc/loki
command: -config.file=/etc/loki/loki-config.yaml
networks:
- loki
promtail:
image: grafana/promtail:2.2.1
volumes:
- ./logs:/var/log
- ./promtail:/etc/promtail
command: -config.file=/etc/promtail/promtail-config.yaml
networks:
- loki
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
networks:
- loki
Docker Compose UP
- 이제 준비는 마쳤으니,
docker-compose.yaml
파일 있는 디렉터리에docker-compose up
명령어를 통해 컨테이너를 실행합니다.
> docker-compose up
Grafana Loki DataSource 생성
- Loki DataSource 를 생성합니다.
Grafana Explorer 생성
- Loki DataSource 를 추가 하였다면, Explorer 메뉴에 들어가서 Log 가 정상적으로 수집 되는지 확인합니다.
- 정상적으로 로그가 수집 되어 표시되는 것을 확인할 수 있습니다.
728x90
'인프라 > 그라파나 & 프로메테우스' 카테고리의 다른 글
[인프라] Grafana Login 페이지 Disable 방법 (0) | 2022.09.29 |
---|---|
[인프라] Grafana Multiple Y Axis 사용방법 (0) | 2022.09.18 |
[인프라] 프로메테우스 아키텍처 (0) | 2022.07.25 |
[인프라] 프로메테우스 모니터링 개념 (0) | 2022.07.25 |
[인프라] 프로메테우스 데이터 구조 (0) | 2022.07.24 |
이 글을 공유하기