본문 바로가기

리눅스

[draft] Promtail을 Docker Compose 파일을 사용하여 설정하는 방법

728x90

Promtail을 Docker Compose 파일을 사용하여 설정하는 방법

Promtail은 로그를 수집하고 Grafana Loki에 전달하는 로그 수집기입니다.

Docker Compose 파일 생성

프로젝트 디렉토리 생성

mkdir docker-container-monitoring

프로젝트 디렉토리 이동

cd docker-container-monitoring

docker-compose.yml 파일 작성

cat <<EOF > docker-compose.yml
version: '3.8'
services:
  $(hostname)-promtail:
    image: grafana/promtail:2.9.1
    container_name: $(hostname)-promtail
    environment:
      - LOKI_SERVER=192.168.0.111
    command: -config.file=/etc/promtail/config.yaml
    volumes:
      - /var/log:/var/log:ro
      - /var/lib/docker/containers:/var/lib/docker/containers:ro
      - ./promtail/config.yaml:/etc/promtail/config.yaml
    ports:
      - 9080:9080
EOF
728x90

promtail 디렉토리 생성

mkdir promtail

config.yaml 파일 작성

cat <<EOF > promtail/config.yaml
server:
  http_listen_address: 0.0.0.0
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://${LOKI_SERVER}:3100/loki/api/v1/push

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/*log

- job_name: containers
  static_configs:
  - targets:
      - localhost
    labels:
      job: containerlogs
      cluster: multipass-cluster
      __path__: /var/lib/docker/containers/*/*log

  pipeline_stages:
  - json:
      expressions:
        stream: stream
        attrs: attrs
        tag: attrs.tag
  - regex:
      expression: (?P<container_name>(?:[^|]*[^|]))
      source: "tag"
  - labels:
      stream:
      container_name:
EOF

Docker Compose 실행

docker compose up -d

Promtail 웹 UI 확인

Promtail이 실행되면 웹 브라우저에서 http://localhost:9080에 접속하여 Promtail 웹 UI를 확인할 수 있습니다.

 

Promtail이 로그를 수집하고 지정된 Loki 서버로 푸시하도록 설정되었습니다. Promtail의 로그 수집 및 전달 상태를 모니터링하여 설정이 제대로 동작하는지 확인할 수 있습니다.

 

참고URL

- Grafana Labs : Install Loki with Docker or Docker Compose

 

728x90