Grafana – wizualizacja, monitoring i observability
Informatyka

Grafana – wizualizacja, monitoring i observability

Grafana – wizualizacja, monitoring i observability

Grafana to platforma do wizualizacji danych, tworzenia dashboardów, monitorowania infrastruktury i budowania systemów observability.

Najczęściej spotkasz ją w połączeniu z Prometheusem:

                    Linux
                      |
                Node Exporter
                      |
                      v
                 Prometheus
                      |
                      v
                   Grafana
                      |
                      v
                 Dashboard

Ważne: Grafana sama nie jest przede wszystkim bazą danych metryk. Jej głównym zadaniem jest pobieranie danych ze źródeł i prezentowanie ich w czytelnej formie.


Jak działa Grafana?

Grafana może pobierać dane z wielu źródeł:

                    Grafana
                       |
       +---------------+---------------+
       |               |               |
  Prometheus          Loki          PostgreSQL
       |               |               |
    Metrics           Logs           Data

Można również integrować ją z innymi systemami monitoringu, bazami danych i platformami observability.


Grafana + Prometheus

To jeden z najpopularniejszych zestawów:

Server
   |
Node Exporter
   |
   v
Prometheus
   |
   | PromQL
   v
Grafana

Prometheus przechowuje metryki, natomiast Grafana pozwala zbudować z nich dashboard.

Przykładowo:

┌──────────────────────────────────────────┐
│              SERVER STATUS               │
├──────────────┬──────────────┬────────────┤
│ CPU          │ RAM          │ Disk       │
│ 62%          │ 71%          │ 48%        │
├──────────────┼──────────────┼────────────┤
│ Network      │ Load         │ Uptime     │
│ 34 Mb/s      │ 1.42         │ 27 days    │
└──────────────┴──────────────┴────────────┘

Dashboard

Dashboard jest zbiorem paneli prezentujących dane.

Może zawierać:

  • wykresy,
  • statystyki,
  • tabele,
  • liczniki,
  • heatmapy,
  • informacje o stanie usług.

Przykład:

Infrastructure
│
├── CPU Usage
├── Memory Usage
├── Disk Usage
├── Network Traffic
├── Load Average
└── System Uptime

Monitoring Linux

Dla serwera Linux możemy stworzyć dashboard:

Linux Server
│
├── CPU
│   ├── User
│   ├── System
│   └── Idle
│
├── Memory
│   ├── Used
│   ├── Available
│   └── Swap
│
├── Storage
│   ├── Used
│   └── Free
│
└── Network
    ├── RX
    └── TX

Dzięki temu administrator może szybko zobaczyć, czy problem dotyczy CPU, pamięci, dysku czy sieci.


Grafana i PromQL

Grafana może wykonywać zapytania PromQL do Prometheusa.

Przykładowo:

up

albo:

node_memory_MemAvailable_bytes

Grafana otrzymuje wynik i przedstawia go graficznie.

Schemat:

Grafana
   |
   | PromQL
   v
Prometheus
   |
   | Time Series
   v
Grafana Panel

Monitoring CPU

Możemy stworzyć wykres:

CPU %

100 |                    █
 80 |          █     █   █
 60 |    █     █     █   █
 40 | █  █     █  █  █   █
 20 | █  █  █  █  █  █   █
    +-----------------------
       10  11  12  13  14
              Time

Największą zaletą wykresu jest możliwość zobaczenia trendu, a nie tylko aktualnej wartości.


Monitoring pamięci

Grafana może pokazać:

Memory

100% |                    █
 80% |              █  █  █
 60% |        █  █  █  █  █
 40% |   █  █ █  █  █  █  █
 20% | █ █  █ █  █  █  █  █
     +-----------------------

Dzięki temu można zauważyć np. stopniowy wzrost zużycia pamięci.


Monitoring dysków

To jeden z najbardziej praktycznych dashboardów.

Filesystem

/       72%
/var    84%
/home   41%
/data   93%

Można ustawić alert:

/data > 90%

Grafana Alerting

Grafana ma własny mechanizm alertingu.

Schemat:

Metric
  |
  v
Grafana
  |
  v
Alert Rule
  |
  +----> Email
  +----> Slack
  +----> Webhook
  +----> Other notification

Przykład:

IF
CPU > 90%

FOR
10 minutes

THEN
ALERT

Grafana vs Alertmanager

Jeżeli używamy Prometheusa, możemy spotkać oba mechanizmy.

Prometheus
    |
    v
Alertmanager

oraz:

Grafana
    |
    v
Grafana Alerting

Nie zawsze potrzebujemy obu.

Ważne jest ustalenie jednego spójnego modelu alertowania, aby nie doprowadzić do alert fatigue, czyli sytuacji, w której administrator otrzymuje tak dużo alarmów, że przestaje zwracać na nie uwagę.


Grafana + Loki

Grafana może również prezentować logi z Loki.

Architektura:

Applications
     |
     v
    Loki
     |
     v
  Grafana

Dzięki temu w jednym interfejsie możemy mieć:

Metrics
+
Logs

Metrics + Logs

Przykładowy problem:

Grafana:

CPU:       95%
Memory:    88%
HTTP 5xx:  17%

Administrator widzi problem.

Następnie przechodzi do logów:

ERROR database connection timeout
ERROR database connection timeout
ERROR database connection timeout

I otrzymuje znacznie lepszy obraz sytuacji.


Grafana i observability

Nowoczesny stack może wyglądać tak:

                    Observability
                         |
           +-------------+-------------+
           |             |             |
        Metrics         Logs         Traces
           |             |             |
      Prometheus         Loki        Tempo
           |             |             |
           +-------------+-------------+
                         |
                       Grafana

Grafana może wtedy stać się wspólnym interfejsem do obserwowania całej infrastruktury.


Grafana + Kubernetes

To kolejne bardzo popularne zastosowanie.

                    Kubernetes
                        |
        +---------------+---------------+
        |               |               |
       Nodes           Pods         Deployments
        |               |               |
        +---------------+---------------+
                        |
                   Prometheus
                        |
                      Grafana

Dashboard Kubernetes może pokazywać:

Cluster
│
├── Nodes
├── Pods
├── CPU
├── Memory
├── Network
├── Restarts
├── Deployments
└── Services

Monitoring Podów

Przykład:

Pod                 CPU      RAM       Restarts
------------------------------------------------
web-01              21%      312 MB        0
web-02              25%      298 MB        0
api-01              78%      1.2 GB        3
db-01               64%      3.8 GB        0

Od razu widać, który workload może wymagać uwagi.


Grafana + Docker

Możemy również monitorować środowisko kontenerowe:

Docker Host
     |
     +-- nginx
     +-- api
     +-- redis
     +-- postgres
          |
          v
      Prometheus
          |
          v
        Grafana

Dashboard:

Containers
│
├── CPU
├── Memory
├── Network
├── Restarts
└── Status

Grafana + sieć

Grafana może prezentować także dane dotyczące infrastruktury sieciowej.

Przykład:

Network

Inbound       320 Mb/s
Outbound      180 Mb/s

Packets/sec
Inbound       125k
Outbound       98k

Możemy również monitorować:

  • interfejsy,
  • błędy,
  • dropped packets,
  • przepustowość,
  • latency.

Grafana + SNMP

W infrastrukturze sieciowej często wykorzystuje się SNMP.

Schemat:

Switch
Router
Firewall
   |
   | SNMP
   v
SNMP Exporter
   |
   v
Prometheus
   |
   v
Grafana

Dashboard może pokazywać:

Switch
├── Port 1 → 780 Mb/s
├── Port 2 → 320 Mb/s
├── Port 3 → 0 Mb/s
├── Port 4 → 940 Mb/s
└── Errors → 12

Grafana w cyberbezpieczeństwie

Grafana nie jest SIEM-em ani IDS/IPS, ale może być bardzo dobrym interfejsem do danych bezpieczeństwa.

Przykładowo:

Suricata
   |
   v
Logs / Metrics
   |
   v
Data Source
   |
   v
Grafana

Dashboard:

Security Overview

Alerts             1,284
Critical              12
High                   47
Blocked IPs           328
DNS Blocks          2,481
Failed SSH          8,912

Grafana + Prometheus + Suricata

Możemy połączyć monitoring infrastruktury z bezpieczeństwem:

                    Infrastructure
                          |
          +---------------+---------------+
          |                               |
      Prometheus                       Suricata
          |                               |
       Metrics                           Alerts
          |                               |
          +---------------+---------------+
                          |
                       Grafana

Daje to możliwość obserwowania zarówno stanu infrastruktury, jak i wybranych danych bezpieczeństwa.

Grafana – wizualizacja, monitoring i observability
Grafana – wizualizacja, monitoring i observability

Grafana + Zeek

Podobnie można wizualizować dane z Zeeka:

Network
   |
  Zeek
   |
   +--> DNS
   +--> HTTP
   +--> TLS
   +--> SSH
   +--> Connections
          |
          v
       Data Source
          |
          v
        Grafana

Możemy stworzyć dashboard:

Network Security

Connections       1.2M
DNS Queries       480k
TLS Connections   320k
SSH Sessions       820
Suspicious DNS      31

Grafana + DNS Filtering

W nawiązaniu do poprzedniego tematu:

Clients
   |
   v
DNS Filtering
   |
   +--> Allowed
   +--> Blocked
   |
   v
Metrics
   |
   v
Prometheus
   |
   v
Grafana

Dashboard może pokazywać:

DNS Requests
------------------
Allowed      98.2%
Blocked       1.8%

Top blocked categories:
Malware
Phishing
Tracking
C2

Grafana i mikrosegmentacja

Również mikrosegmentację można monitorować:

Segment A
   |
   +--> Allowed connections
   +--> Blocked connections
   |
Segment B
   |
   +--> Allowed connections
   +--> Blocked connections

Można więc zobaczyć, czy polityka bezpieczeństwa działa zgodnie z założeniami.


Dashboard SOC

W większym środowisku można stworzyć centralny dashboard:

┌───────────────────────────────────────────┐
│              SECURITY OVERVIEW            │
├───────────────┬──────────────┬────────────┤
│ IDS Alerts    │ DNS Blocks   │ SSH Fail   │
│    128        │    1,284     │   8,912    │
├───────────────┴──────────────┴────────────┤
│                                           │
│             Network Activity              │
│       ███████████████████████             │
│                                           │
├──────────────────────┬────────────────────┤
│ Top Threats          │ Top Sources        │
│ C2                   │ 10.10.10.25        │
│ Scanning             │ 10.10.10.31        │
│ Brute Force          │ 10.10.10.42        │
└──────────────────────┴────────────────────┘

Grafana nie zastępuje SIEM

To bardzo ważne.

Grafana:

Visualization
Dashboard
Observability

SIEM:

Event Collection
Correlation
Detection
Investigation
Retention
Security Analytics

Dlatego:

Grafana ≠ SIEM
Grafana ≠ IDS
Grafana ≠ EDR

Może natomiast prezentować dane pochodzące z systemów bezpieczeństwa.


Grafana i alert fatigue

Dobry dashboard nie powinien być pełen czerwonych alarmów.

Jeżeli mamy:

ALERT
ALERT
ALERT
ALERT
ALERT
ALERT
ALERT

administrator szybko zaczyna je ignorować.

Lepsze podejście:

Critical
   ↓
Immediate action

Warning
   ↓
Investigation

Info
   ↓
Observation

Grafana i SLO

Grafana świetnie nadaje się do monitorowania SLO – Service Level Objectives.

Przykład:

Availability SLO
99.95%

Dashboard:

Current availability
99.97%

SLO
99.95%

Status
✓ Within target

Możemy także monitorować error budget.


Grafana i SLA

Dla usług biznesowych można stworzyć dashboard:

Service
│
├── Availability
├── Latency
├── Error Rate
├── Requests
└── SLO

Dzięki temu monitoring techniczny można powiązać z wymaganiami biznesowymi.


Najczęstsze błędy

❌ Jeden gigantyczny dashboard

Administrator nie wie, na czym się skupić.

❌ Za dużo wykresów

Więcej danych nie zawsze oznacza więcej informacji.

❌ Brak kontekstu

Sam wykres CPU niewiele mówi.

❌ Brak alertów

Dashboard może wyglądać świetnie, ale problem zostanie zauważony dopiero po godzinie.

❌ Brak hierarchii

Lepiej mieć:

Overview
   ↓
Infrastructure
   ↓
Server
   ↓
Application
   ↓
Detailed investigation

Dobra architektura Grafany

                       Grafana
                          |
        +-----------------+-----------------+
        |                 |                 |
   Infrastructure     Kubernetes        Security
        |                 |                 |
    Prometheus        Prometheus        Security DS
        |                 |                 |
        +-----------------+-----------------+
                          |
                       Alerts

Grafana + Prometheus – kompletny stack

                    TARGETS
                       |
         +-------------+-------------+
         |             |             |
       Linux       Kubernetes      Apps
         |             |             |
       Exporter     Exporter      /metrics
         |             |             |
         +-------------+-------------+
                       |
                  Prometheus
                       |
             +---------+---------+
             |                   |
          Grafana            Alertmanager
             |                   |
         Dashboard            Alerts
             |
          Operator

Grafana w architekturze Defense in Depth

Patrząc na całą serię tematów, którą budujesz:

                         INTERNET
                            |
                         Firewall
                            |
                       GeoIP Block
                            |
                      DNS Filtering
                            |
                     TLS Inspection
                            |
                        Suricata
                            |
                          Zeek
                            |
                    Microsegmentation
                            |
              +-------------+-------------+
              |             |             |
            Linux        Kubernetes      Apps
              |             |             |
           Prometheus    Prometheus    Prometheus
              |             |             |
              +-------------+-------------+
                            |
                          Grafana
                            |
              +-------------+-------------+
              |                           |
        Infrastructure                Security
          Dashboard                   Dashboard
              |                           |
              +-------------+-------------+
                            |
                           SOC

To pokazuje bardzo ważną rzecz: Grafana jest przede wszystkim warstwą prezentacji i obserwowalności, która pozwala zebrać informacje z wielu systemów w jednym miejscu.


Podsumowanie

Grafana najlepiej sprawdza się jako centralny interfejs do obserwowania infrastruktury, aplikacji i danych telemetrycznych.

W połączeniu z Prometheusem:

Prometheus → zbiera i przechowuje metryki
Grafana    → wizualizuje metryki
Alerting   → reaguje na problemy

A w większym środowisku:

Metrics + Logs + Traces + Security Data
                    |
                    v
                 Grafana
                    |
                    v
          Jedno miejsce obserwacji

Dlatego zestaw Prometheus + Grafana jest jednym z podstawowych elementów nowoczesnego monitoringu infrastruktury, szczególnie w środowiskach Linux, Docker, Kubernetes i cloud.

Polecane wpisy
Windows Server: Podstawowa konfiguracja
Windows Server: Podstawowa konfiguracja

Windows Server: Podstawowa konfiguracja Windows Server to zaawansowany system operacyjny stworzony przez firmę Microsoft, przeznaczony do zarządzania serwerami, obsługi aplikacji Czytaj dalej

USB, parametry, standardy

USB (Universal Serial Bus) to uniwersalny standard interfejsu komunikacyjnego służący do połączenia różnego rodzaju urządzeń z komputerem. USB został wprowadzony Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.