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 + 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.






