본문 바로가기
모티터링도구

Grafana loki, promtail

by 아이티.파머 2020. 8. 31.
반응형

2020/08/31 - [모티터링도구] - 그라파나 키바나 차이점 (모니터링 서비스)

2020/08/31 - [모티터링도구] - Grafana 설치 pormetheus

2020/08/31 - [모티터링도구] - Grafana loki, promtail

2020/08/31 - [모티터링도구] - exporter 설치 및 Grafana 연동

2020/08/31 - [모티터링도구] - grafana Mysql Datasource 연동

 

 

Grafana loki, promtail

완전한 기능을 갖춘 로깅 스택으로 구성할수 있는 구성요소의 집합

다른 로깅 시스템과 달리 로키는 로그 라벨만 색인화 하고 원래 로그 메세지는 색인화되지 않은 생태로 두는 아이디어를 바탕으로 구축되어 있다.

저장소로 3가지 타입

  • 카산드라
  • S3
  • 로컬 스토리지

Loki는 다음 세가지를 구성요소로 갇는다.

  • Promtail - 클라이언트 에이전트로 서버의 로그를 수집하여 Loki 서버로 푸시
  • loki - 로그 수집 및 처리
  • Grafana - 데시보드

 

https://github.com/grafana/loki/releases/ 참고

loki

로그 수집 및 분석 서버

curl -O -L "https://github.com/grafana/loki/releases/download/v1.5.0/loki-linux-amd64.zip"
# extract the binary
unzip "loki-linux-amd64.zip"
# make sure it is executable
chmod a+x "loki-linux-amd64"

# loki 설정 파일 다운로드 
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml

# loki 실행 명령어
./loki-linux-amd64 -config.file=loki-local-config.yaml

# 접속
http://localhost:3100

서비스 등록

# vi /usr/lib/systemd/system/loki.service
[Unit]
Description=Like Prometheus, but for logs.
Documentation=https://github.com/grafana/loki

[Service]
ExecStart=/opt/loki/loki-linux-amd64 -config.file=/opt/loki/loki-local-config.yaml

[Install]
WantedBy=multi-user.target

시작 / 종료

sudo systemctl daemon-reload
sudo systemctl start loki
sudo systemctl enable loki   # 부팅시 서비스 자동 시작

 

Promtail

클라이언트 에이전트로 데이터를 loki로 보낸다.

 

# promtail 다운로드 
curl -O -L https://github.com/grafana/loki/releases/download/v1.5.0/promtail-linux-amd64.zip
unzip "promtail-linux-amd64.zip"
# promtail 설정파일 다운로드
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/promtail/promtail-local-config.yaml

# 서비스 시작 
./promtail-linux-amd64 -config.file=promtail-local-config.yaml


#[nginx] 로깅 scrap 추가 

vim promtail-local-config.yaml
scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/*log

- job_name: nginx
  entry_parser: raw
  static_configs:
  - targets:
      - localhost
    labels:
      job: nginx
      __path__: /var/log/nginx/*log

서비스 등록

# vi /usr/lib/systemd/system/promtail.service

[Unit]
Description=Promtail
Documentation=https://github.com/grafana/loki

[Service]
ExecStart=/opt/promtail/promtail-linux-amd64 -config.file=/opt/promtail/promtail-local-config.yaml

[Install]
WantedBy=multi-user.target

 

시작 / 종료

sudo systemctl daemon-reload
sudo systemctl start promtail
sudo systemctl enable promtail# 부팅시 서비스 자동 시작

sudo systemctl status promtail
sudo journalctl -u -f promtail

 

기타. Loki, Promtail Docker version

wget https://raw.githubusercontent.com/grafana/loki/v1.6.0/cmd/loki/loki-local-config.yaml -O loki-config.yaml
docker run -v $(pwd):/mnt/config -p 3100:3100 grafana/loki:1.6.0 -config.file=/mnt/config/loki-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/v1.6.0/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml
docker run --name promtail -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Seoul -v $(pwd):/mnt/config -v /var/log:/var/log grafana/promtail:1.6.0 -config.file=/mnt/config/promtail-config.yaml 
  • $(pwd) 는 현재 디렉토리 위치를 말한다.
  • -V 옵션은 볼륨 링크 표시
  • -e TZ=Asia/Seoul 옵션사용하여 시간 맞추기

로키와 프롬테일은 굳이 docker 서비스로 하지 않아도 편리하게 설정 할 수 있다.  

반응형