Skip to content

Monitoring

Muhammed Mustafa AKSAM edited this page Dec 14, 2025 · 1 revision

πŸ“ˆ Monitoring

Monitor your media server stack with logging, metrics, and uptime tracking.


Overview

App Description Port
Grafana Visual monitoring dashboard 3001
Prometheus Systems and service monitoring 9090
Dozzle Real-time log viewer for Docker 8888
Uptime Kuma Self-hosted monitoring tool 3001

Grafana

Visual monitoring dashboard - Create beautiful dashboards from metrics.

Features

  • πŸ“Š Customizable dashboards
  • πŸ“ˆ Multiple data sources
  • πŸ”” Alerting
  • πŸ‘₯ Multi-user support
  • πŸ“± Mobile-friendly

Configuration

Port: 3001
Data: /var/lib/grafana

Initial Setup

  1. Access Grafana at http://localhost:3001
  2. Login: admin / admin
  3. Change password when prompted
  4. Add data sources

Data Sources

Common data sources for media servers:

Source Type Port
Prometheus prometheus 9090
InfluxDB influxdb 8086
Loki loki 3100

Useful Dashboards

Import community dashboards from grafana.com/grafana/dashboards:

  • Docker Monitoring - ID: 893
  • Node Exporter - ID: 1860
  • Traefik - ID: 4475

Homepage Widget

widget:
  type: grafana
  url: http://grafana:3001
  username: admin
  password: ${PASSWORD_GRAFANA}

Prometheus

Time-series metrics database - Collects and stores metrics.

Features

  • πŸ“Š Time-series database
  • πŸ” PromQL query language
  • πŸ”” Alerting rules
  • πŸ“‘ Pull-based collection
  • πŸ”Œ Extensive exporters

Configuration

Port: 9090
Data: /prometheus

Prometheus Configuration

Create prometheus.yml:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]

  - job_name: "docker"
    static_configs:
      - targets: ["host.docker.internal:9323"]

  - job_name: "node"
    static_configs:
      - targets: ["node-exporter:9100"]

Exporters

Add exporters to collect metrics:

Exporter Metrics Port
Node Exporter Host metrics 9100
cAdvisor Container metrics 8080
Traefik Traefik metrics 8082

Dozzle

Real-time Docker log viewer - View container logs in your browser.

Features

  • πŸ“œ Real-time log streaming
  • πŸ” Search and filter
  • 🐳 Multi-container support
  • 🎨 Syntax highlighting
  • πŸ“± Mobile-friendly

Configuration

Port: 8888
Docker: /var/run/docker.sock

Usage

  1. Access Dozzle at http://localhost:8888
  2. Select container from sidebar
  3. View logs in real-time
  4. Use search to filter

Features

  • Filter by level: Error, warning, info
  • Multiple containers: View logs side-by-side
  • Download logs: Export for analysis
  • Regex search: Advanced filtering

Uptime Kuma

Self-hosted monitoring tool - Monitor uptime and get notifications.

Features

  • βœ… HTTP(s), TCP, Ping monitoring
  • πŸ”” Multiple notification channels
  • πŸ“Š Uptime statistics
  • 🎨 Status pages
  • 🐳 Docker monitoring

Configuration

Port: 3001
Data: /app/data
Docker: /var/run/docker.sock

Initial Setup

  1. Access Uptime Kuma at http://localhost:3001
  2. Create admin account
  3. Add monitors for your services
  4. Configure notifications

Monitor Types

Type Use Case
HTTP(s) Web services
TCP Port availability
Ping Host availability
Docker Container status
Database MySQL, PostgreSQL, etc.

Monitoring Your Stack

Add monitors for all your services:

http://radarr:7878 - Radarr
http://sonarr:8989 - Sonarr
http://prowlarr:9696 - Prowlarr
http://jellyfin:8096 - Jellyfin

Homepage Widget

widget:
  type: uptimekuma
  url: http://uptime-kuma:3001
  slug: mediastack # Your status page slug

Status Pages

Create public status pages:

  1. Go to Status Pages
  2. Click + New Status Page
  3. Add monitors
  4. Share the URL

πŸ”§ Monitoring Stack Setup

Recommended Stack

For comprehensive monitoring:

  1. Prometheus - Metrics collection
  2. Grafana - Visualization
  3. Uptime Kuma - Uptime monitoring
  4. Dozzle - Log viewing

Docker Metrics

Enable Docker metrics for Prometheus:

  1. Edit /etc/docker/daemon.json:
    {
      "metrics-addr": "0.0.0.0:9323"
    }
  2. Restart Docker
  3. Add target to Prometheus

Alert Examples

Prometheus Alerting Rules

groups:
  - name: containers
    rules:
      - alert: ContainerDown
        expr: absent(container_last_seen{name="radarr"})
        for: 5m
        labels:
          severity: critical

Uptime Kuma Notifications

Supported channels:

  • Discord
  • Slack
  • Telegram
  • Email
  • Pushover
  • And 50+ more

πŸ“Š Metrics to Monitor

Container Metrics

Metric Description
CPU usage Container CPU consumption
Memory usage Container RAM usage
Network I/O Ingress/egress traffic
Disk I/O Read/write operations

Application Metrics

App Key Metrics
*arr apps Queue size, disk space
qBittorrent Active torrents, speeds
Plex/Jellyfin Active streams
Traefik Request rate, errors

Host Metrics

Metric Description
Disk space Available storage
Load average System load
Network Bandwidth usage
Temperature CPU/GPU temp

πŸ”— Related

Clone this wiki locally