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
- Conectează-te la VPS prin SSH:
ssh root@63.250.40.142 - 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 prometheusrespectivsystemctl 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):
- Configurare Namecheap: Adaugă un A Record (Host:
grafana, Value:63.250.40.142). - Editează fișierul
Caddyfilepe VPS:nano /etc/caddy/Caddyfile - Adaugă blocul pentru Grafana (portul implicit este
3000):grafana.bytebook.xyz { reverse_proxy localhost:3000 } - Reîncarcă Caddy:
systemctl reload caddy - 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)
- Intră pe https://grafana.bytebook.xyz.
- Din meniul din stânga, mergi la Connections → Data Sources → Add data source.
- Selectează Prometheus.
- La câmpul Prometheus server URL, introdu:
http://localhost:9090 - 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.
- În Grafana, dă click pe iconița + (sus dreapta) → Import dashboard.
- 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).
- Apasă pe Load.
- La opțiunea Prometheus, selectează Data Source-ul salvat anterior.
- 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)