Skip to content

Odoo Server Monitoring & Uptime: Complete Guide

DeployMonkey Team · March 22, 2026 13 min read

Why Monitor Odoo?

Without monitoring, you discover problems when users complain. With monitoring, you discover problems before users notice. Odoo servers can fail silently: memory leaks, disk filling up, stuck crons, database bloat — all preventable with proper monitoring.

What to Monitor

MetricWarningCriticalTool
CPU usage>70%>90%htop, Prometheus
Memory usage>80%>95%free, node_exporter
Disk usage>80%>90%df, node_exporter
Odoo processNot runningN/Asystemd, monit
PostgreSQL connections>70% max>90% maxpg_stat_activity
HTTP response time>3s>10scurl, uptime checker
HTTP status5xxDown/web/health endpoint
SSL certificate<30 days<7 dayscertbot, checker
Backup successFailedMissing 24h+cron log, S3 check
Cron healthCron stuckMultiple stuckir_cron lastcall

Method 1: Simple Monitoring (Free)

Uptime Check with curl

#!/bin/bash
# /opt/scripts/health-check.sh
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8069/web/health)

if [ "$HTTP_CODE" != "200" ]; then
    echo "[$(date)] Odoo DOWN! HTTP $HTTP_CODE" >> /var/log/odoo-health.log
    # Send alert (email, Slack, PagerDuty)
    curl -X POST "$SLACK_WEBHOOK" \
        -d '{"text":"🔴 Odoo is DOWN! HTTP '"$HTTP_CODE"'"}'
    # Try restart
    systemctl restart odoo
fi

# Cron: every 5 minutes
# */5 * * * * /opt/scripts/health-check.sh

Disk & Memory Alerts

#!/bin/bash
# /opt/scripts/resource-check.sh
DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')
MEM_USAGE=$(free | awk '/Mem:/ {printf("%.0f", $3/$2 * 100)}')

if [ "$DISK_USAGE" -gt 85 ]; then
    curl -X POST "$SLACK_WEBHOOK" \
        -d '{"text":"⚠️ Disk usage at '"$DISK_USAGE"'%"}'
fi

if [ "$MEM_USAGE" -gt 90 ]; then
    curl -X POST "$SLACK_WEBHOOK" \
        -d '{"text":"⚠️ Memory usage at '"$MEM_USAGE"'%"}'
fi

Method 2: UptimeRobot (Free Tier)

# UptimeRobot.com — free for 50 monitors
# Add monitor:
# URL: https://your-odoo.com/web/health
# Type: HTTP
# Interval: 5 minutes
# Alert contacts: email, Slack, PagerDuty

# Also monitor:
# - SSL certificate expiry
# - Keyword check (response contains "ok")

Method 3: Prometheus + Grafana (Production)

# For serious production monitoring:

# Install node_exporter on Odoo server:
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xzf node_exporter-*.tar.gz
sudo mv node_exporter-*/node_exporter /usr/local/bin/

# node_exporter as systemd service:
# Exposes: CPU, memory, disk, network metrics
# Prometheus scrapes these metrics
# Grafana visualizes with dashboards

# PostgreSQL exporter:
# Monitors: connections, query times, table sizes, locks

# Alertmanager rules:
# - OdooDown: probe_success == 0 for 5m
# - HighCPU: cpu_usage > 90% for 10m
# - DiskFull: disk_usage > 90%
# - PostgresConnections: connections > 80% max

Method 4: Cloud Provider Monitoring

# Most cloud providers include basic monitoring:

# DigitalOcean: built-in CPU, memory, disk, bandwidth
# AWS CloudWatch: EC2 + RDS metrics
# Hetzner: Cloud Console metrics
# Vultr: built-in monitoring
# GCP: Cloud Monitoring

# Set up alerts at:
# CPU > 80% for 10 minutes
# Disk > 85%
# Memory > 90%

Log-Based Monitoring

# Monitor Odoo logs for errors:
# Approach 1: Simple grep + alert
tail -F /var/log/odoo/odoo.log | grep --line-buffered -i "error\|critical\|killed" | while read line; do
    curl -X POST "$SLACK_WEBHOOK" -d "{\"text\":\"🔴 Odoo error: $line\"}"
done

# Approach 2: Fail2ban for security
# Monitor /var/log/odoo/odoo.log for repeated login failures
# Auto-block IPs with too many failed attempts

Monitoring Checklist

  1. HTTP health check every 5 minutes
  2. SSL certificate expiry alert (30 days before)
  3. Disk usage alert at 80%
  4. Memory usage alert at 85%
  5. CPU sustained high alert at 80% for 10min
  6. PostgreSQL connection count monitoring
  7. Backup success verification daily
  8. Cron health check (lastcall freshness)
  9. Log monitoring for errors and security events
  10. Uptime dashboard for stakeholders

DeployMonkey

DeployMonkey includes built-in monitoring for all Odoo instances — health checks, resource monitoring, log analysis, cron health, and backup verification. The AI agent diagnoses issues and alerts you with the specific fix. Zero monitoring setup needed.