Best VPS for Grafana 2026: Monitor Everything on Your Own Server
REVIEW 9 min read fordnox

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)

CPU (Moderate)

Storage (Critical)

Network

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

→ Get Hostinger VPS

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

→ Get Hetzner VPS

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

→ Get Contabo VPS

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

→ Get Hetzner VPS

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

→ Get Vultr VPS

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

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.

→ Get started with Hostinger

~/best-vps-for-grafana/get-started

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

best vps for grafana grafana hosting self-hosted grafana grafana vps grafana server grafana prometheus vps

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.