Docs / Monitoring & Logging / Centralized Logging with Loki and Grafana

Centralized Logging with Loki and Grafana

By Admin · Feb 1, 2026 · Updated Apr 24, 2026 · 4 views · 4 min read

Managing loki effectively is a crucial skill for any system administrator. This tutorial provides step-by-step instructions for grafana configuration, along with best practices for production environments.

Prerequisites

  • Docker installed (for containerized monitoring)
  • A registered domain name (for public-facing services)
  • A VPS running Ubuntu 22.04 or later (2GB+ RAM recommended)
  • Open ports: 3000 (Grafana), 9090 (Prometheus)
  • Root or sudo access to the server

Stack Installation

Regular maintenance is essential for keeping your loki installation running smoothly. Schedule periodic reviews of log files, disk usage, and security updates to prevent issues before they occur.


# docker-compose.yml for monitoring stack
version: '3.8'
services:
  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    ports:
      - "9090:9090"
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    volumes:
      - grafana_data:/var/lib/grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=changeme
    restart: unless-stopped

volumes:
  prometheus_data:
  grafana_data:

Each line in the configuration serves a specific purpose. The comments explain the reasoning behind each setting, making it easier to customize for your specific use case.

Dashboard Configuration

Security should be a primary consideration when configuring loki. Always use strong passwords, keep software updated, and restrict network access to only the necessary ports and IP addresses.


# prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']
  - job_name: 'loki'
    static_configs:
      - targets: ['localhost:9090']

Each line in the configuration serves a specific purpose. The comments explain the reasoning behind each setting, making it easier to customize for your specific use case.

Performance Considerations

Security should be a primary consideration when configuring loki. Always use strong passwords, keep software updated, and restrict network access to only the necessary ports and IP addresses.

  • Maintain runbooks for common operations
  • Use version control for configuration files
  • Test disaster recovery procedures regularly
  • Document all configuration changes
  • Set up monitoring before going to production

Alert Rule Setup

Security should be a primary consideration when configuring loki. Always use strong passwords, keep software updated, and restrict network access to only the necessary ports and IP addresses.


# docker-compose.yml for monitoring stack
version: '3.8'
services:
  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    ports:
      - "9090:9090"
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    volumes:
      - grafana_data:/var/lib/grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=changeme
    restart: unless-stopped

volumes:
  prometheus_data:
  grafana_data:

The configuration above sets the recommended values for a VPS with 2-4GB of RAM. Adjust the memory-related settings proportionally if your server has different specifications.

Data Retention

If you encounter issues during setup, check the system logs first. Most problems can be diagnosed by examining the output of journalctl or the application-specific log files in /var/log/.


# prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']
  - job_name: 'loki'
    static_configs:
      - targets: ['localhost:9090']

Note that file paths may vary depending on your Linux distribution. The examples here are for Debian/Ubuntu; adjust paths accordingly for RHEL/CentOS-based systems.

Security Implications

Regular maintenance is essential for keeping your loki installation running smoothly. Schedule periodic reviews of log files, disk usage, and security updates to prevent issues before they occur.

  • Use strong, unique passwords for all services
  • Set up fail2ban for brute force protection
  • Enable firewall and allow only necessary ports

Common Issues and Solutions

  • Service won't start: Check the logs with journalctl -xe -u loki. Common causes include port conflicts, missing configuration files, or insufficient permissions.
  • Permission denied errors: Ensure files and directories have the correct ownership. Use chown -R to fix ownership and chmod for permissions.

Summary

You've successfully configured loki on your VPS. Remember to monitor performance, keep your software updated, and maintain regular backups. If you run into issues, consult the official documentation or open a support ticket for assistance.

Was this article helpful?