Sistemul de monitorizare Prometheus ⋆ ALexHost SRL

Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills
10.12.2024

Sistemul de monitorizare Prometheus

Pe măsură ce sistemele și aplicațiile cresc în complexitate, monitorizarea devine esențială pentru asigurarea performanței, fiabilității și scalabilității optime. Prometheus, un set de instrumente open-source de monitorizare și alertă, a devenit una dintre cele mai populare soluții pentru gestionarea și vizualizarea metricilor din diverse sisteme. Dezvoltat inițial de SoundCloud, Prometheus este acum un proiect al Cloud Native Computing Foundation (CNCF) și este adoptat pe scară largă în toate industriile.

În acest articol, vom explora principalele caracteristici ale Prometheus, modul în care funcționează și pașii necesari pentru a-l configura în vederea monitorizării infrastructurii și aplicațiilor dumneavoastră.

Ce este Prometheus?

Prometheus este un sistem puternic de monitorizare conceput pentru a colecta, stoca și interoga date din serii temporale, care sunt măsurători sau evenimente urmărite în timp. Datele colectate de Prometheus pot fi vizualizate, analizate și utilizate pentru a declanșa alerte, ajutând echipele să rămână la curent cu sănătatea și performanța infrastructurii lor.

Prometheus este cunoscut pentru câteva caracteristici cheie:

  • Model de date în serii cronologice: Prometheus stochează datele ca serii temporale, ceea ce înseamnă că metricile sunt înregistrate pe intervale de timp.
  • Monitorizare bazată pe tragere: În loc ca sistemele monitorizate să împingă metrici către server, Prometheus utilizează un model bazat pe extragere pentru a extrage metrici de la punctele finale.
  • Limbaj puternic de interogare (PromQL): Prometheus oferă un limbaj de interogare puternic, PromQL, care permite utilizatorilor să filtreze și să agregheze metrici în timp real.
  • Alertă: Prometheus se integrează cu Alertmanager pentru a defini reguli și a trimite notificări atunci când sunt îndeplinite anumite condiții.
  • Descoperirea serviciilor: Prometheus poate descoperi și colecta automat metrici din medii care se schimbă dinamic, cum ar fi Kubernetes.

Cum funcționează Prometheus

Prometheus urmează o arhitectură simplă, dar robustă, concepută pentru monitorizarea datelor în serii de timp. Iată cum funcționează:

  1. Colectarea metricilor (Scraping): Prometheus extrage periodic metrici din punctele finale HTTP (denumite exportatori) expuse de aplicații sau sisteme.
  2. Stocarea datelor în serii cronologice: Odată colectate, Prometheus stochează metricile într-o bază de date cu serii temporale, în care fiecare punct de date este asociat cu un timestamp și un set de etichete.
  3. Interogare cu PromQL: Utilizatorii pot interoga parametrii stocați utilizând limbajul de interogare al Prometheus, PromQL, pentru a genera grafice, tablouri de bord sau alerte.
  4. Alertă: Pe baza unor condiții predefinite, Prometheus poate declanșa alerte utilizând Alertmanager, care poate trimite notificări prin e-mail, Slack, PagerDuty sau alte servicii.

Prometheus suportă un model bazat pe extragere, prin care colectează periodic metrici de la puncte finale care expun metrici într-un format pe care Prometheus îl poate înțelege. Acest lucru îl face ideal pentru monitorizarea sistemelor distribuite și a microserviciilor în care scalarea și mediile dinamice sunt frecvente.

Componente Prometheus

Prometheus este alcătuit din mai multe componente de bază, fiecare având un scop diferit:

  1. Server Prometheus: Componenta centrală responsabilă cu colectarea, stocarea și interogarea metricilor. Acesta scrutează punctele finale țintă și stochează metricile într-o bază de date cu serii cronologice.
  2. Exportatori: Acestea sunt aplicații sau servicii care expun metrici într-un format compatibil cu Prometheus. Exportatorii comuni includ:
    • Node Exporter: colectează metrici la nivel de hardware și OS.
    • Blackbox Exporter: Pentru sondarea punctelor finale prin HTTP, DNS, TCP etc.
    • Exportatori specifici aplicațiilor: Multe baze de date (cum ar fi PostgreSQL, MySQL) și servicii au propriile lor exportatori.
  3. Alertmanager: Prometheus utilizează Alertmanager pentru a gestiona alertele. Acesta poate direcționa alertele către diferiți destinatari, cum ar fi Slack, e-mail sau SMS, și poate gestiona reguli de silențiere și inhibare.
  4. PromQL (Prometheus Query Language): Un limbaj de interogare puternic utilizat pentru a prelua și manipula date din seriile de timp.
  5. Pushgateway: O componentă utilizată pentru lucrări efemere sau de scurtă durată care nu pot expune metrici prin intermediul unui scrape direct (de exemplu, lucrări pe loturi). Pushgateway permite acestor activități să își transmită metricile către Prometheus.
  6. Grafana: Deși nu face parte din Prometheus în sine, Grafana este un instrument open-source popular utilizat pentru vizualizarea datelor Prometheus și crearea de tablouri de bord interactive.

Configurarea pas cu pas a Prometheus

Iată cum puteți configura Prometheus pe un server Linux și începe să monitorizați metricile sistemului:

Pasul 1: Instalarea Prometheus
  1. Descărcați Prometheus: Vizitați pagina de descărcări Prometheus pentru a obține cea mai recentă versiune a Prometheus.Executați următoarele comenzi pentru a descărca și extrage Prometheus:
    wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz tar -xvf prometheus-2.32.1.linux-amd64.tar.gz cd prometheus-2.32.1.linux-amd64
  2. Porniți Prometheus: Rulați următoarea comandă pentru a porni Prometheus:
    ./prometheus –config.file=prometheus.yml

    În mod implicit, Prometheus rulează pe portul 9090 și puteți accesa interfața sa web navigând la http://localhost:9090 în browser.

Pasul 2: Configurați Prometheus

Configurarea principală pentru Prometheus se face prin intermediul fișierului prometheus.yml. Acest fișier îi spune lui Prometheus care sunt țintele (exportatorii) pe care trebuie să le cerceteze și cât de des.

Iată o configurație prometheus.yml de bază:

global: scrape_interval: 15s # Cât de des să se facă scrapul metricilor scrape_configs: – job_name: “prometheus” static_configs: – targets: [“localhost:9090”]] # Scraping Prometheus în sine

Puteți adăuga mai multe ținte sau exportatori după cum este necesar, iar Prometheus va începe automat să le racleze.

Pasul 3: Instalarea exportatorului Node (pentru metrici de sistem)

Pentru a monitoriza metrici de sistem, cum ar fi CPU, memorie, disc și utilizarea rețelei, puteți instala Node Exporter.

  1. Descărcați Node Exporter:
    wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz cd node_exporter-1.3.1.linux-amd64
  2. Start Node Exporter: Executați următoarea comandă pentru a porni Node Exporter:
    ./node_exporter

    În mod implicit, Node Exporter rulează pe portul 9100 și expune metrici precum utilizarea CPU, statistici de memorie, I/O pe disc și metrici de rețea.

  3. Configurați Prometheus pentru Scrape Node Exporter: Adăugați următorul job la fișierul de configurare prometheus.yml:
    scrape_configs: – job_name: “node_exporter” static_configs: – obiective: [‘localhost:9100’]
  4. Reporniți Prometheus: După efectuarea modificărilor în fișierul de configurare, reporniți Prometheus pentru a începe colectarea metricilor de la Node Exporter.
Pasul 4: Vizualizarea metricilor cu Grafana

Pentru a vizualiza metricile Prometheus, Grafana este un instrument excelent. Acesta se integrează perfect cu Prometheus și vă permite să creați tablouri de bord interactive.

  1. Instalați Grafana: Pe Linux, puteți instala Grafana urmând instrucțiunile de pe site-ul Grafana.
  2. Configurați Prometheus ca sursă de date: După instalarea Grafana:
    • Conectați-vă la Grafana (http://localhost:3000).
    • Mergeți la Configuration > Data Sources și adăugați Prometheus ca sursă de date (http://localhost:9090).
  3. Creați tablouri de bord: Acum puteți să vă creați propriile tablouri de bord personalizate sau să importați tablouri de bord pre-construite din piața Grafana pentru a vizualiza metrici precum utilizarea CPU, utilizarea memoriei, performanța discului și multe altele.
Pasul 5: Configurați alerte

Prometheus vă permite să configurați alerte bazate pe condiții specifice, cum ar fi utilizarea ridicată a CPU, spațiu redus pe disc sau eșecuri ale aplicațiilor.

  1. Definiți regulile de alertă: Alertele sunt definite într-un fișier rules.yml separat. Iată un exemplu de regulă de alertă care se declanșează atunci când utilizarea CPU este mai mare de 80%:
    groups: – name: example_alerts rules: – alert: HighCPUUsage expr: 100 – (avg by(instance) (rate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100) > 80 for: 5m labels: severity: warning annotations: summary: “High CPU usage detected on {{ $labels.instance }}” description: “Utilizarea CPU este mai mare de 80% pentru mai mult de 5 minute”
  2. Configurați Alertmanager: Instalați și configurați Alertmanager pentru a trimite notificări prin e-mail, Slack sau alte canale atunci când este declanșată o alertă.

Cazuri de utilizare pentru Prometheus

Prometheus este utilizat într-o gamă largă de scenarii pentru a monitoriza diverse tipuri de sisteme, inclusiv:

  1. Monitorizarea infrastructurii: Colectați metrici de la servere, baze de date și dispozitive de rețea pentru a vă asigura că infrastructura dvs. funcționează fără probleme.
  2. Monitorizarea aplicațiilor: Urmăriți parametrii de performanță, cum ar fi latența, rata cererilor, ratele de eroare și consumul de resurse pentru aplicații, în special în arhitecturile microservicii.
  3. Monitorizarea Kubernetes: Prometheus se integrează nativ cu Kubernetes și poate descoperi și prelua automat metrici de la poduri și servicii într-un cluster Kubernetes.
  4. Metrici personalizate: Prometheus vă permite să vă instrumentați propriile aplicații pentru a expune metrici personalizate, oferind o perspectivă profundă asupra comportamentelor specifice aplicației.

Concluzii

Prometheus este o soluție de monitorizare puternică și flexibilă care permite colectarea, interogarea și alertarea în timp real pe baza datelor seriilor de timp. Indiferent dacă monitorizați metrici la nivel de sistem sau performanța aplicațiilor într-o arhitectură de microservicii, Prometheus este un instrument valoros pentru a asigura sănătatea și stabilitatea infrastructurii dvs.

Urmând pașii descriși în acest articol, puteți începe să utilizați Prometheus, să colectați metrici de la sistemele dvs. și să vizualizați aceste metrici utilizând Grafana. În timp, Prometheus vă poate ajuta să obțineți informații despre tendințele de performanță, să detectați anomaliile și să răspundeți rapid la incidente, îmbunătățind atât durata de funcționare a sistemului, cât și fiabilitatea acestuia.

Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills