큐범
Just do debug
큐범
전체 방문자
오늘
어제
  • 전체보기 (132)
    • 회고 (4)
    • JAVA (16)
      • JAVA 기초 (18)
      • JAVA Algorithm, Datastruct (13)
    • Spring (11)
    • Micro Service Architecture (3)
    • JPA (6)
    • gRPC (4)
    • Network (8)
    • Process (7)
    • Cloud (4)
    • Python (10)
    • Web(vue) (2)
    • UMC (1)
    • DB (9)
    • CS (5)
    • Clean Code (1)
    • TDD (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
큐범

Just do debug

[모니터링] loki, Promtail를 통해 log 모니터링
Cloud

[모니터링] loki, Promtail를 통해 log 모니터링

2023. 6. 19. 09:13

프로젝트를 진행하면서 어플리케이션, CPU 모니터링에 대해서는 진행중이었으나 WAS에 에러가 발생하면 이를 로컬 환경에서 같이 에러시연을 하는데 문제는 에러 시연이 발생하지 않는 경우에 로그를 직접 보거나 프로세스의 콘솔을 확인하는 상황도 종종 발생했다.

Log 모니터링을 찾아보던 중 elasticsearch와 Loki가 나왔다. 현재 프로젝트에는 grafana가 적용되어 있고 이를 기반으로 작성하기는 loki가 더욱 적용하기 편해보였다.


Loki

특징

  • 수평 확장
  • 다중 로그 집계 시스템
  • 대규모 시스템에도 효율적인 데이터 처리
  • 오픈소스

loki는 promtail을 통해 로그를 가져와서 로그를 저장한다.

  • promtail은 그라파나 로키(Loki)의 로그 수집 에이전트로 사용되는 오픈 소스 소프트웨어이다.

역할

Promtail : 로그 파일이 존재하는 서버에서 로그를 loki로 전송한다.

Loki : promtail 로그를 수신받아서 이를 저장/분류한다.

 

최종 아키텍쳐

Promtail을 통해 로그를 loki로 보내고 이를 grafana에서 모니터링 한다.

모든 것은 Docker로 진행된다.

 

실습

본 실습은 grafana가 설치되어 있는 가정 하에 진행한다

1. loki 설치

wget https://raw.githubusercontent.com/grafana/loki/v2.8.0/cmd/loki/loki-local-config.yaml -O loki-config.yaml
docker run --name loki -d -v $(pwd):/mnt/config -p 3100:3100 grafana/loki:2.8.0 -config.file=/mnt/config/loki-config.yaml

2. promtail 설치

wget https://raw.githubusercontent.com/grafana/loki/v2.8.0/clients/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml
docker run --name promtail -d -v $(pwd):/mnt/config -v /var/log:/var/log --link loki grafana/promtail:2.8.0 -config.file=/mnt/config/promtail-config.yaml

<현재 실행하는 디렉토리에>

promtail-config.yaml과 loki-config.yaml이 있어야한다.

 

3. 그라파나 데이터 소스 추가

  • datasources -> add new data source

4. URL에 IP:3100하고 Save&Test 진행

추가로 Auth가 있다면 Basic Auth로 설정하면 된다.

 

5. 연결 확인

Explore에서 Loki를 선택 후 원하는 로그 파일을 확인한다.

추가 경로 설정 원할 경우

promtail-config.yaml

server:
  http_listen_port: 9080
  grpc_listen_port: 0

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/log/*log # 로그파일 경로
  - targets: #example
      - localhost
    labels:
      job: WAS-LOG
      __path__: /var/log/was/*log

추가 로그를 설정 후 컨테이너를 재시작해주면 적용된다.

 

공식문서(꼭 확인!)

 

Install Grafana Loki with Docker or Docker Compose | Grafana Loki documentation

Open source Install Grafana Loki with Docker or Docker Compose You can use Grafana Cloud to avoid installing, maintaining, and scaling your own instance of Grafana Loki. Create a free account to get started, which includes free forever access to 10k metric

grafana.com

 

    'Cloud' 카테고리의 다른 글
    • [Cloud] AWS, Azure, GCP에 대한 비교
    • [Cloud] 스케일업(Scale-up)과 스케일 아웃(Scale-out)
    • [Cloud] 오토 스케일링(Auto Scaling)
    큐범
    큐범

    티스토리툴바