리눅스

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

변군이글루 2024. 7. 3. 22:52
반응형

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
반응형