Servery a DevOps

Monitoring herních serverů – Uptime Kuma, Prometheus a Grafana

Jak hlídat dostupnost a výkon herních serverů. Uptime Kuma s GameDig, metriky nodu a kontejnerů v Prometheu, Grafana, Minecraft query a upozornění.

12. 10. 2026 · 4 min čtení

Hráči vám dají vědět, že server spadl – ale až když už je pozdě. Monitoring herních serverů má dvě vrstvy: dostupnost (běží server a dá se na něj připojit?) a výkon (stíhá CPU, nedochází RAM nebo disk?). Pro obojí existují bezplatné nástroje, které rozjedete za odpoledne.

Co sledovat

Metrika Proč
Dostupnost herního portu server mohl spadnout nebo zamrznout
Počet hráčů trend návštěvnosti, detekce „prázdného“ serveru po pádu
CPU nodu a jednotlivých serverů herní servery často zatěžují jedno jádro na 100 %
RAM a swap při vyčerpání přichází OOM killer
Volné místo na disku zálohy a logy umí disk zaplnit nečekaně rychle
TPS/MSPT (Minecraft) skutečná „plynulost“ hry
Stav Wings/Panelu bez nich nefunguje správa

Vrstva 1: dostupnost s Uptime Kuma

Uptime Kuma je jednoduchý self-hosted nástroj pro monitoring dostupnosti s webovým rozhraním. Ideálně ho provozujte na jiném stroji než herní servery – jinak při výpadku nodu nemá kdo poslat upozornění.

docker run -d --restart=unless-stopped -p 3001:3001 \
  -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Rozhraní poběží na portu 3001. Užitečné typy monitorů:

  • GameDig – dotazuje herní server protokolem dané hry (Minecraft, Valheim, Rust, FiveM a mnoho dalších), takže pozná i to, že port je otevřený, ale hra neodpovídá.
  • TCP Port – jednoduchá kontrola otevřeného TCP portu (Minecraft Java, Wings 8080, SFTP 2022).
  • HTTP(s) – dostupnost Panelu a platnost SSL certifikátu.
  • Push – služba sama volá URL; když volání přestanou chodit, Kuma ohlásí výpadek. Hodí se pro Discord boty nebo cron zálohy.

Upozornění Kuma posílá do Discordu (webhook), Telegramu, e-mailem a dalšími kanály. Pro Discord vytvořte v kanálu webhook (Nastavení kanálu → Integrace → Webhooky) a URL vložte do Kumy.

Uptime Kuma umí z monitorů vytvořit i veřejnou status stránku, kterou můžete sdílet hráčům.

Minecraft: query a mc-monitor

Aby šlo o serveru zjistit víc než „port je otevřený“, zapněte v server.properties query:

enable-query=true
query.port=25565

Query běží na UDP. Pokud je za firewallem, povolte UDP port. Základní informace (MOTD, počet hráčů, verze) poskytuje i běžný Server List Ping přes TCP, který používá i klient – pro většinu monitoringu stačí.

Rychlá kontrola z příkazové řádky nástrojem mc-monitor (projekt itzg):

docker run --rm itzg/mc-monitor status --host mc.example.cz --port 25565

Vrstva 2: metriky s Prometheem a Grafanou

Pro grafy a historii výkonu je standardem Prometheus (sběr metrik) a Grafana (vizualizace).

node_exporter – metriky celého nodu (CPU, RAM, disk, síť):

sudo apt install prometheus-node-exporter
curl -s localhost:9100/metrics | head

cAdvisor – metriky jednotlivých Docker kontejnerů, tedy jednotlivých herních serverů v Pterodactylu:

docker run -d --name cadvisor --restart=unless-stopped \
  -p 127.0.0.1:8081:8080 \
  -v /:/rootfs:ro -v /var/run:/var/run:ro -v /sys:/sys:ro \
  -v /var/lib/docker/:/var/lib/docker:ro \
  gcr.io/cadvisor/cadvisor:v0.49.1

Port 8080 na nodu obsazuje Wings, proto je cAdvisor v příkladu na 8081. Verzi image zkontrolujte v repozitáři projektu.

Konfigurace Promethea (prometheus.yml) na monitorovacím stroji:

scrape_configs:
  - job_name: node
    static_configs:
      - targets: ['10.0.0.5:9100']
  - job_name: cadvisor
    static_configs:
      - targets: ['10.0.0.5:8081']

Exportery nevystavujte do internetu. Buď je dejte na privátní síť mezi stroji, nebo povolte port ve firewallu jen pro IP Promethea. V příkladu výše cAdvisor naslouchá jen na localhostu – pro vzdálený sběr změňte bind na privátní IP.

Kontejnery Pterodactylu jsou pojmenované podle UUID serveru, takže v Grafaně je snadno přiřadíte ke konkrétnímu serveru. Pro Grafanu existují hotové dashboardy pro node_exporter i cAdvisor, které importujete podle ID z grafana.com.

Metriky přímo z Minecraftu

Pro TPS, MSPT, počet entit a chunků existují pluginy, které vystavují metriky ve formátu Promethea (například UnifiedMetrics nebo Prometheus exporter pluginy pro Paper). Před instalací ověřte podporu vaší verze serveru.

Pro jednorázovou diagnostiku stačí spark (/spark tps, /spark health), viz Optimalizace Paper serveru.

Upozornění, která dávají smysl

Příliš mnoho upozornění vede k tomu, že je přestanete číst. Začněte s několika:

  • herní server neodpovídá déle než 2–3 minuty,
  • volné místo na disku pod 10 %,
  • RAM nodu nad 90 % po dobu 10 minut,
  • Panel nebo Wings nedostupné,
  • SSL certifikát vyprší do 14 dnů.

V Prometheu se upozornění píšou jako pravidla, například pro disk:

groups:
  - name: node
    rules:
      - alert: MaloMistaNaDisku
        expr: node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} < 0.10
        for: 10m
        annotations:
          summary: "Na {{ $labels.instance }} dochází místo na disku"

Odesílání řeší Alertmanager nebo přímo upozornění v Grafaně.

Minimální sestava pro začátek

  1. Uptime Kuma na malém samostatném VPS s GameDig monitory a Discord webhookem.
  2. node_exporter na každém nodu.
  3. Prometheus + Grafana, jakmile chcete historii a grafy.

Dotazy v PromQL a pravidla upozornění je praktické ladit s ColdHost AI – popište, co chcete hlídat, a nechte si navrhnout výraz i práh.