Set up Prometheus and Grafana to monitor your Mailcow server health and mail metrics.
Category: Mailcow
Enable Prometheus Metrics in Mailcow
sudo nano /opt/mailcow-dockerized/mailcow.conf
# Set:
WATCHDOG_VERBOSE=y
Mailcow’s watchdog-mailcow container exposes metrics on port 9099 by default.
Add Prometheus Scrape Config
# prometheus.yml
scrape_configs:
- job_name: 'mailcow'
static_configs:
- targets: ['your-mail-server-ip:9099']
metrics_path: /metrics
Install Grafana (Docker)
docker run -d --name grafana -p 3000:3000 -e GF_SECURITY_ADMIN_PASSWORD=yourpassword grafana/grafana-oss:latest
Key Metrics to Watch
- mailcow_container_up — container health per service
- mailcow_postfix_queue_size — mail queue depth
- mailcow_rspamd_spam_count — spam caught per hour
- System-level: CPU, memory, disk I/O via
node_exporter
Set Up Alerts
In Grafana, create alert rules for queue depth > 100, any container down, or disk usage > 80%. Configure notification channels (email, Slack, PagerDuty) under Alerting → Contact Points.