λͺ©μ°¨
λ‘κ·Έ λͺ¨λν°λ§
νλ‘μ νΈλ₯Ό μ§ννλ©΄μ μ΄κΈ°μλ μ¬λμ μ΄μ©νμ¬ μλ²μ μλ¬ λ‘κ·Έλ₯Ό λ°μμ΅λλ€. κ·Έλ¦¬κ³ μλ¬κ° λ°μνλ©΄ μ¬λμΌλ‘ μ°μ μ΄λ€ μλ¬μΈμ§ νμΈμ ν λ€, ν΄λΉ μλ²μ μ μνμ¬ μμΈ λ‘κ·Έλ₯Ό νμΈνκ³ μλ¬λ₯Ό ν½μ€νλ κ³Όμ μ κ±°μ³€μ΅λλ€. νμ§λ§ μ¬λμΌλ‘ λ‘κ·Έλ₯Ό λ°λ ꡬ쑰λ μλ¬μ λν μΆμ΄λ₯Ό νμΈν μ μμμ΅λλ€. κ·Έλ¦¬κ³ μ€μ λ‘κ·Έλ₯Ό νμΈνκ³ μ΄μ νμμ νμ
νκΈ° μν΄ μλ²μ μ§μ μ μν΄μΌ νμ§λ§ μ΄λ μΈλ°μ΄λ κ·μΉλλ¬Έμ κ·μΉμ΄ μ μ©λμ§ μμ IP λ‘λ μ μμ΄ λΆκ°λ₯νμ΅λλ€. κ·Έλμ μ§μμλ ν΄λΉ μλ²λ‘ λ€μ΄κ° μκ° μμ΄ μΊ νΌμ€λ₯Ό λμ€λ©΄ μλ¬κ° ν°μ§μ§ μκΈ°λ₯Ό κΈ°λν΄μΌ νμ΅λλ€. μ΄μ κ°μ λ¬Έμ μ μ ν΄κ²°νκ³ μ λ‘κ·Έ λͺ¨λν°λ§ νκ²½μ ꡬμΆνμμ΅λλ€.
β’
μ± μλ²λ‘λΆν° μμ λ‘κ·Έλ₯Ό Loki λ‘ μ μ‘ν΄μ€λλ€. μ΄μ λ°λΌ WAS μλ²μμ ꡬλλμ΄ ν΄λΉ μλ²μ λ‘κ·Έλ₯Ό Loki μλ²λ‘ μ μ‘ν μ μμ΅λλ€.
β’
λ‘κ·Έλ₯Ό μ μ₯νκ³ μκ³μ΄ μλ£λ‘ μ§κ³ν΄μ£Όλ μ€ν μμ€ ν΄μ
λλ€. Promtail λ‘λΆν° λ‘κ·Έλ₯Ό λ°κ³ λ°μ΄ν° ννμ λ§κ² μ²λ¦¬ν©λλ€.
μ 체μ μΈ κ΅¬μ‘°λ λ€μκ³Ό κ°μ΅λλ€.
λ¨Όμ μ± μλ²μμ λ‘κ·Έλ₯Ό μμ°νλ©΄ Promtail μμ Loki μλ²λ‘ λ‘κ·Έλ₯Ό μ λ¬ν©λλ€.
Loki μλ²μμλ Promtail λ‘λΆν° λ°μ λ‘κ·Έλ₯Ό μΈλ±μ±νμ¬ μ μ₯ν©λλ€.
μ΄ν Grafana μμ Loki μ μ μ₯λ λ‘κ·Έλ₯Ό μ‘°ννκ³ μκ°νν©λλ€.
μΈνλΌ μ€κ³
μ§λ μν λͺ¨λν°λ§ν λμ κ°μ΄ μΈλ°μ΄λ κ·μΉκ³Ό 리μμ€μ μ νλλ¬Έμ κ°μ₯ ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλ μΈμ€ν΄μ€μ μλ² κ΅¬λμ ꡬμν΄μΌ νμ΅λλ€.
λ κ°μ μΈμ€ν΄μ€λ‘ ꡬμ±νμμ΅λλ€.
Prometheus μμ μ¬μ©νλ 8080 ν¬νΈλ₯Ό Loki λ‘ λκ²¨μ£Όκ³ Prometheus λ κΈ°λ³Έ ν¬νΈμΈ 9090 ν¬νΈλ‘ λ³κ²½νμμ΅λλ€. μ΄μ λ°λΌ Grafana μμ μ¬μ©νλ Datasource URL λ ν¨κ» λ³κ²½ν΄ μ£Όμμ΅λλ€.
Promtail μλ²λ μΈλ°μ΄λλ‘ νμΈν μ λ³΄κ° ν¬κ² μμ΅λλ€. κ·Έλμ κ΅³μ΄ μΈλ°μ΄λ κ·μΉμ΄ μ μ©λ 8080, 8081 ν¬νΈλ‘ μ€νμν¬ νμμμ΄ κΈ°λ³Έ ν¬νΈμΈ 9080 μΌλ‘ μ€νμμΌ μ£Όμμ΅λλ€.
Loki μλ²λ Promtail μλ²λ‘λΆν° λ‘κ·Έλ₯Ό μμ§ν΄μΌν©λλ€. μ΄μ λ°λΌ μΈλ°μ΄λ κ·μΉμ΄ μ μ©λ 8080, 8081 μλ²λ‘ μ€νμμΌμΌνκ³ , κ·Έ μ€ 8080 ν¬νΈλ‘ μ€νμμΌ μ£Όμμ΅λλ€.
Loki μ€μΉ
wget https://github.com/grafana/loki/releases/download/v2.6.1/loki-linux-arm64.zip
unzip loki-linux-arm64.zip
Shell
볡μ¬
2022-10-03 κΈ°μ€Β LTS λ²μ μΈ 2.6.1 λ²μ μ 리λ
μ€ arm64 λ²μ μ λ€μ΄λ°μμ΅λλ€. Prometheus μλ λ€λ₯΄κ² zip νμΌλ‘ λ€μ΄λ°μμ΅λλ€. tar νμΌμ μμ€ μ½λλ§ μμ΄, μ€νμ μν¬ μκ° μμμ΅λλ€.Β unzip μ κΈ°λ³Έ λͺ
λ Ήμ΄κ° μλκΈ°λλ¬Έμ μλ€λ©΄ μμΆ μ ν΄λΉ λͺ
λ Ήμ΄λ₯Ό μ€μΉν΄μΌ ν©λλ€.
wget https://raw.githubusercontent.com/grafana/loki/v2.6.1/cmd/loki/loki-local-config.yaml
Shell
볡μ¬
μμ μ€μΉν νμΌμ μ€ν νμΌμ΄κΈ°λλ¬Έμ, μ€μ νμΌλ λ°λ‘ λ€μ΄λ°μμΌ ν©λλ€. λ€μ΄λ°μ μ€μ νμΌμμλ μ€κ³νλλ‘ 8080 ν¬νΈλ‘ λ°κΎΈκΈ° μν΄ server.http_listen_port λΆλΆμ λ³κ²½νμμ΅λλ€.
Loki μ€ν
sudo nohup ./loki-linux-arm64 -config.file=loki-local-config.yaml &
Shell
볡μ¬
μ¬λ¬ μλ²λ₯Ό λμ°κΈ° μν΄μλ nohup λͺ
λ Ήμ΄λ₯Ό μ΄μ©νμ¬ λ°±κ·ΈλΌμ΄λλ‘ μ€νμν¬ μ μμ΅λλ€.
curl http://localhost:8080/ready λλ μΉ μ κ·ΌμΌλ‘ μ μμ μΌλ‘ μ€νλ κ²μ νμΈν μ μμ΅λλ€.
λ§μ½ failed parsing config: loki-local-config.yaml: yaml: unmarshal errors μλ¬κ° λ°μνλ€λ©΄ μ€μ νμΌμ μλͺ» λ€μ΄λ°μμ λ°μν μλ¬μ
λλ€. ν΄λΉ μλ¬λ λ²μ μ΄ λ€μ΄κ°μΌ ν λΆλΆμ λΈλμΉκ° λ€μ΄κ° μκΈ΄ μλ¬κ³ λ€μ΄λ‘λλ°λ μ€μ νμΌμ μ μ ν λ²μ μΌλ‘ λ°κΎΈμ΄ λ€μ΄λ°μΌλ©΄ ν΄κ²°ν μ μμ΅λλ€.
Promtail μ€μΉ
μ€νλ§μ΄ μ€νλκ³ μλ μ± μλ²λ‘ μ μνμ¬ Promtail μ μ€μΉνμμ΅λλ€.
wget https://github.com/grafana/loki/releases/download/v2.6.1/promtail-linux-arm64.zip
unzip promtail-linux-arm64.zip
wget https://raw.githubusercontent.com/grafana/loki/v2.6.1/clients/cmd/promtail/promtail-local-config.yaml
Shell
볡μ¬
μ€μΉλ Loki μ μ μ¬ν©λλ€. λ§μ°¬κ°μ§λ‘ unzip λͺ
λ Ήμ΄κ° μλ€λ©΄ apt install λ‘ μΆκ°ν΄ μ£Όμ΄μΌ ν©λλ€.
Promtail μ€μ
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://{Loki μλ² IP}:{Loki μλ² ν¬νΈ}/loki/api/v1/push
scrape_configs:
- job_name: was_warn
static_configs:
- targets:
- localhost
labels:
jobs: was_warn_logs
__path__: /home/ubuntu/logs/warn.log
- job_name: was_error
static_configs:
- targets:
- localhost
labels:
jobs: was_error_logs
__path__: /home/ubuntu/logs/error.log
YAML
볡μ¬
β’
clients.url λΆλΆμ loki μ κ΄λ ¨λ μ€μ μΌλ‘ λ³κ²½νμμ΅λλ€. ν΄λΉ url μ promtail μμ λ‘κ·Έλ₯Ό λ³΄λΌ endpoint μ
λλ€.
β’
job μΌλ‘λ warn κ³Ό error λ‘κ·Έ νμΌμ 보λ
λλ€. __path__ λ‘ λ³΄λΌ νμΌμ μ§μ ν μ μμ΅λλ€.
Promtail μ€ν
sudo nohup ./promtail-linux-arm64 --config.file=promtail-local-config.yaml &
Shell
볡μ¬
λ§μ°¬κ°μ§λ‘ λ°±κ·ΈλΌμ΄λ μ€ννλ €λ©΄ λ€μκ³Ό κ°μ΄ nohup λͺ
λ Ήμ΄λ₯Ό μ¬μ©ν©λλ€.
Datasource μΆκ°
λͺ¨λν°λ§ μλ²λ‘ λ€μ μ μ ν Grafana νμ΄μ§λ‘ μ μνμ¬ Loki μ Datasource λ₯Ό μΆκ°νκ² μ΅λλ€. μΌμͺ½ μ΅μ
μΉΈμμ ν±λλ°ν΄ λͺ¨μ μ€μ μμ datasource λ₯Ό μΆκ°ν μ μμ΅λλ€. Logging & document databases μΉΈμμ Loki λ₯Ό μ°Ύμ μ μμ΅λλ€.
Prometheus λ₯Ό μΆκ°ν λμ κ°μ΄ URL μ Loki κ° μ€νλκ³ μλ port μ URL μ μ
λ ₯ ν save & test λ²νΌμΌλ‘ μΆκ°ν©λλ€.
μ΄μ μλ‘μ΄ ν¨λλ‘ λ‘κ·Έ μ 보λ₯Ό νμΈνκ² μ΅λλ€. dashboards - new dashboard - add a panel λ‘ μ»€μ€ν
μκ°νκ° κ°λ₯ν©λλ€.
Labels λ‘ μΈλ±μ±μ΄ κ°λ₯ν©λλ€. μ΄ν run queries λ₯Ό μ€ννλ©΄ λ‘κ·Έ μ 보λ₯Ό λ€κ³ μ¬ μ μκ³ , μ°μΈ‘μ visualization μμ λ€μν μκ°ν μ°¨νΈλ₯Ό μ νν μλ μμ΅λλ€.