BYTEBOOK
Bytebook Docs • Grafana Loki / Promtail / Logs
← Înapoi la Bytebook
PATH: DOCS / LOKI_PROMTAIL_GUIDE.HTML _
[00:00:00] DOCS_READY
DEMOS Main Archive JAVA LABS Enterprise PY LABS Neural Assets NODE LABS Async Runtime INFRA Control Center
LOG MANAGEMENT & OBSERVABILITY • LOKI & PROMTAIL

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

  1. Conectează-te la VPS prin SSH:
    ssh root@63.250.40.142
  2. Verifică dacă serviciile Loki și Promtail sunt instalate și active:
    systemctl status loki
    systemctl status promtail
  3. 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

  1. Deschide browserul și accesează: https://grafana.bytebook.xyz
  2. Din Meniul din Stânga → Connections → Data Sources → Add data source.
  3. Caută și selectează Loki.
  4. La câmpul HTTP URL, introdu:
    http://localhost:3100
  5. 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.

Vezi toate logurile colectate de la Caddy:
{job="caddy"}
Căutare după un cuvânt cheie (ex: error) în logurile de sistem:
{job="varlogs"} |= "error"
Filtrare erori din aplicația Java Spring Boot:
{job="apps"} |= "ERROR"
Căutare doar prin erorile de autentificare / SSH:
{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:

  1. Instalează plugin-ul Loki Docker pe VPS:
    docker plugin install grafana/loki-docker-driver:latest --grant-all-permissions
  2. Configurează /etc/docker/daemon.json:
    {
      "log-driver": "loki",
      "log-opts": {
        "loki-url": "http://localhost:3100/loki/api/v1/push",
        "loki-batch-size": "400"
      }
    }
  3. Repornește Docker:
    systemctl restart docker