[loki, Promtail] 적용기

이상협·2024년 3월 28일

Logging

목록 보기
1/1

회사에서 관리 서버를 두개의 인스턴스에서 사용하기 시작하면서 에러 로그를 확인할때 두개의 인스턴스를 따로 확인해봐야하는 불편함이 생겼습니다.

그래서 api 모니터링을 사용하고 있는 Grafana에 loki를 추가해 로그를 한번에 볼수 있도록 만들기 위해 적용하기로 하였습니다.

그라파나는 설치되어있다는 가정하에 진행하겠습니다.

loki 설치

grafana가 설치되어있는 인스턴스에 loki를 설치합니다.

loki config 디텍토리 생성

$ mkdir /opt/loki
$ cd /opt/loki

loki 다운로드 및 설치

$ wget https://github.com/grafana/loki/releases/download/v2.9.6/loki-linux-amd64.zip

$ unzip loki-linux-amd64.zip
$ mv loki-linux-amd64 loki
$ mv loki /usr/local/bin/loki

loki config.yaml

$ vim loki-config.yaml
// loki.config.yaml
auth_enabled: false

server:
  http_listen_port: 3100

common:
  ring:
    instance_addr: 127.0.0.1
    kvstore:
      store: inmemory
  replication_factor: 1
  path_prefix: /tmp/loki

schema_config:
  configs:
    - from: 2020-05-15
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 24h

loki 서비스 등록

$ vim /usr/lib/systemd/system/loki.service
// loki.service
Description=Like Prometheus, but for logs.
Documentation=https://github.com/grafana/loki

[Service]
ExecStart=/usr/local/bin/loki -config.file /opt/loki/loki-config.yaml

[Install]
WantedBy=multi-user.target
$ systemctl start loki
$ systemctl enable loki

Promtail 설치

Promtail은 현재 운영중인 서버의 로그 파일들을 읽어와야 하기 때문에 운영중인 인스턴스에 설치해줍니다.

Promtail config 디렉토리 생성

$ mkdir /opt/promtail
$ cd /opt/promtail

Promtail 다운로드 및 설치

$ wget https://github.com/grafana/loki/releases/download/v2.9.6/promtail-linux-amd64.zip

$ unzip promtail-linux-amd64.zip
$ chmod a+x promtail-linux-amd64
$ mv promtail-linux-amd64 promtail
$ mv promtail /usr/local/bin/

Promtail config.yaml

$ vim promtail-config.yaml
// promtail-config.yaml
server:
  http_listen_port: 9080
  grpc_listen_port: 0

# Positions
positions:
  filename: /tmp/positions.yaml

# Loki Server URL
clients:
  - url: http://${grafana-loki-ip}:3100/loki/api/v1/push

scrape_configs:
  - job_name: ${job-name}
    static_configs:
    - targets:
        - localhost
      labels:
        job: ${job-name}
        __path__: ${log-path}/*log
  - job_name: ${job-name}
    static_configs:
    - targets:
        - localhost
      labels:
        job: ${job-name}
        __path__: ${log-path}/*log

Promtail 서비스 등록

$ vim /usr/lib/systemd/system/promtail.service
//promtail.service
[Unit]
Description=Promtail
Documentation=https://github.com/grafana/loki

[Service]
ExecStart=/usr/local/bin/promtail -config.expand-env=true -config.file /opt/promtail/promtail-config.yaml

[Install]
WantedBy=multi-user.target
$ systemctl start promtail
$ systemctl enable promtail

Grafana loki 확인

  • [Grafana] - [Connections] - [loki검색 후 클릭]

  • Explore로 이동하여 로그가 정상적으로 들어오는지 확인

참고

0개의 댓글