Loki + Promtail + 그라파나

코딩을 합시다·2023년 2월 26일
0

Loki와 Promtail을 이용해서
그라파나에서 실시간 로그를 관리해보려고 한다.

우선 Loki를 깔아주자.

curl -s https://api.github.com/repos/grafana/loki/releases/latest | grep browser_download_url |  cut -d '"' -f 4 | grep loki-linux-amd64.zip | wget -i -
sudo apt install unzip

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

sudo mkdir -p /data/loki
sudo vim /etc/loki-local-config.yaml

그리고 yml파일에 아래 코드를 추가해줍니다.

auth_enabled: false

server:
  http_listen_port: 3100

ingester:
  lifecycler:
    address: 127.0.0.1
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s
  max_transfer_retries: 0

schema_config:
  configs:
    - from: 2018-04-15
      store: boltdb
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 168h

storage_config:
  boltdb:
    directory: /data/loki/index

  filesystem:
    directory: /data/loki/chunks

limits_config:
  enforce_metric_name: false
  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

로키 서비스를 생성해준다.
파일을 만들어 Loki 서비스를 데몬화합니다.

sudo tee /etc/systemd/system/loki.service<<EOF
[Unit]
Description=Loki service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/loki -config.file /etc/loki-local-config.yaml

[Install]
WantedBy=multi-user.target
EOF

시스템 데몬을 다시로드 한 다음 Loki 서비스를 시작하십시오.

sudo systemctl daemon-reload
sudo systemctl start loki.service

아래 명령어를 통해 서비스가 성공적으로 시작되었는지 확인할 수 있다.

systemctl status loki

이제 다음을 통해 Loki 메트릭에 액세스할 수 있습니다.

http://server-IP:3100/metrics

이제 프롬테일을 설치하자

curl -s https://api.github.com/repos/grafana/loki/releases/latest | grep browser_download_url |  cut -d '"' -f 4 | grep promtail-linux-amd64.zip | wget -i -
unzip promtail-linux-amd64.zip
sudo mv promtail-linux-amd64 /usr/local/bin/promtail

프롬테일 버전 확인

promtail --version
sudo vim /etc/promtail-local-config.yaml
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /data/loki/positions.yaml

clients:
  - url: http://localhost:3100/loki/api/v1/push

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

프롬테일에 대한 서비스를 생성합니다.
마찬가지로 파일을 만들어 서비스를 데몬화합니다.

sudo tee /etc/systemd/system/promtail.service<<EOF
[Unit]
Description=Promtail service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail-local-config.yaml

[Install]
WantedBy=multi-user.target
EOF

Promtail 서비스 다시로드 및 시작

sudo systemctl daemon-reload
sudo systemctl start promtail.service

서비스가 실행 중 상태인지 확인합니다.

systemctl status promtail.service

이제 그라파나로 접속해줍니다.

save&test를 눌러서 저장해주면 된다.

그리고 explore로 가서 Loki를 선택해준다.

로그가 잘보이는걸 확인할 수 있다.


참고 : https://computingforgeeks.com/forward-logs-to-grafana-loki-using-promtail/

0개의 댓글