📊 Live Monitoring
htop # CPU/RAM/process 🔥
btop # prettier
iotop # disk I/O per process
nethogs # bandwidth per process
glances # all-in-one
sudo apt install glances
💾 Disk Full Crisis
# Quick check
df -h # which partition full
du -sh /var/log/* | sort -rh # log culprit
ncdu / # interactive
# Common culprits + fix
journalctl --disk-usage
sudo journalctl --vacuum-time=7d
# Old kernels
sudo apt autoremove --purge
# Docker leftover
docker system prune -af --volumes
# Apt cache
sudo apt clean
# Big logs
sudo truncate -s 0 /var/log/nginx/access.log
# Or rotate (better)
🔄 Log Rotation
sudo nano /etc/logrotate.d/myapp
/var/log/myapp/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
create 0640 deploy deploy
sharedscripts
postrotate
systemctl reload myapp >/dev/null 2>&1 || true
endscript
}
# Test
sudo logrotate -d /etc/logrotate.d/myapp
sudo logrotate -f /etc/logrotate.d/myapp # force run
🚨 Memory Leak Detection
# Top memory eaters
ps aux --sort=-%mem | head
# Per-process tracking
while true; do
ps -o pid,rss,cmd -p $(pgrep node)
sleep 60
done
# Tools
sudo apt install smem
smem -t -k
📡 Uptime Monitoring (External)
- UptimeRobot — 50 monitor free
- Better Stack (Better Uptime) — modern UI
- Hetrix Tools — server resource monitor too
- Uptime Kuma — self-hosted (Docker)
- Cronitor — cron job monitoring
🐳 Self-host Uptime Kuma
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:1
📧 Email Alert Setup
sudo apt install msmtp msmtp-mta -y
# /etc/msmtprc
defaults
auth on
tls on
tls_starttls on
logfile /var/log/msmtp.log
account gmail
host smtp.gmail.com
port 587
from you@gmail.com
user you@gmail.com
password app-password-here
account default : gmail
# Test
echo "Test alert" | mail -s "Server Alert" you@gmail.com
# Use in script
[ $DISK_USAGE -gt 90 ] && echo "Disk 90%+" | mail -s "URGENT" you@gmail.com
📈 Prometheus + Grafana (advanced)
# Quick setup with node_exporter
docker run -d --name node-exporter \
--net="host" \
--pid="host" \
prom/node-exporter
# Metrics: http://server-ip:9100/metrics
# Add to Prometheus → visualize in Grafana
📋 Maintenance Checklist
Daily:
- Uptime check (automated)
- Error log review
- DB backup verify
Weekly:
- Disk usage review
- Failed login attempts
- SSL expiry check
- OS security update
Monthly:
- Full backup test (restore!)
- Performance review
- Cost optimization
- Dependency update
Quarterly:
- Security audit
- Disaster recovery drill
- Document update
💾 Backup Strategy 3-2-1
- 3 copies of data
- 2 different media
- 1 offsite copy
# Daily local
/backup/db_*.sql.gz
# Weekly to S3
aws s3 sync /backup s3://my-backups/
# Test restore monthly!
# Untested backup = no backup
🎓 মূল কথা ⭐
Monitor + alert ছাড়া production = blind flying। UptimeRobot 5 min setup free। Daily backup + monthly restore test mandatory। Log rotation না হলে disk full disaster।