System monitorowania Prometheus ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
10.12.2024

System monitorowania Prometheus

Wraz ze wzrostem złożoności systemów i aplikacji, monitorowanie staje się niezbędne do zapewnienia optymalnej wydajności, niezawodności i skalowalności. Prometheus, zestaw narzędzi open-source do monitorowania i ostrzegania, stał się jednym z najpopularniejszych rozwiązań do zarządzania i wizualizacji metryk z różnych systemów. Pierwotnie opracowany przez SoundCloud, Prometheus jest obecnie projektem Cloud Native Computing Foundation (CNCF) i jest szeroko stosowany w różnych branżach.

W tym artykule zbadamy kluczowe cechy Prometheus, sposób jego działania oraz kroki wymagane do skonfigurowania go do monitorowania infrastruktury i aplikacji.

Czym jest Prometheus?

Prometheus to potężny system monitorowania przeznaczony do gromadzenia, przechowywania i przeszukiwania danych szeregów czasowych, które są pomiarami lub zdarzeniami śledzonymi w czasie. Dane zebrane przez Prometheus mogą być wizualizowane, analizowane i wykorzystywane do wyzwalania alertów, pomagając zespołom być na bieżąco z kondycją i wydajnością infrastruktury.

Prometheus jest znany z kilku kluczowych funkcji:

  • Model danych szeregów czasowych: Prometheus przechowuje dane jako szereg czasowy, co oznacza, że metryki są rejestrowane w odstępach czasu.
  • Pull-Based Monitoring: Zamiast monitorowanych systemów przesyłających metryki do serwera, Prometheus wykorzystuje model pull-based do pobierania metryk z punktów końcowych.
  • Potężny język zapytań (PromQL): Prometheus zapewnia potężny język zapytań PromQL, który pozwala użytkownikom filtrować i agregować metryki w czasie rzeczywistym.
  • Alertowanie: Prometheus integruje się z Alertmanager w celu definiowania reguł i wysyłania powiadomień po spełnieniu określonych warunków.
  • Wykrywanie usług: Prometheus może automatycznie wykrywać i pobierać metryki z dynamicznie zmieniających się środowisk, takich jak Kubernetes.

Jak działa Prometheus

Prometheus ma prostą, ale solidną architekturę zaprojektowaną do monitorowania danych szeregów czasowych. Oto jak to działa:

  1. Zbieranie metryk (Scraping): Prometheus okresowo pobiera metryki z punktów końcowych HTTP (zwanych eksporterami) udostępnianych przez aplikacje lub systemy.
  2. Przechowywanie danych szeregów czasowych: Po zebraniu, Prometheus przechowuje metryki w bazie danych szeregów czasowych, gdzie każdy punkt danych jest powiązany ze znacznikiem czasu i zestawem etykiet.
  3. Zapytania za pomocą PromQL: Użytkownicy mogą wysyłać zapytania do przechowywanych metryk za pomocą języka zapytań Prometheus, PromQL, w celu generowania wykresów, pulpitów nawigacyjnych lub alertów.
  4. Alerty: W oparciu o predefiniowane warunki, Prometheus może wyzwalać alerty za pomocą Alertmanager, który może wysyłać powiadomienia za pośrednictwem poczty elektronicznej, Slack, PagerDuty lub innych usług.

Prometheus obsługuje model pull-based, w którym okresowo pobiera metryki z punktów końcowych, które udostępniają metryki w formacie zrozumiałym dla Prometheus. Dzięki temu idealnie nadaje się do monitorowania systemów rozproszonych i mikrousług, w których skalowanie i dynamiczne środowiska są powszechne.

Komponenty Prometheus

Prometheus składa się z kilku podstawowych komponentów, z których każdy służy innemu celowi:

  1. Prometheus Server: Centralny komponent odpowiedzialny za zbieranie, przechowywanie i odpytywanie metryk. Zeskrobuje docelowe punkty końcowe i przechowuje metryki w bazie danych szeregów czasowych.
  2. Eksporterzy: Są to aplikacje lub usługi, które udostępniają metryki w formacie zgodnym z Prometheus. Typowe eksportery obejmują:
    • Node Exporter: Zbiera metryki sprzętowe i na poziomie systemu operacyjnego.
    • Blackbox Exporter: Do sondowania punktów końcowych przez HTTP, DNS, TCP itp.
    • Eksportery specyficzne dla aplikacji: Wiele baz danych (takich jak PostgreSQL, MySQL) i usług ma własne eksportery.
  3. Alertmanager: Prometheus wykorzystuje Alertmanager do obsługi alertów. Może on kierować alerty do różnych odbiorców, takich jak Slack, e-mail lub SMS, a także zarządzać regułami wyciszania i blokowania.
  4. PromQL (Prometheus Query Language): Potężny język zapytań używany do pobierania i manipulowania danymi szeregów czasowych.
  5. Pushgateway: Komponent używany do efemerycznych lub krótkotrwałych zadań, które nie mogą ujawniać metryk poprzez bezpośrednie skrobanie (np. zadania wsadowe). Pushgateway umożliwia tym zadaniom przesyłanie metryk do Prometheus.
  6. Grafana: Grafana, choć nie jest częścią Prometheus, jest popularnym narzędziem open-source służącym do wizualizacji danych Prometheus i tworzenia interaktywnych pulpitów nawigacyjnych.

Konfiguracja Prometheus krok po kroku

Oto jak skonfigurować Prometheus na serwerze Linux i rozpocząć monitorowanie metryk systemowych:

Krok 1: Zainstaluj Prometheus
  1. Pobierz Prometheus: Odwiedź stronę pobierania Prometheus, aby pobrać najnowszą wersję Prometheus. Uruchom następujące polecenia, aby pobrać i rozpakować 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. Uruchom Prometheus: Uruchom następujące polecenie, aby uruchomić Prometheus:
    ./prometheus –config.file=prometheus.yml

    Domyślnie Prometheus działa na porcie 9090, a dostęp do jego interfejsu internetowego można uzyskać, przechodząc do http://localhost:9090 w przeglądarce.

Krok 2: Konfiguracja programu Prometheus

Główna konfiguracja Prometheusa odbywa się za pośrednictwem pliku prometheus.yml. Plik ten informuje Prometheusa, które cele (eksportery) mają być skrobane i jak często.

Oto podstawowa konfiguracja prometheus.yml:

global: scrape_interval: 15s # How often to scrape metrics scrape_configs: – job_name: “prometheus” static_configs: – targets: [“localhost:9090”] # Skrobanie samego Prometheusa

W razie potrzeby można dodać więcej celów lub eksporterów, a Prometheus automatycznie rozpocznie ich skrobanie.

Krok 3: Instalacja eksportera węzłów (dla metryk systemowych)

Aby monitorować metryki systemowe, takie jak użycie procesora, pamięci, dysku i sieci, można zainstalować Node Exporter.

  1. Pobierz 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. Uruchomienie Node Exporter: Uruchom następujące polecenie, aby uruchomić Node Exporter:
    ./node_exporter

    Domyślnie Node Exporter działa na porcie 9100 i udostępnia metryki, takie jak użycie procesora, statystyki pamięci, wejścia/wyjścia dysku i metryki sieciowe.

  3. Konfiguracja Prometheus do skrobania Node Exporter: Dodaj następujące zadanie do pliku konfiguracyjnego prometheus.yml:
    scrape_configs: – job_name: ‘node_exporter’ static_configs: – targets: [‘localhost:9100’]
  4. Uruchom ponownie program Prometheus: Po wprowadzeniu zmian w pliku konfiguracyjnym uruchom ponownie Prometheus, aby rozpocząć skrobanie metryk z Node Exporter.
Krok 4: Wizualizacja metryk za pomocą Grafana

Grafana jest doskonałym narzędziem do wizualizacji metryk Prometheus. Płynnie integruje się z Prometheus i umożliwia tworzenie interaktywnych pulpitów nawigacyjnych.

  1. Zainstaluj Grafana: W systemie Linux można zainstalować Grafana, postępując zgodnie z instrukcjami na stronie internetowej Grafana.
  2. Skonfiguruj Prometheus jako źródło danych: Po zainstalowaniu Grafana:
    • Zaloguj się do Grafany (http://localhost:3000).
    • Przejdź do Configuration > Data Sources i dodaj Prometheus jako źródło danych (http://localhost:9090).
  3. Tworzenie pulpitów nawigacyjnych: Teraz możesz tworzyć własne niestandardowe pulpity nawigacyjne lub importować gotowe pulpity nawigacyjne z Grafana Marketplace, aby wizualizować metryki, takie jak użycie procesora, wykorzystanie pamięci, wydajność dysku i inne.
Krok 5: Konfigurowanie alertów

Prometheus umożliwia konfigurowanie alertów w oparciu o określone warunki, takie jak wysokie użycie procesora, mało miejsca na dysku lub awarie aplikacji.

  1. Definiowanie reguł alertów: Alerty są definiowane w oddzielnym pliku rules.yml. Oto przykładowa reguła alertu, która uruchamia się, gdy użycie procesora jest wyższe niż 80%:
    groups: – name: example_alerts rules: – alert: HighCPUsage 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: “Użycie procesora przekracza 80% przez ponad 5 minut”
  2. Konfigurowanie usługi Alertmanager: Zainstaluj i skonfiguruj Alertmanager, aby wysyłać powiadomienia za pośrednictwem poczty e-mail, Slack lub innych kanałów po wyzwoleniu alertu.

Przypadki użycia dla Prometheus

Prometheus jest używany w szerokim zakresie scenariuszy do monitorowania różnych typów systemów, w tym:

  1. Monitorowanie infrastruktury: Zbieranie metryk z serwerów, baz danych i urządzeń sieciowych w celu zapewnienia sprawnego działania infrastruktury.
  2. Monitorowanie aplikacji: Śledzenie wskaźników wydajności, takich jak opóźnienia, częstotliwość żądań, wskaźniki błędów i zużycie zasobów przez aplikacje, zwłaszcza w architekturach mikrousług.
  3. Monitorowanie Kubernetes: Prometheus integruje się natywnie z Kubernetes i może automatycznie wykrywać i skrobać metryki z kapsuł i usług w klastrze Kubernetes.
  4. Niestandardowe metryki: Prometheus umożliwia instrumentowanie własnych aplikacji w celu ujawnienia niestandardowych metryk, zapewniając dogłębny wgląd w zachowania specyficzne dla aplikacji.

Podsumowanie

Prometheus to potężne i elastyczne rozwiązanie do monitorowania, które umożliwia gromadzenie w czasie rzeczywistym, wysyłanie zapytań i alertów na podstawie danych szeregów czasowych. Niezależnie od tego, czy monitorujesz metryki na poziomie systemu, czy wydajność aplikacji w architekturze mikrousług, Prometheus jest cennym narzędziem zapewniającym zdrowie i stabilność infrastruktury.

Postępując zgodnie z krokami opisanymi w tym artykule, można rozpocząć pracę z Prometheus, zbierać metryki z systemów i wizualizować je za pomocą Grafany. Z biegiem czasu Prometheus może pomóc w uzyskaniu wglądu w trendy wydajności, wykrywaniu anomalii i szybkim reagowaniu na incydenty, poprawiając zarówno czas pracy systemu, jak i jego niezawodność.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills