How to Use Vultr's Grafana Marketplace Application

Updated on 11 December, 2025
Guide
Learn how to deploy, configure, and utilize Vultr's Grafana Marketplace Application for monitoring your infrastructure with this comprehensive step-by-step guide.
How to Use Vultr's Grafana Marketplace Application header image

Grafana is an open-source platform for visualizing and analyzing data from various sources. It provides interactive dashboards with customizable graphs, charts, and panels for real-time monitoring and data exploration. With its extensive plugin ecosystem, Grafana integrates with numerous data sources including Prometheus, InfluxDB, Elasticsearch, MySQL, and PostgreSQL, making it a powerful tool for tracking system performance and gaining actionable insights. The Vultr Marketplace provides a pre-configured Grafana instance, enabling quick deployment and setup on a Vultr server.

This guide explains deploying and using Vultr's Grafana Marketplace Application. You will deploy an instance, configure security and SSL, connect data sources like Prometheus, create dashboards, set up alerts, and implement best practices for production monitoring.

Deploy Vultr's Grafana Marketplace Application

  1. Log in to your Vultr Customer Portal and click the Deploy Server button.

  2. Select your preferred server type.

  3. Choose a server location.

  4. Select a server plan with at least 2GB RAM and 2 CPU cores for production workloads.

  5. Click the Configure button to proceed.

  6. Under Marketplace Apps, search for Grafana and select it as the Marketplace Application.

  7. Select the Limited Login option from the Additional Features section to create a limited user with sudo access.

  8. Review your configurations and click the Deploy Now button to start deployment.

    Note
    It may take up to 10 minutes for your server to finish installing Grafana.
  9. After the instance shows the status of Running, navigate to the Server Overview page and copy the SSH connection details.

Initial Setup and Configuration

After deployment, configure DNS, verify the installation, and secure your Grafana instance with proper authentication and SSL/TLS before exposing it to production traffic.

  1. Create a DNS A record pointing to your server's IP address, such as grafana.example.com.

  2. Connect to your Vultr server instance over SSH using the connection details from the Server Overview page.

Verify Grafana Installation

  1. Check the Grafana service status.

    console
    $ sudo systemctl status grafana-server
    

    The service should show as active (running).

  2. Verify the installed Grafana version.

    console
    $ grafana-server -v
    

    Output:

    Version 12.2.0 (commit: 92f1fba9b4b6700328e99e97328d6639df8ddc3d, branch: release-12.2.0)
  3. Access Grafana by visiting grafana.example.com in a web browser.

  4. Log in with the default credentials from the Server Overview page.

Configure Firewall Security

Secure your server by configuring the firewall to allow only necessary traffic before enabling SSL.

  1. Allow SSH connections.

    console
    $ sudo ufw allow OpenSSH
    
  2. Allow HTTP and HTTPS traffic for Nginx and Certbot.

    console
    $ sudo ufw allow 80/tcp
    $ sudo ufw allow 443/tcp
    
  3. Enable the firewall.

    console
    $ sudo ufw enable
    
  4. Verify firewall status.

    console
    $ sudo ufw status
    

    Port 3000 is used by Grafana's backend service before HTTPS is configured through Nginx. You will remove this rule after enabling SSL.

Configure Reverse Proxy with Nginx

Set up Nginx as a reverse proxy to serve Grafana over standard HTTP/HTTPS ports.

  1. Install the Nginx web server package.

    console
    $ sudo apt install nginx -y
    
  2. Create an Nginx virtual host configuration for Grafana.

    console
    $ sudo nano /etc/nginx/sites-available/grafana
    
    ini
    server {
        listen 80;
        server_name grafana.example.com;
    
        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_read_timeout 300;
            proxy_send_timeout 300;
        }
    }
    

    Replace grafana.example.com with your domain name.

    Save and close the file.

  3. Enable the Grafana server block.

    console
    $ sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
    
  4. Test the Nginx configuration syntax.

    console
    $ sudo nginx -t
    

    Output:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  5. Reload Nginx to apply the changes.

    console
    $ sudo systemctl reload nginx
    

Secure Grafana with SSL/TLS

Protect your Grafana instance with HTTPS using Let's Encrypt certificates via Certbot.

  1. Install Certbot and the Nginx plugin.

    console
    $ sudo apt install certbot python3-certbot-nginx -y
    
  2. Request an SSL certificate for your domain.

    console
    $ sudo certbot --nginx -d grafana.example.com
    

    Follow the prompts and select the option to redirect HTTP traffic to HTTPS when asked.

  3. Update Grafana configuration to use the domain URL.

    console
    $ sudo nano /etc/grafana/grafana.ini
    
  4. Update the following settings under the [server] section.

    ini
    [server]
    domain = grafana.example.com
    root_url = https://grafana.example.com/
    serve_from_sub_path = false
    

    Save and close the file.

  5. Restart Grafana to apply changes.

    console
    $ sudo systemctl restart grafana-server
    
  6. Verify SSL certificate auto-renewal.

    console
    $ sudo certbot renew --dry-run
    
  7. Access Grafana securely at https://grafana.example.com.

  8. Close direct port 3000 access now that traffic goes through the Nginx reverse proxy.

    console
    $ sudo ufw delete allow 3000/tcp
    

Configure Grafana

Set up data sources, configure authentication, and prepare Grafana for monitoring.

Update Grafana Configuration

  1. Edit the main Grafana configuration file.

    console
    $ sudo nano /etc/grafana/grafana.ini
    
  2. Configure important settings under relevant sections.

    ini
    [security]
    admin_user = admin
    disable_gravatar = true
    cookie_secure = true
    cookie_samesite = strict
    content_security_policy = true
    
    [users]
    allow_sign_up = false
    allow_org_create = false
    
    [auth.anonymous]
    enabled = false
    
    [snapshots]
    external_enabled = false
    

    Save and close the file.

    Note
    Avoid storing admin_password in the configuration file. Use grafana-cli admin reset-admin-password to set or rotate passwords securely.
  3. Restart Grafana to apply configuration changes.

    console
    $ sudo systemctl restart grafana-server
    

Add Data Sources

Configure data sources to visualize metrics from various systems.

  1. Log in to Grafana at https://grafana.example.com.

  2. Navigate to Connections > Data sources and click Add data source.

  3. Select Prometheus and configure:

    • Name: Prometheus
    • URL: http://localhost:9090
  4. Click Save & test to verify the connection.

    If Prometheus is remote, confirm firewall rules allow connections and verify the URL is correct.

Connect to Vultr Managed Database

Integrate Grafana with a Vultr Managed Database to store dashboard configurations and user data persistently.

  1. Deploy a Vultr Managed Database for MySQL from the Vultr Customer Portal.

  2. From the Managed Database dashboard, note the connection details.

  3. Configure Grafana to use MySQL via environment variables.

    console
    $ sudo nano /etc/default/grafana-server
    
    ini
    GF_DATABASE_TYPE=mysql
    GF_DATABASE_HOST=your-managed-db-host.vultr.com:16751
    GF_DATABASE_NAME=grafana
    GF_DATABASE_USER=vultradmin
    GF_DATABASE_PASSWORD=your_secure_password
    GF_DATABASE_SSL_MODE=require
    

    Replace the connection details with your Managed Database credentials.

    Save and close the file.

  4. Create the Grafana database in your MySQL instance.

    console
    $ mysql -h your-managed-db-host.vultr.com -P 16751 -u vultradmin -p
    

    Enter your password when prompted, then create the database:

    sql
    > CREATE DATABASE grafana CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    > EXIT;
    
  5. Restart Grafana to migrate to the new database.

    console
    $ sudo systemctl restart grafana-server
    

Explore Grafana Features

Learn to create dashboards, visualize data, and set up alerts for comprehensive monitoring.

Create a Dashboard

  1. From the Grafana home page, click Dashboards in the left sidebar.

  2. Click New and select New Dashboard.

  3. Click Add visualization.

  4. Select your data source (e.g., Prometheus).

  5. Configure the query panel:

    • For Prometheus, enter a query like rate(node_cpu_seconds_total[5m])
    • Select the visualization type (Time series, Graph, Gauge, etc.)
    • Customize the panel title and description
  6. Click Save dashboard.

Import Pre-built Dashboards

  1. Navigate to Dashboards > New > Import.

  2. Enter a dashboard ID from Grafana Dashboards:

    • Node Exporter Full: 1860
    • Docker and System Monitoring: 893
    • MySQL Overview: 7362
  3. Click Load, select your data source, and click Import.

Configure Alerts

Set up alert rules to receive notifications when metrics exceed thresholds.

  1. Open an existing dashboard panel or create a new one.

  2. Click the three dots next to the panel title and select Edit.

  3. Navigate to the Alert tab.

  4. Click New alert rule.

  5. Configure the alert:

    • Alert rule name: High CPU Usage
    • Condition: WHEN avg() OF query(A, 5m) IS ABOVE 80
    • Evaluate every: 1m
    • For: 5m
  6. Add notification channel:

    • Click Contact points in the sidebar
    • Add email, Slack, PagerDuty, or other notification methods
  7. Click Save to create the alert rule.

Manage Users and Teams

  1. From the Grafana home page, click Administration in the left sidebar.

  2. Select Users and access, followed by Users.

  3. You can add a new user here, or invite one by navigating to Organization users.

  4. Enter the user's email and assign a role:

    • Admin: Full control over Grafana
    • Editor: Can create and edit dashboards
    • Viewer: Read-only access
  5. Create teams for organized access control:

    • Navigate to Administration > Users and acess > Teams
    • Click New team
    • Add users to teams and assign dashboard permissions

Best Practices and Configuration

Implement these recommendations to ensure your Grafana instance runs securely and efficiently.

Security Hardening

  1. Disable anonymous access (already configured in grafana.ini).

  2. Use strong passwords and enable two-factor authentication.

    console
    $ sudo nano /etc/grafana/grafana.ini
    

    Under [auth] section:

    ini
    [auth]
    disable_login_form = false
    oauth_auto_login = false
    
  3. Limit admin privileges to necessary users only.

  4. Regularly update Grafana to the latest version.

    console
    $ sudo apt update
    $ sudo apt upgrade grafana
    
  5. Enable audit logging.

    ini
    [log]
    mode = console file
    level = info
    

Performance Optimization

  1. Configure query caching to reduce data source load.

    ini
    [caching]
    enabled = true
    
  2. Set appropriate data retention policies on data sources.

  3. Use dashboard variables for efficient query reuse.

  4. Limit the time range of queries to improve performance.

  5. Enable gzip compression for faster dashboard loading.

    ini
    [server]
    enable_gzip = true
    

Backup and Restore

  1. Back up Grafana's database (if using external database, use database backup tools).

  2. Export important dashboards as JSON:

    • Open a dashboard
    • Click the dashboard Settings (top right)
    • Select JSON Model
    • Copy and save the JSON
  3. Back up the Grafana configuration file.

    console
    $ sudo cp /etc/grafana/grafana.ini /etc/grafana/grafana.ini.backup
    

Troubleshooting

This section covers common issues and diagnostic commands to help resolve problems with your Grafana instance.

Check Service Status and Logs

  1. Verify service status and view logs.

    console
    $ sudo systemctl status grafana-server
    $ sudo journalctl -u grafana-server -e
    $ sudo tail -f /var/log/nginx/error.log
    

Common Issues

Cannot Connect to Data Source

  1. Verify the data source is running and accessible.

    console
    $ curl http://localhost:9090/api/v1/status/config  # For Prometheus
    
  2. Check firewall rules allow connections to the data source.

  3. Verify data source URL and credentials in Grafana settings.

Login Issues

  1. Reset the admin password.

    console
    $ sudo grafana-cli admin reset-admin-password newpassword
    
  2. Check authentication settings in /etc/grafana/grafana.ini.

Dashboard Not Loading

  1. Clear browser cache and reload.

  2. Check browser console for JavaScript errors.

  3. Verify data source queries are valid.

  4. Increase query timeout in Grafana settings.

High Memory Usage

  1. Reduce dashboard refresh intervals.

  2. Limit the number of panels per dashboard.

  3. Optimize data source queries.

  4. Increase server resources if necessary.

Use Cases

Grafana excels in various monitoring and visualization scenarios:

  • Infrastructure Monitoring: Visualize server metrics, CPU usage, memory consumption, and network traffic from tools like Prometheus, InfluxDB, or Telegraf.
  • Application Performance Monitoring: Track application metrics, response times, error rates, and throughput to identify performance bottlenecks.
  • Business Analytics: Create dashboards for business KPIs, sales metrics, and operational data from databases like MySQL, PostgreSQL, or Elasticsearch.
  • IoT Device Monitoring: Visualize sensor data, device health, and telemetry from IoT platforms and time-series databases.
  • Log Analysis: Integrate with Loki or Elasticsearch to visualize log patterns, error frequencies, and system events.
  • Cloud Resource Monitoring: Monitor AWS, Azure, or Google Cloud resources with native cloud data source plugins.

Conclusion

In this guide, you deployed Vultr's Grafana Marketplace Application and configured it for production use. You secured the instance with SSL/TLS through Nginx reverse proxy, configured firewall rules, connected data sources like Prometheus, and created monitoring dashboards with alerts. You also integrated with a Vultr Managed Database for persistent storage and implemented security best practices. With Grafana's powerful visualization capabilities and Vultr's infrastructure, you can build comprehensive monitoring solutions for infrastructure, applications, and business metrics.

Tags:

Comments