 Autor: [Miłka Teroy](/autorzy/milka-teroy) Analityk rynku hostingowego · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Thanos — Prometheus long-term storage

# Thanos — długoterminowe przechowywanie metryk Prometheus w S3

Opublikowano: 10 kwietnia 2026 · Kategoria: VPS

Prometheus jest doskonały do zbierania i przechowywania metryk — ale domyślnie tylko przez 15 dni, bez HA i bez globalnego widoku wielu klastrów. Thanos rozwiązuje te problemy: dodaje nieograniczone przechowywanie w object storage (S3, MinIO, GCS), deduplikację danych z par HA i jeden endpoint zapytań dla całej infrastruktury.

## Architektura Thanos — komponenty

Komponent

Rola

Port (domyślny)

**Sidecar**

Upload bloków TSDB do S3, gRPC proxy do Prometheus

10901 (gRPC), 10902 (HTTP)

**Store Gateway**

Serwuje dane z S3 przez gRPC (dla Query)

10901 (gRPC), 10902 (HTTP)

**Compactor**

Deduplication, downsampling, compaction w S3

10902 (HTTP only)

**Query (Querier)**

Globalny endpoint PromQL — łączy Sidecar + Store

10901 (gRPC), 10902 (HTTP/UI)

**Query Frontend**

Cache i split zapytań (opcjonalny)

10902 (HTTP)

**Ruler**

Globalne recording rules i alerty

10901, 10902

## Konfiguracja — bucket S3/MinIO

Wszystkie komponenty Thanos korzystają z tego samego pliku konfiguracji bucket. Utwórz `bucket.yaml`:

\# bucket.yaml — konfiguracja S3/MinIO
type: S3
config:
  bucket: "thanos-metrics"
  endpoint: "minio.example.com:9000"   # lub s3.amazonaws.com dla AWS
  access\_key: "AKIAIOSFODNN7EXAMPLE"
  secret\_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  insecure: true                         # false dla HTTPS / AWS S3

\# Utwórz bucket w MinIO przez mc
mc alias set myminio http://minio.example.com:9000 ACCESS\_KEY SECRET\_KEY
mc mb myminio/thanos-metrics

## Thanos Sidecar — obok Prometheus

Sidecar uruchamiasz obok Prometheusa. Prometheus MUSI mieć flagę `--storage.tsdb.min-block-duration=2h` i `--storage.tsdb.max-block-duration=2h` (bloki co 2h — Sidecar uploaduje kompletne bloki):

thanos sidecar \\
  --prometheus.url=http://localhost:9090 \\
  --tsdb.path=/var/lib/prometheus \\
  --objstore.config-file=/etc/thanos/bucket.yaml \\
  --grpc-address=0.0.0.0:10901 \\
  --http-address=0.0.0.0:10902

## Thanos Store Gateway — dane historyczne z S3

thanos store \\
  --objstore.config-file=/etc/thanos/bucket.yaml \\
  --data-dir=/var/lib/thanos/store \\
  --grpc-address=0.0.0.0:10901 \\
  --http-address=0.0.0.0:10902 \\
  --index-cache-size=500MB \\
  --chunk-pool-size=2GB

## Thanos Query — globalny endpoint PromQL

Query łączy wszystkie Sidecar i Store Gateway w jeden punkt zapytań. Flaga `--query.replica-label` wskazuje label używany do deduplikacji (np. `replica` — różne wartości tego labela w Prometheus HA pair):

thanos query \\
  --grpc-address=0.0.0.0:10901 \\
  --http-address=0.0.0.0:10902 \\
  --query.replica-label=replica \\
  --store=sidecar-1:10901 \\
  --store=sidecar-2:10901 \\
  --store=store-gateway:10901

Thanos Query ma wbudowane UI dostępne na porcie 10902 — identyczne z Prometheus UI. Możesz też dodać jako datasource w Grafanie (endpoint HTTP).

## Thanos Compactor — deduplication i downsampling

thanos compact \\
  --objstore.config-file=/etc/thanos/bucket.yaml \\
  --data-dir=/var/lib/thanos/compact \\
  --http-address=0.0.0.0:10902 \\
  --retention.resolution-raw=30d \\
  --retention.resolution-5m=90d \\
  --retention.resolution-1h=365d \\
  --wait \\
  --wait-interval=15m

Compactor tworzy trzy poziomy rozdzielczości: raw (oryginalna rozdzielczość), 5m (1 punkt co 5 minut), 1h (1 punkt co godzinę). Stare dane są automatycznie downsamplowane — zapytania o dane sprzed roku są szybkie bo operują na blokach 1h zamiast 1-minutowych.

## Thanos vs Grafana Mimir — kiedy co wybrać?

Cecha

Thanos

Grafana Mimir

Architektura

Sidecars + istniejące Prometheus

Centralne write/read path (Cortex-like)

Retrofit

Łatwy (sidecar obok Prometheus)

Wymaga remote\_write z Prometheus

Skalowanie

Dobre (dodajesz instancje)

Lepsze dla masowego ingestu

Złożoność

Średnia

Wysoka (więcej komponentów)

Koszt zasobów

Niższy przy <100 Prometheus

Efektywniejszy przy >1000 req/s

Kiedy wybrać

Istniejące Prometheus, <10 klastrów

Greenfield, duża skala, SaaS

## Najczęstsze pytania

Czym jest Thanos i dlaczego warto go używać zamiast samego Prometheus? +

Prometheus przechowuje metryki lokalnie, domyślnie 15 dni, bez HA i bez globalnego widoku wielu instancji. Thanos dodaje: nieograniczone przechowywanie w S3/GCS/Azure Blob, deduplikację danych z wielu Prometheus (HA pair), globalny widok przez Thanos Query (jeden endpoint PromQL dla wszystkich instancji), downsample (kompresja starych danych) i reguły globalne (recording rules i alerty na zagregowanych danych). Idealne dla środowisk z wieloma klastrami lub długoterminową retencją.

Jak działa Thanos Sidecar? +

Thanos Sidecar to proces uruchomiony obok Prometheus (jako sidecar container lub osobny proces). Monitoruje katalog TSDB Prometheusa — gdy Prometheus "zamknie" blok danych (co 2h), Sidecar uploaduje go do obiektu storage (S3). Równocześnie Sidecar wystawia gRPC endpoint pozwalający Thanos Query odpytywać Prometheusa o dane bieżące (nie zuploadowane jeszcze do S3). Sidecar nie modyfikuje Prometheusa — jest passive observer.

Co robi Thanos Compactor i kiedy go uruchamiać? +

Thanos Compactor przetwarza bloki w object storage: (1) deduplication — usuwa duplikaty z wielu Prometheus (HA pair), (2) downsampling — tworzy bloki 5m i 1h z bloków 1-minutowych dla starszych danych (oszczędność miejsca i szybsze zapytania), (3) compaction — łączy małe bloki w większe. Compactor MUSI działać jako singleton (tylko jedna instancja na jeden bucket). Uruchamiaj jako --wait (pętla) lub przez cron.

Jaka jest różnica między Thanos a Grafana Mimir? +

Thanos to projekt rozproszony — każda instancja Prometheus zarządza swoimi danymi, Thanos agreguje przy query. Mimir (open-source Grafana Labs) to natywnie distributed TSDB z ingest path (podobnie jak Cortex) — dane trafiają centralnie przez write API. Mimir ma lepszą skalowalność dla masowego ingestu, Thanos jest łatwiejszy do retrofitu istniejącego Prometheus. Mimir wymaga więcej komponentów, Thanos działa z --min-block-duration już bez zmian w Prometheus.

Jak skonfigurować MinIO jako backend S3 dla Thanos? +

MinIO jest w pełni kompatybilny z S3 API. W konfiguracji Thanos (bucket.yaml) ustaw type: S3 z endpoint wskazującym na MinIO (np. minio:9000), access\_key i secret\_key, insecure: true jeśli brak TLS. Utwórz wcześniej bucket przez mc alias set i mc mb. Thanos nie widzi różnicy między AWS S3 a MinIO — wszystkie operacje (upload, list, get) działają identycznie.

## 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 dużym dyskiem — idealny do self-hosted MinIO jako backend Thanos

Object Storage

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

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

Mikrus

Tani VPS do testowania architektury Thanos + Prometheus Sidecar

Dev VPS

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

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

home.pl

VPS z polskim supportem do długoterminowego monitorowania infrastruktury

Long-term

[Aktywuj rabat →](/out/home-pl)

#Reklama · link partnerski

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

## Powiązane strony

-   [Prometheus + Grafana — monitoring VPS](/baza-wiedzy/monitoring-grafana-prometheus)
-   [Prometheus Alertmanager — konfiguracja alertów](/baza-wiedzy/prometheus-alertmanager-konfiguracja)
-   [MinIO — własny S3-compatible storage na VPS](/baza-wiedzy/minio-object-storage-s3-vps)
-   [Wszystkie artykuły](/baza-wiedzy/)