BYTEBOOK
Bytebook Docs • Prometheus / Grafana / Monitoring
← Înapoi la Bytebook
PATH: DOCS / PROMETHEUS_GRAFANA_GUIDE.HTML _
[00:00:00] DOCS_READY
DEMOS Main Archive JAVA LABS Enterprise PY LABS Neural Assets NODE LABS Async Runtime INFRA Control Center
MONITORING & OBSERVABILITY • PROMETHEUS & GRAFANA

Ghid Monitorizare cu Prometheus și Grafana pe VPS

Acest ghid descrie modul în care verifici, configurezi și utilizezi Prometheus (pentru colectarea metricilor) și Grafana (pentru vizualizare pe dashboard-uri grafice), ambele deja instalate pe VPS-ul 63.250.40.142.

1. Verificarea Serviciilor pe VPS

  1. Conectează-te la VPS prin SSH:
    ssh root@63.250.40.142
  2. Verifică starea serviciilor Prometheus și Grafana:
    systemctl status prometheus
    systemctl status grafana-server

    (Dacă un serviciu nu este activ, pornește-l cu systemctl start prometheus respectiv systemctl start grafana-server).

2. Expunerea Grafana prin Caddy Reverse Proxy

Pentru a accesa interfața grafică Grafana prin HTTPS pe un subdomeniu securizat (grafana.bytebook.xyz):

  1. Configurare Namecheap: Adaugă un A Record (Host: grafana, Value: 63.250.40.142).
  2. Editează fișierul Caddyfile pe VPS:
    nano /etc/caddy/Caddyfile
  3. Adaugă blocul pentru Grafana (portul implicit este 3000):
    grafana.bytebook.xyz {
        reverse_proxy localhost:3000
    }
  4. Reîncarcă Caddy:
    systemctl reload caddy
  5. Accesează în browser: https://grafana.bytebook.xyz
    • User implicit: admin
    • Parolă implicită: admin (Grafana îți va cere schimbarea la prima autentificare).

3. Configurare Prometheus (prometheus.yml)

Prometheus colectează metrici prin "scraping" de la endpoint-uri specificate în fișierul său de configurare.

A. Editează fișierul de configurare

nano /etc/prometheus/prometheus.yml

B. Adaugă sau modifică secțiunea scrape_configs

global:
  scrape_interval: 15s

scrape_configs:
  # Metricile interne ale Prometheus
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  # Metricile de sistem VPS (Node Exporter - dacă este instalat pe portul 9100)
  - job_name: 'vps-node-exporter'
    static_configs:
      - targets: ['localhost:9100']

  # Metricile din aplicația Java Spring Boot (Micrometer Actuator)
  - job_name: 'micro-java'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['localhost:8080']

  # Metricile din aplicația Python FastAPI / Node.js
  - job_name: 'py-demo'
    metrics_path: '/metrics'
    static_configs:
      - targets: ['localhost:8000']

C. Repornește Prometheus

systemctl restart prometheus

4. Conectarea Prometheus la Grafana (Data Source)

  1. Intră pe https://grafana.bytebook.xyz.
  2. Din meniul din stânga, mergi la Connections → Data Sources → Add data source.
  3. Selectează Prometheus.
  4. La câmpul Prometheus server URL, introdu:
    http://localhost:9090
  5. Derulează în jos și apasă Save & test. (Ar trebui să vezi un mesaj verde: "Data source is working").

5. Importarea unui Dashboard Grafic Premade

Nu este nevoie să creezi graficele de la zero. Grafana are mii de dashboard-uri gratuite gata făcute.

  1. În Grafana, dă click pe iconița + (sus dreapta) → Import dashboard.
  2. La câmpul Find and import dashboards via grafana.com, introdu codul: 1860 (Node Exporter Full - cel mai popular dashboard pentru resurse CPU, RAM, Disk, Rețea).
  3. Apasă pe Load.
  4. La opțiunea Prometheus, selectează Data Source-ul salvat anterior.
  5. Apasă Import.

Acum ai un panou de control profesional în timp real cu toate resursele VPS-ului tău!

6. Expunerea Metricilor din Aplicațiile Tale

A. Java Spring Boot

Adaugă în pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

În application.properties:

management.endpoints.web.exposure.include=health,info,prometheus
management.metrics.tags.application=micro-java

B. Python FastAPI

Instalează biblioteca: pip install prometheus-fastapi-instrumentator

În main.py:

from fastapi import FastAPI
from prometheus_fastapi_instrumentator import Instrumentator

app = FastAPI()
Instrumentator().instrument(app).expose(app)