 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  InfluxDB + Telegraf monitoring

# InfluxDB v2 + Telegraf — monitoring VPS i aplikacji

Opublikowano: 10 kwietnia 2026 · Kategoria: VPS / Monitoring

InfluxDB v2 to baza danych szeregów czasowych z wbudowanym dashboardem, API i zarządzaniem alertami. Telegraf to agent zbierający metryki z ponad 300 źródeł (CPU, pamięć, dysk, sieć, MySQL, Nginx, Docker, Kubernetes i wiele innych). Razem tworzą lekki i wydajny stack monitoringu, który dobrze współpracuje z Grafaną. Ten artykuł przeprowadzi cię przez instalację obu komponentów, konfigurację podstawowych collectorów, pierwsze zapytania w języku Flux oraz integrację z Grafaną.

## Instalacja InfluxDB v2 na Ubuntu

\# Dodaj repozytorium InfluxData
curl -s https://repos.influxdata.com/influxdata-archive\_compat.key \\
  | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/influxdata-archive\_compat.gpg

echo "deb \[signed-by=/etc/apt/trusted.gpg.d/influxdata-archive\_compat.gpg\] \\
  https://repos.influxdata.com/ubuntu stable main" \\
  | sudo tee /etc/apt/sources.list.d/influxdata.list

sudo apt update && sudo apt install -y influxdb2

# Uruchom i wlacz przy starcie
sudo systemctl enable --now influxdb
sudo systemctl status influxdb

# InfluxDB dziala na porcie 8086
# Web UI: http://localhost:8086

## Konfiguracja wstępna — organizacja, bucket i token

Po pierwszym uruchomieniu otwórz `http://TWOJ_IP:8086` i przejdź przez wizard konfiguracji. Możesz też użyć CLI:

\# Konfiguracja przez CLI
influx setup \\
  --username admin \\
  --password HasloAdmin123 \\
  --org mojafirma \\
  --bucket metrics \\
  --retention 30d \\
  --force

# Sprawdz konfiguracje
influx config ls

# Utwórz dodatkowy bucket (np. dla dlugoterminowych danych z retencja 365 dni)
influx bucket create \\
  --name metrics-long \\
  --org mojafirma \\
  --retention 365d

# Wyswietl tokeny
influx auth list

# Utwórz token read-only dla Grafany
influx auth create \\
  --org mojafirma \\
  --read-buckets \\
  --description "Grafana read-only"

## Instalacja i konfiguracja Telegraf

sudo apt install -y telegraf

# Wygeneruj konfiguracje Telegraf z gotowymi pluginami
# Lub skonfiguruj manualnie /etc/telegraf/telegraf.conf

# Glowna konfiguracja outputu do InfluxDB v2
# /etc/telegraf/telegraf.conf

\[\[outputs.influxdb\_v2\]\]
  urls = \["http://localhost:8086"\]
  token = "TWOJ\_OPERATOR\_TOKEN"
  organization = "mojafirma"
  bucket = "metrics"

\[\[inputs.cpu\]\]
  percpu = true
  totalcpu = true
  collect\_cpu\_time = false
  report\_active = false

\[\[inputs.disk\]\]
  ignore\_fs = \["tmpfs", "devtmpfs", "devfs"\]

\[\[inputs.diskio\]\]

\[\[inputs.kernel\]\]

\[\[inputs.mem\]\]

\[\[inputs.net\]\]
  interfaces = \["eth0", "lo"\]

\[\[inputs.processes\]\]

\[\[inputs.swap\]\]

\[\[inputs.system\]\]

\# Uruchom Telegraf
sudo systemctl enable --now telegraf
sudo systemctl status telegraf

# Sprawdz czy metryki plyna do InfluxDB
telegraf --config /etc/telegraf/telegraf.conf --test | head -30

# Logi
sudo journalctl -u telegraf -f

## Dodatkowe pluginy Telegraf

Plugin

Co zbiera

Konfiguracja

`inputs.nginx`

Nginx status (requests, connections, read/write)

`urls = ["http://localhost/nginx_status"]`

`inputs.mysql`

MySQL/MariaDB — queries, connections, InnoDB stats

`servers = ["user:pass@tcp(127.0.0.1:3306)/"]`

`inputs.postgresql`

PostgreSQL — DB stats, table sizes, connections

`address = "postgres://user:pass@localhost/db"`

`inputs.docker`

Docker containers — CPU, mem, net per container

`endpoint = "unix:///var/run/docker.sock"`

`inputs.redis`

Redis — used memory, keyspace hits/misses, clients

`servers = ["tcp://localhost:6379"]`

`inputs.http_response`

HTTP status check — response time, status code

`urls = ["https://twojadomena.pl"]`

`inputs.ping`

ICMP ping — latencja do zewnętrznych hostów

`urls = ["8.8.8.8", "1.1.1.1"]`

## Flux — język zapytań InfluxDB v2

Flux to pipeline-based język zapytań. Dane przepływają przez łańcuch transformacji połączonych operatorem `|>`. Podstawowa struktura: `from` → `range` → `filter` → agregacja.

// Srednie uzycie CPU z ostatniej godziny, co 5 minut
from(bucket: "metrics")
  |> range(start: -1h)
  |> filter(fn: (r) => r.\_measurement == "cpu")
  |> filter(fn: (r) => r.\_field == "usage\_active")
  |> filter(fn: (r) => r.cpu == "cpu-total")
  |> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
  |> yield(name: "mean\_cpu")

// Wolna pamiec RAM (MB)
from(bucket: "metrics")
  |> range(start: -1h)
  |> filter(fn: (r) => r.\_measurement == "mem")
  |> filter(fn: (r) => r.\_field == "available")
  |> map(fn: (r) => ({ r with \_value: r.\_value / 1024 / 1024 }))
  |> yield(name: "free\_mb")

// Top 5 procesow po uzyciu CPU
from(bucket: "metrics")
  |> range(start: -15m)
  |> filter(fn: (r) => r.\_measurement == "procstat")
  |> filter(fn: (r) => r.\_field == "cpu\_usage")
  |> top(n: 5, columns: \["\_value"\])

// Uzycie dysku ponad 80%
from(bucket: "metrics")
  |> range(start: -5m)
  |> filter(fn: (r) => r.\_measurement == "disk")
  |> filter(fn: (r) => r.\_field == "used\_percent")
  |> filter(fn: (r) => r.\_value > 80.0)

## Alerty w InfluxDB (Checks i Notifications)

InfluxDB v2 ma wbudowany system alertowania. W zakładce **Alerts** tworzysz Checks (definicja warunku) i Notification Rules (gdzie wysłać alert). Obsługiwane kanały powiadomień: Slack, PagerDuty, email, HTTP webhook. Przykład alertu przez Flux CLI:

// Alert gdy CPU > 90% przez 5 minut
// Tworz przez UI: Alerts → Create Check → Threshold Check
// lub Flux:

option task = {name: "CPU alert", every: 5m}

from(bucket: "metrics")
  |> range(start: -task.every)
  |> filter(fn: (r) => r.\_measurement == "cpu" and r.\_field == "usage\_active")
  |> filter(fn: (r) => r.cpu == "cpu-total")
  |> mean()
  |> map(fn: (r) => ({ r with
    \_level: if r.\_value > 90.0 then "crit"
             else if r.\_value > 75.0 then "warn"
             else "ok"
  }))
  |> monitor.check(
    data: {r},
    messageFn: (r) => "CPU usage is ${r.\_value}% on ${r.host}"
  )

## Grafana — integracja z InfluxDB v2

Grafana świetnie współpracuje z InfluxDB v2 jako datasource. Gotowe dashboardy dla Telegraf są dostępne na Grafana.com do importu jednym kliknięciem.

\# Instalacja Grafana (Ubuntu)
sudo apt install -y grafana
sudo systemctl enable --now grafana-server
# Web UI: http://localhost:3000 (admin/admin)

# Konfiguracja datasource InfluxDB v2 przez API (lub przez UI)
curl -X POST http://admin:admin@localhost:3000/api/datasources \\
  -H "Content-Type: application/json" \\
  -d '{
    "name": "InfluxDB",
    "type": "influxdb",
    "url": "http://localhost:8086",
    "jsonData": {
      "version": "Flux",
      "organization": "mojafirma",
      "defaultBucket": "metrics",
      "tlsSkipVerify": true
    },
    "secureJsonData": {
      "token": "TWOJ\_GRAFANA\_READ\_TOKEN"
    }
  }'

# Importuj gotowy dashboard Telegraf (ID 928 lub 1443 na grafana.com)
# Grafana UI: Dashboards → Import → wpisz ID 928 → Load → Select datasource

## Najczęstsze pytania

Czym InfluxDB różni się od PostgreSQL do przechowywania metryk? +

InfluxDB to baza danych szeregów czasowych (time series database, TSDB) zoptymalizowana pod metryki: automatyczna kompresja danych w czasie, natywny timestamp jako klucz, efektywne zapytania agregujące po czasie (mean/max/min over last 5m), polityki retencji automatycznie usuwające stare dane. PostgreSQL to baza relacyjna — świetna do danych biznesowych, ale bez specjalizacji na metryki: bez automatycznej kompresji, bez natywnych operacji okna czasowego, wolna przy milionach wierszy metryk. Do metryk VPS i aplikacji InfluxDB jest 10-100x efektywniejsza.

Co to są tagi i pola w InfluxDB? +

W InfluxDB każdy punkt danych (measurement) ma: timestamp, tagi (tags) i pola (fields). Tagi to metadane indeksowane — używane do filtrowania i grupowania, np. host="web01", region="pl". Pola to wartości numeryczne lub string nieindeksowane — same metryki, np. cpu\_usage=45.2, memory\_free=1024. Kluczowa zasada: tagi mają niską kardynalność (mały zbiór unikalnych wartości), pola mogą być dowolne. Zbyt wiele unikalnych tagów powoduje "high cardinality" i spowalnia zapytania.

Czym jest Flux i dlaczego zastąpił InfluxQL? +

Flux to język zapytań i transformacji danych wprowadzony w InfluxDB 2.0. W odróżnieniu od InfluxQL (SQL-like) Flux jest pipeline-based — dane przepływają przez łańcuch transformacji (from → range → filter → aggregateWindow → yield). Flux pozwala na złożone operacje: join wielu bucketsów, math między seriami, custom functions, HTTP requests w query. InfluxDB 3.0 wraca do SQL i Apache Arrow Flight SQL, ale Flux jest nadal standardem w v2.

Jak połączyć Grafanę z InfluxDB v2? +

W Grafanie: Settings → Data Sources → Add data source → InfluxDB. Ustaw Query Language na Flux (nie InfluxQL). URL: adres InfluxDB (np. http://localhost:8086). W sekcji InfluxDB Details: Organization (nazwa org), Default Bucket (bucket), Token (API token z prawami read). W panelach Grafany piszesz zapytania w Flux, możesz też użyć Grafana InfluxDB datasource query builder dla podstawowych wykresów. Dashboard Telegraf system metrics jest dostępny na Grafana.com (ID: 928) gotowy do importu.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS z 4-8 GB RAM — InfluxDB + Grafana na jednej maszynie monitoring kilku serwerów

VPS Monitoring

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

Mikr.us

Tani VPS do testowania InfluxDB v2 i Telegraf z Docker Compose

Dev/Test

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

Zenbox

Hosting WordPress z wbudowanymi metrykami i panelem — gotowy bez setup

Managed

[Aktywuj rabat →](/out/zenbox)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/zenbox)

## Powiązane strony

-   [Monitorowanie uptime strony — UptimeRobot](/baza-wiedzy/monitorowanie-strony-uptime-robot)
-   [Graylog — centralizacja logów](/baza-wiedzy/graylog-centralizacja-logow)
-   [MySQL slow query log i optymalizacja](/baza-wiedzy/mysql-slow-query-log)
-   [Apache Kafka na VPS — message broker](/baza-wiedzy/kafka-message-broker-vps)
-   [Wszystkie artykuły](/baza-wiedzy/)