Ghid Colectare și Analiză Loguri cu Grafana Loki și Promtail pe VPS
Acest ghid descrie modul în care configurezi Grafana Loki (stocare și indexare loguri) și Promtail (agent de colectare) pe VPS-ul 63.250.40.142, conectându-le la interfața grafana.bytebook.xyz.
# Cum Funcționează Stiva de Loguri?
• Promtail: Agent ușor care rulează în fundal pe VPS, citește fișierele de log (/var/log/*, Docker logs, loguri aplicații) și le trimite către Loki.
• Loki: Înregistrează și indexează doar etichetele (labels) logurilor (nu întreg conținutul text), fiind extrem de eficient în consumul de resurse.
• Grafana: Interfața grafică unde poți explora, filtra și căuta în timp real prin toate logurile folosind limbajul LogQL.
1. Verificarea / Instalarea Grafana Loki și Promtail pe VPS
- Conectează-te la VPS prin SSH:
ssh root@63.250.40.142 - Verifică dacă serviciile Loki și Promtail sunt instalate și active:
systemctl status loki systemctl status promtail - Dacă nu sunt instalate, le poți descărca rapid folosind binarele oficiale:
wget https://github.com/grafana/loki/releases/download/v2.9.2/loki-linux-amd64.zip wget https://github.com/grafana/loki/releases/download/v2.9.2/promtail-linux-amd64.zip unzip loki-linux-amd64.zip unzip promtail-linux-amd64.zip mv loki-linux-amd64 /usr/local/bin/loki mv promtail-linux-amd64 /usr/local/bin/promtail
2. Configurare Loki (/etc/loki/loki-local-config.yaml)
Creează sau editează fișierul de configurare pentru Loki (portul implicit este 3100):
A. Deschide fișierul
mkdir -p /etc/loki
nano /etc/loki/loki-local-config.yaml
B. Adaugă următoarea configurație de bază
auth_enabled: false
server:
http_listen_port: 3100
common:
path_prefix: /tmp/loki
storage:
filesystem:
chunks_directory: /tmp/loki/chunks
rules_directory: /tmp/loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-05-15
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
ruler:
alertmanager_url: http://localhost:9093
3. Configurare Promtail (/etc/promtail/promtail-local-config.yaml)
Promtail va urmări fișierele de log de pe VPS și le va trimite către Loki (http://localhost:3100/loki/api/v1/push).
A. Deschide fișierul de configurare Promtail
mkdir -p /etc/promtail
nano /etc/promtail/promtail-local-config.yaml
B. Configurație recomandată pentru loguri
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
# 1. Logurile de sistem (syslog, auth.log)
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*.log
# 2. Logurile Serverului Caddy Reverse Proxy
- job_name: caddy
static_configs:
- targets:
- localhost
labels:
job: caddy
__path__: /var/log/caddy/*.log
# 3. Logurile Aplicațiilor Tale (Java / Python / Node.js)
- job_name: my-apps
static_configs:
- targets:
- localhost
labels:
job: apps
__path__: /root/projects/*/*.log
4. Adăugarea Loki ca Sursă de Date în Grafana
- Deschide browserul și accesează: https://grafana.bytebook.xyz
- Din Meniul din Stânga → Connections → Data Sources → Add data source.
- Caută și selectează Loki.
- La câmpul HTTP URL, introdu:
http://localhost:3100 - Derulează în jos și apasă pe Save & test. (Trebuie să apară mesajul verde: "Data source connected and labels found.").
5. Căutare și Analiză Loguri în Grafana (Explore & LogQL)
Accesează din meniul Grafana opțiunea Explore și selectează sursa de date Loki.
{job="caddy"}
{job="varlogs"} |= "error"
{job="apps"} |= "ERROR"
{job="varlogs"} |= "Failed password"
6. Colectarea Logurilor din Containere Docker (Opțional)
Dacă rulezi aplicații în Docker, poți folosi driverul oficial Loki pentru Docker:
- Instalează plugin-ul Loki Docker pe VPS:
docker plugin install grafana/loki-docker-driver:latest --grant-all-permissions - Configurează
/etc/docker/daemon.json:{ "log-driver": "loki", "log-opts": { "loki-url": "http://localhost:3100/loki/api/v1/push", "loki-batch-size": "400" } } - Repornește Docker:
systemctl restart docker