티스토리 뷰

Windows에서 Docker Compose를 이용해 Grafana, Loki, Promtail을 구성하는 방법에 대해 알아보겠습니다.

 

1. Docker Desktop 설치

https://docs.docker.com/desktop/install/windows-install/
  • 위 URL로 접속하여 윈도우용 설치파일을 다운로드합니다.

 

2. Docker Compose 파일 작성

2.1. 작업폴더생성

mkdir grafana-loki-setup
  • 저는 "D:/loki/grafana-loki-setup" 경로에 생성하였습니다.
  • 해당 경로로 이동해서, 3개의 파일을 생성합니다.
    1. docker-compose.yml
    2. loki-config.yaml
    3. promtail-config.yaml

 

2.2. 설정파일생성

2.2.1. docker-compose.yml

version: '3.8'

services:
  loki:
    image: grafana/loki:latest
    container_name: loki
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml -config.expand-env=true
    volumes:
      - ./loki-config.yaml:/etc/loki/local-config.yaml -config.expand-env=true

  promtail:
    image: grafana/promtail:latest
    container_name: promtail
    volumes:
      - ./promtail-config.yaml:/etc/promtail/promtail-config.yaml
      - D:/loki/logs:/var/logs  # 윈도우의 로그 디렉터리에 맞게 변경
    command: -config.file=/etc/promtail/promtail-config.yaml

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - grafana-storage:/var/lib/grafana

volumes:
  grafana-storage:
  • loki는 "3100", promtail 은 "3000" 번 포트로 지정합니다.
  • 나머지 설정은 도커내부 설정이므로, promtail volumns의 로그 경로만 원하는 경로로 작성하시면 됩니다.

 

2.2.2. loki-config.yaml

auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 0
    
ingester:
  lifecycler:
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
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/boltdb-cache
  filesystem:
    directory: /tmp/loki/chunks

limits_config:
  allow_structured_metadata: false
  
compactor:
  working_directory: D:/loki/work
  • working_directory 경로는 원하는 경로로 작성하시면 됩니다.

 

2.2.3. promtail-config.yaml

server:
  http_listen_port: 9080

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/logs/*.log
  • 분석할 로그 경로만 작성하시면 됩니다.

 

3. Docker Compose 실행

docker-compose up -d
  • cmd 창을 열고 docker-compose.yml 파일을 작성한 위치로 이동 후 실행합니다.

  • Docker Desktop으로 실행 확인을 할 수 있습니다.

 

4. Grafana 접속

http://localhost:3000/
  • 위 URL로 접속합니다. 초기 ID/PW 는 admin / admin 입니다.

  • "Connections > Data sources > Loki" 클릭하여 URL(Docker 에선 loki 로 작성)을 작성 후, "Save & test" 버튼을 클릭합니다.

  • "Build a dashboard" 버튼을 클릭합니다.

  • "Add visualization" 버튼을 클릭합니다.

  • "loki" 를 선택합니다.

  • "Queries" 탭에서 "loki" 를 선택합니다.
  • Label filters 에 "job" 과 "varlogs" 를 순서대로 입력합니다.
  • Line contains 에는 원하는 단어를 입력하시면 됩니다. 예제에선 "INFO" 와 "ERROR" 를 입력하였습니다.

  • 오른쪽 Visualizations 에선 "Logs" 를 선택합니다.
  • Run query 또는 Save dashboard를 통해 로그를 볼 수 있습니다.

 

감사합니다.

'도구 및 환경 > Tool' 카테고리의 다른 글

[Loki] Window 에 Loki, Promtail 설치하기  (2) 2024.11.05
[Grafana] Window 에 Grafana 설치하기  (2) 2024.11.05
최근에 올라온 글
Total
Today
Yesterday