YJWANG

[Grafana-loki] Grafana-loki로 Logging system 구축하기 본문

60.Cloud

[Grafana-loki] Grafana-loki로 Logging system 구축하기

왕영주 2021. 5. 25. 17:47

EFK보다 구축도 편하고 가벼워서 Grafana-loki를 사용해보고자 했습니다.

 

우선 Openstack / Legacy / kubernetes 환경 모든 부분에서 prometheus 로 metric을 체크 가능하기 때문에 때문에 동일한 Grafana 내에서 Logging까지 관리하고자 Grafana-loki 수요가 괜찮을 듯합니다.

 

Architecture


promtail client가 log를 수집해서 loki에 전달하는 단순한 구조로 이해하고 넘어가시면 됩니다.


log는 지정할 수 있으며 syslog , journal , filesystem에 있는 다른 log 파일 , docker log 등 지정하기에 따라 수집할 수 있습니다.

 

Configuration


https://grafana.com/docs/loki/latest/installation/helm/

Helm Chart를 이용하면 쉽게 구축할 수 있으므로 promtail config file sample만 기록하겠습니다.

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://10.99.99.10:32642/loki/api/v1/push

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

- job_name: syslog
  syslog:
    listen_address: 0.0.0.0:1514
    idle_timeout: 60s
    label_structured_data: yes
    labels:
      job: "syslog"
  relabel_configs:
    - source_labels: ['__syslog_message_hostname']
      target_label: 'master01'

- job_name: journal
  journal:
    json: false
    max_age: 12h
    path: /var/log/journal
    labels:
      job: systemd-journal
  relabel_configs:
    - source_labels: ['__journal__systemd_unit']
      target_label: 'unit'

 

이후 Docker container를 실행합니다.

 docker run --name promtail -d -v $(pwd):/mnt/config -v /var/log:/var/log -v /run/log/journal/:/run/log/journal/ -v /etc/machine-id:/etc/machine-id -v /var/log/journal/:/var/log/journal/ grafana/promtail:2.2.1 -config.file=/mnt/config/promtail-config.yaml

 

Grafana에 들어가서 Explore > Loki > {job="varlogs"} query를 이용해서 확인해보시기 바랍니다.

반응형