๐ชท Grafana Loki
Grafana Labs
์๋ ๊ทธ๋ผํ๋ ์ธ์๋ Loki ๋ผ๋ ๋ก๊ทธ ์ง๊ณ ์์คํ
์ด ์กด์ฌํฉ๋๋ค. Loki๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ธํ๋ผ์ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๊ณ ์ฟผ๋ฆฌํ ์ ์๋๋ก ์ค๊ณ๋ ๋ก๊ทธ ์ง๊ณ ์์คํ
์
๋๋ค.
๐ 1. Loki ์ค์ ํ๊ธฐ
๋จผ์ , Grafana Loki๋ฅผ ๋ชจ๋ํฐ๋ง ์๋ฒ
์ ์ค์นํ๊ณ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. Loki๋ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ค์ด๊ณ ์ ์ฅํ๋ ์ค์ ์ง์ค์ ์๋น์ค ์ญํ ์ ํฉ๋๋ค.
Loki๋ฅผ ํตํด ๋ฐ์ ๋ก๊ทธ๋ฅผ S3์ ๊ฐ์ ์ ์ฅ์์ ์ ์ฅํ ์ ์์ผ๋ ์ฐ์ ์ ๋ก์ปฌ์ ์ ์ฅํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋ ๋ช ๋ น์ด๋ฅผ ํตํด loki ์ค์ ์ ํ์ํ ํ์ผ์ ๋จผ์ ๋ฐ์์ค๋๋ค.
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml
๊ทธ๋ฆฌ๊ณ Loki๋ฅผ ์ปจํ ์ด๋๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์๋์ฒ๋ผ docker-compose.yml ํ์ผ์ ์์ฑํด์ค๋๋ค.์ ๋ ํ์ฌ ๋ชจ๋ํฐ๋ง๊ณผ ๊ด๋ จ๋ ๋คํธ์ํฌ(grafana_promnet)๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๊ธฐ ์ํด ์๋์ฒ๋ผ ์์ฑํด์คฌ์ต๋๋ค.
version: '3'
services:
loki:
image: grafana/loki:latest
container_name: loki
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
volumes:
- ./loki-local-config.yaml:/etc/loki/local-config.yaml
networks:
- grafana_promnet
restart: always
networks:
grafana_promnet:
external: true
์ดํ docker-compose up -d ๋ช ๋ น์ด๋ฅผ ํตํด loki๋ฅผ ์คํ ์์ผ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ํฐ๋ง์๋ฒIP:3100 ์ผ๋ก ์ ๊ทผํฉ๋๋ค.(์๋ฒ ์ธ๋ฐ์ด๋๊ท์น ์ด์ด์ฃผ์ ์ผํฉ๋๋ค.)
๐ 2. ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ Promtail ์ค์น ๋ฐ ๊ตฌ์ฑ
Promtail์ ๋ก๊ทธ ํ์ผ์ ์ฝ๊ณ Loki๋ก ์ ์กํ๋ ์์ด์ ํธ
์
๋๋ค. Spring Boot ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋๋ ์๋ฒ
์ Promtail์ ์ค์นํด์ผ ํฉ๋๋ค.
promtail-config.yml
Promtail ์ค์ ํ์ผ์ ๋จผ์ ์์ฑํด์ค๋๋ค.
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://๋ชจ๋ํฐ๋ง์๋ฒIP:3100/loki/api/v1/push #๋ชจ๋ํฐ๋ง ์๋ฒ IP ๋ฃ์ด์ฃผ์
์ผํฉ๋๋ค.
scrape_configs:
- job_name: local_logs
static_configs:
- targets:
- localhost # ๋ก๊ทธ๋ฅผ ์์งํ ๊ณณ
labels:
job: varlogs
__path__: /mnt/logs/*.log
๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์์น์ protail๋ฅผ ๋์ปค๋ฅผ ์ฌ์ฉํด ์ค์นํด์ฃผ๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์์ ์ฃผ์ํ ๊ฒ์ ๋์ปค๋ฅผ ์ฌ์ฉํด promtail์ ๋์ฐ๊ธฐ ๋๋ฌธ์ ๋ก์ปฌ์ ์์ฑ๋๋ ๋ก๊ทธ์ ์ฐ๊ฒฐํด์ค์ผ ํ๋ค๋๊ฒ์ ๋๋ค.
version: '3'
services:
promtail:
image: grafana/promtail:latest
volumes:
- /home/ubuntu/blitz/logs:/mnt/logs #/home/ubuntu/blitz/logs๋ฅผ ๋ก๊ทธ ์์น๋ก ๋ณ๊ฒฝ
- ./promtail-config.yml:/etc/promtail/config.yml
command: -config.file=/etc/promtail/config.yml
๊ทธ๋ฆฌ๊ณ docker-compose up -d
๋ช
๋ น์ด๋ฅผ ํตํด promtail์ ์คํ์์ผ์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ทธ๋ผํ๋๋ก ๋์์ ๋์๋ณด๋๋ฅผ ์ฐ๊ฒฐํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋์๋ณด๋์ Import๋ฅผ ํด๋ฆญ
์ฌ์ฉํ ๊ณต์ ๋์๋ณด๋ ์ ์ ๊ทผํด Dashboard ID๋ฅผ ๋ณต์ฌํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ Loki Data sources๋ฅผ ์์ฑํด์ฃผ๋ฉด ๋ฉ๋๋ค.
URL์ http://localhost:3100 ๋๋ ์ ์ฒ๋ผ Loki์ Grafana์ ๋์ปค ๋คํธ์ํฌ๊ฐ ๊ฐ๋ค๋ฉด
http://loki:3100
์ ์
๋ ฅํด์ฃผ์๊ณ ๋งจ ์๋ Save & test๋ฅผ ๋๋ฌ์ฃผ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋์์ ์์ฑํด์ค Loki๋ฅผ ์ ํํ Import๋ฅผ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์์ ์ฒ๋ผ ๋ก๊ทธ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋ ๊ฒ์ ํ์ธ ํ์ค ์ ์์ต๋๋ค.
'BE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์บ์๋ฅผ ํตํ ์ฑ๋ฅ๊ฐ์ - ์ด๋ก ํธ (0) | 2023.12.26 |
---|---|
N+1๋ฌธ์ ์ ์ธ๋ฑ์ค๋ฅผ ํตํ ์กฐํ ์ฑ๋ฅ ๊ฐ์ (0) | 2023.12.12 |
ํ๋ก๋ฉํ ์ฐ์ค & ๊ทธ๋ผํ๋ (0) | 2023.11.29 |
Spring Boot Actuator & micrometer (0) | 2023.11.22 |
SSL/TLS & Nginx Certbot ์ ์ฉ (0) | 2023.09.25 |