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 atualmc_players_online— playersmc_loaded_chunks— chunks carregadosjvm_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.

