Best VPS for Grafana 2026: Monitor Everything on Your Own Server
Find the best VPS for hosting Grafana. Compare specs, pricing, and performance to run your own monitoring dashboards with Prometheus, Loki, and more.
Best VPS for Grafana in 2026
Grafana is the go-to open-source platform for monitoring and observability. Beautiful dashboards, alerting, and support for dozens of data sources — from Prometheus to PostgreSQL to CloudWatch. Self-hosting it means your metrics stay yours.
Why Self-Host Grafana?
| Factor | Grafana Cloud Free | Grafana Cloud Pro | Self-Hosted |
|---|---|---|---|
| Metrics | 10k series | 15k+ series | Unlimited |
| Logs | 50GB/mo | 100GB+/mo | Your disk |
| Retention | 14 days | 13 months | You decide |
| Dashboards | 10 | Unlimited | Unlimited |
| Users | 3 | Unlimited | Unlimited |
| Cost | Free | $29+/mo | ~$5-10/mo |
Once you're past hobby scale, self-hosting Grafana saves money and removes all limits on metrics, retention, and users.
VPS Requirements
Grafana itself is lightweight, but the full monitoring stack (Prometheus, Loki, etc.) needs more resources.
RAM (Important)
- Grafana alone: 200-500MB
- Prometheus: 1-4GB depending on metric count (roughly 1GB per 100k active series)
- Loki (log aggregation): 500MB-2GB
- Full stack (Grafana + Prometheus + Loki): 4-8GB minimum
- 4GB works for small setups, 8GB+ for production
CPU (Moderate)
- Grafana rendering is mostly frontend
- Prometheus query evaluation needs CPU during complex PromQL queries
- 2 vCPU for small setups, 4+ for heavy dashboards or many scrapers
- Dashboard load time directly correlates with CPU power
Storage (Critical)
- Prometheus TSDB grows with metric count × retention period
- Rough estimate: 1-2 bytes per sample, 15s scrape = ~5.7MB/day per 1000 series
- Loki logs can consume 10-100GB depending on volume
- NVMe SSD is essential — Prometheus TSDB is I/O intensive
- 80GB minimum, 200GB+ for serious monitoring
Network
- Metric scraping is low bandwidth but constant
- Remote write/read from other Prometheus instances adds up
- 1Gbps is more than enough
Best VPS for Grafana
1. Hostinger KVM2 (Best Overall) ⭐
$5.99/mo | 2 vCPU, 8GB RAM, 100GB NVMe
8GB RAM handles Grafana + Prometheus + Loki comfortably for most setups. 100GB NVMe gives solid retention for metrics and logs. Hard to beat at this price.
Best for: Full monitoring stack, small-to-medium infrastructure
2. Hetzner CX22 (Best Budget)
€3.99/mo | 2 vCPU, 4GB RAM, 40GB NVMe
Runs Grafana + Prometheus for a handful of targets. 4GB RAM means you'll need to be strategic about what you monitor, but for personal projects or small teams it works.
Best for: Solo developers, monitoring < 20 targets
3. Contabo VPS M (Best Value)
€9.49/mo | 6 vCPU, 16GB RAM, 200GB NVMe
16GB RAM lets you run the entire LGTM stack (Loki, Grafana, Tempo, Mimir) without sweating. 200GB NVMe gives months of metric and log retention. Six vCPUs handle complex PromQL queries and dashboard rendering.
Best for: Full observability stack, long retention, 50+ monitored targets
4. Hetzner CPX31 (Best Performance)
€14.49/mo | 4 vCPU, 8GB RAM, 160GB NVMe
Dedicated AMD EPYC vCPUs give consistent query performance. Prometheus PromQL queries on large datasets benefit from predictable CPU. 160GB NVMe handles serious retention.
Best for: Production monitoring, consistent performance needs
5. Vultr Cloud Compute (Best Global Coverage)
$24/mo | 2 vCPU, 4GB RAM, 80GB NVMe
32 data centers worldwide. If you're monitoring infrastructure across regions, place your Grafana instance close to the majority of your scrape targets for lower latency.
Best for: Distributed infrastructure monitoring
Quick Comparison
| VPS | RAM | vCPU | Storage | Price | Best For |
|---|---|---|---|---|---|
| Hostinger KVM2 | 8GB | 2 | 100GB NVMe | $5.99/mo | Overall best |
| Hetzner CX22 | 4GB | 2 | 40GB NVMe | €3.99/mo | Budget |
| Contabo M | 16GB | 6 | 200GB NVMe | €9.49/mo | Full stack |
| Hetzner CPX31 | 8GB | 4 | 160GB NVMe | €14.49/mo | Performance |
| Vultr CC | 4GB | 2 | 80GB NVMe | $24/mo | Global |
How to Install Grafana + Prometheus
Docker Compose (Recommended)
# docker-compose.yml
version: "3.8"
services:
grafana:
image: grafana/grafana:latest
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=changeme
- GF_USERS_ALLOW_SIGN_UP=false
depends_on:
- prometheus
prometheus:
image: prom/prometheus:latest
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.retention.time=90d'
- '--storage.tsdb.path=/prometheus'
node-exporter:
image: prom/node-exporter:latest
restart: unless-stopped
ports:
- "9100:9100"
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
volumes:
grafana_data:
prometheus_data:
Prometheus Config
# prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']
docker compose up -d
# Grafana: http://your-server:3000 (admin / changeme)
# Prometheus: http://your-server:9090
Adding Loki for Logs
# Add to docker-compose.yml
loki:
image: grafana/loki:latest
restart: unless-stopped
ports:
- "3100:3100"
volumes:
- loki_data:/loki
command: -config.file=/etc/loki/local-config.yaml
promtail:
image: grafana/promtail:latest
restart: unless-stopped
volumes:
- /var/log:/var/log:ro
- ./promtail.yml:/etc/promtail/config.yml
command: -config.file=/etc/promtail/config.yml
volumes:
loki_data:
Now you have metrics AND logs in one place. Add Loki as a data source in Grafana and query logs alongside your dashboards.
Performance Tuning
Prometheus
# prometheus.yml
global:
scrape_interval: 30s # 30s instead of 15s halves storage
scrape_timeout: 10s
# Command flags
--storage.tsdb.retention.time=90d # Keep 90 days
--storage.tsdb.retention.size=50GB # Or cap by size
--storage.tsdb.wal-compression # Compress WAL
Grafana
# /etc/grafana/grafana.ini or environment variables
[database]
type = sqlite3 # SQLite is fine for most setups
# Use PostgreSQL if you have 10+ concurrent dashboard users
[dashboards]
min_refresh_interval = 30s # Prevent 1s refresh intervals
[dataproxy]
timeout = 60 # Increase for slow queries
Reverse Proxy (Caddy)
grafana.yourdomain.com {
reverse_proxy localhost:3000
}
Essential Dashboards
Start with these community dashboards (import by ID in Grafana):
| Dashboard | ID | Description |
|---|---|---|
| Node Exporter Full | 1860 | Complete Linux server monitoring |
| Docker + System | 893 | Container metrics |
| Caddy | 14280 | Reverse proxy monitoring |
| PostgreSQL | 9628 | Database monitoring |
| Prometheus Stats | 2 | Prometheus self-monitoring |
Import: Grafana → Dashboards → Import → Enter ID → Select Prometheus data source.
Alerting Setup
Grafana has built-in alerting. No need for Alertmanager unless you're already running it:
# In Grafana UI: Alerting → Contact points
# Set up Telegram, Slack, Discord, or email notifications
# Example alert rule (via provisioning):
# Alert when CPU > 80% for 5 minutes
# Alert when disk usage > 90%
# Alert when a target is down for 2 minutes
Security Checklist
- Set up HTTPS via reverse proxy (Caddy/Nginx)
- Change default admin password immediately
- Disable user registration (
GF_USERS_ALLOW_SIGN_UP=false) - Don't expose Prometheus port (9090) publicly
- Use Grafana's built-in auth or OAuth for team access
- Set up firewall — only ports 80/443 need to be public
- Enable Grafana audit logging for compliance
- Regular backups of Grafana DB and Prometheus data
Grafana Cloud vs Self-Hosted
| Feature | Grafana Cloud Free | Self-Hosted |
|---|---|---|
| Setup time | Instant | 15 minutes |
| Metrics limit | 10k series | Unlimited |
| Log limit | 50GB/mo | Your disk |
| Retention | 14 days | You choose |
| Dashboards | 10 | Unlimited |
| Alerting | Basic | Full |
| Cost at scale | $29-299/mo | $5-10/mo |
| Maintenance | None | You |
Grafana Cloud is great for getting started. Self-hosting wins when you need more metrics, longer retention, or want to avoid growing costs.
Backup Strategy
#!/bin/bash
# backup-monitoring.sh — run daily via cron
BACKUP_DIR="/backups/monitoring"
DATE=$(date +%Y-%m-%d)
# Backup Grafana (dashboards, users, settings)
docker compose exec -T grafana grafana-cli admin data-migration backup \
/var/lib/grafana/backup-$DATE.tar.gz 2>/dev/null || \
docker cp grafana:/var/lib/grafana/grafana.db "$BACKUP_DIR/grafana-$DATE.db"
# Snapshot Prometheus (optional — large)
# docker compose exec -T prometheus promtool tsdb snapshot /prometheus
# docker cp prometheus:/prometheus/snapshots/ "$BACKUP_DIR/prom-$DATE/"
# Keep last 14 days
find $BACKUP_DIR -name "grafana-*.db" -mtime +14 -delete
FAQ
How much RAM does Grafana need?
Grafana alone runs in 200-500MB. But you'll want Prometheus too, which needs 1-4GB depending on metric count. Budget 4GB minimum for a useful monitoring stack.
Can I monitor multiple servers with one Grafana instance?
Yes. Install node-exporter on each server, point Prometheus at them, and view everything in one Grafana dashboard. One VPS can monitor dozens of servers.
Is Prometheus required for Grafana?
No — Grafana supports 50+ data sources including MySQL, PostgreSQL, Elasticsearch, InfluxDB, and CloudWatch. But Prometheus is the most popular pairing and what most tutorials use.
How long can I keep metrics?
As long as you have disk space. Prometheus with 100GB NVMe can store months of data for hundreds of targets. Use --storage.tsdb.retention.time to set your retention period.
Grafana vs Datadog?
Grafana is free and open source. Datadog charges per host ($15-23/host/mo) and per metric. For 10 servers, Datadog costs $150-230/mo. Self-hosted Grafana costs $6/mo. The tradeoff is you manage the infrastructure.
Our Pick
Hostinger KVM2 at $5.99/month gives you 8GB RAM and 100GB NVMe — enough to run Grafana, Prometheus, Loki, and node-exporter for dozens of targets. A complete monitoring stack for less than one month of any cloud monitoring service.
Ready to get started?
Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.
Get Hostinger VPS — $4.99/mo// up to 75% off + free domain included
// related topics
fordnox
Expert VPS reviews and hosting guides. We test every provider we recommend.
// last updated: February 18, 2026. Disclosure: This article may contain affiliate links.