프로젝트를 진행하면서 어플리케이션, 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