Servidores de Jogos

Prometheus + Grafana: monitore sua VPS de jogo profissionalmente

Por que monitorar

Sem monitoramento, você descobre problemas quando players reclamam. Com monitoramento, você age antes:

  • TPS caindo → antes de todos verem
  • Memory leak → gráfico crescendo antecipa crash
  • CPU spike → identificar plugin/mob problemático
  • Ping alto → correlacionar com rota/DDoS
  • Storage cheio → alertar antes de servidor engasgar

Prometheus + Grafana é o padrão da indústria (open-source, grátis, todo lugar usa).

Arquitetura

[VPS MC]
  ├─ node_exporter (CPU/RAM/disco do OS)  → porta 9100
  ├─ paper_exporter (métricas do MC)      → porta 9225
  └─ mineflayer_exporter (opcional)       → players/inventory

              ↓ scrape a cada 15s

[Prometheus (mesma VPS ou separada)]     porta 9090
  └─ armazena time-series

              ↓ query

[Grafana]                                porta 3000
  └─ dashboards e alertas

Setup mínimo (tudo na mesma VPS)

1. node_exporter (métricas OS)

useradd -rs /bin/false prometheus_node
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xzf node_exporter-*.tar.gz
mv node_exporter-*/node_exporter /usr/local/bin/

systemd unit /etc/systemd/system/node_exporter.service:

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=prometheus_node
ExecStart=/usr/local/bin/node_exporter
Restart=always

[Install]
WantedBy=multi-user.target
systemctl enable --now node_exporter

Métricas em http://localhost:9100/metrics.

2. paper_exporter (Prometheus para Minecraft Paper)

Plugin: paper_exporter por sladkoff:

cd /opt/minecraft/plugins/
# baixe a versao mais recente em https://modrinth.com/plugin/paper-exporter/versions

Reinicie MC. Métricas em http://localhost:9225/metrics:

  • mc_tps — TPS atual
  • mc_players_online — players
  • mc_loaded_chunks — chunks carregados
  • jvm_memory_used_bytes — RAM heap
  • E dezenas mais

3. Prometheus

useradd -rs /bin/false prometheus
mkdir /etc/prometheus /var/lib/prometheus
chown prometheus:prometheus /var/lib/prometheus

wget https://github.com/prometheus/prometheus/releases/download/v2.55.0/prometheus-2.55.0.linux-amd64.tar.gz
tar xzf prometheus-*.tar.gz
mv prometheus-*/prometheus /usr/local/bin/
mv prometheus-*/promtool /usr/local/bin/

Config /etc/prometheus/prometheus.yml:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: node
    static_configs:
      - targets: ['localhost:9100']
  - job_name: minecraft
    static_configs:
      - targets: ['localhost:9225']

systemd /etc/systemd/system/prometheus.service:

[Unit]
Description=Prometheus
After=network.target

[Service]
User=prometheus
ExecStart=/usr/local/bin/prometheus 
  --config.file=/etc/prometheus/prometheus.yml 
  --storage.tsdb.path=/var/lib/prometheus 
  --web.listen-address=127.0.0.1:9090
Restart=always

[Install]
WantedBy=multi-user.target
systemctl enable --now prometheus

4. Grafana

apt install -y apt-transport-https software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
echo "deb https://apt.grafana.com stable main" > /etc/apt/sources.list.d/grafana.list
apt update && apt install -y grafana
systemctl enable --now grafana-server

Acesse http://SEU_IP:3000 (login admin/admin, troque).

Adicionar data source:

  • Configuration → Data Sources → Add → Prometheus
  • URL: http://127.0.0.1:9090
  • Save

5. Importar dashboards prontos

Grafana → Dashboards → Import:

  • 1860 — Node Exporter Full (métricas OS completas)
  • 11324 — Minecraft Paper (por Sladkoff, mesma pessoa do exporter)
  • 10467 — Java/JVM Overview

Cole o ID, escolhe seu Prometheus, Import.

Boom — dashboard pronto com TPS, RAM, disk, CPU, players em tempo real.

Alertas

Prometheus + Grafana permitem alertas por email, Discord, Slack.

Exemplo: alerta se TPS < 15 por 3 min:

# /etc/prometheus/alert.rules.yml
groups:
  - name: minecraft
    rules:
      - alert: LowTPS
        expr: mc_tps < 15
        for: 3m
        labels:
          severity: warning
        annotations:
          summary: "Servidor MC lagando (TPS < 15)"
          description: "TPS atual = {{ $value }}"

Configure Alertmanager (Prometheus) ou use Grafana Alerting (interface amigável).

Alertas via Discord

Grafana → Contact Points → Discord webhook. Cole URL webhook do canal, teste.

Agora se TPS cai, você recebe DM no Discord antes de players reclamarem.

Métricas mais importantes de MC

Métrica Alertar se
mc_tps < 18 por 5min
mc_players_online / max > 90% (cheio)
jvm_memory_used_bytes / max > 85% (RAM full)
node_filesystem_free / total < 10% (disco cheio)
node_cpu_usage_percent > 90% por 5min
mc_loaded_chunks Spike anormal

Custo em recursos

Prometheus + Grafana + exporters juntos: ~200-400 MB RAM. Rodam facil na mesma VPS que o MC.

Se você tem 5+ servers, dedique uma VPS pequena só pra monitoring (VPS-BR-01).

Reverse proxy + auth

Grafana e Prometheus expostos direto = risco. Coloque Nginx na frente com auth:

server {
    listen 443 ssl;
    server_name grafana.meuservidor.com.br;

    ssl_certificate /path/fullchain.pem;
    ssl_certificate_key /path/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Grafana já tem auth nativa. Não exponha Prometheus (127.0.0.1 no bind).

Perguntas frequentes

"Vale a pena pra servidor pequeno?"
Se tem <10 players e você joga junto, provavelmente não. Se >30 players ou é negócio, sim.

"Prometheus consome muito disco?"
Padrão retém 15 dias. ~1-2 GB por servidor monitorado. Ajuste retention se preciso.

"Grafana Cloud gratuito serve?"
Sim, tier grátis (10k series, 3 usuários). Cobre servidor pequeno.

Conclusão

Prometheus + Grafana é o setup profissional gratuito. Uma tarde de trabalho = monitoramento pra vida.

Nossos VPS-BR rodam Prometheus/Grafana sem restrição.

Links

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS
⏰ 20% OFF em VPS-BR --:--:-- Ver oferta →