Mailcow
Monitor Mailcow container health, mail queues, and spam stats with Prometheus.
Contents
Set up Prometheus and Grafana to monitor your Mailcow server health and mail metrics.
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.