Files
ROMFASTSQL/oracle/standby-server-scripts/PROXMOX_NOTIFICATIONS_README.md
Marius b44e3c8f9b Oracle DR: Complete cleanup and restore scripts with Proxmox integration
- Remove outdated planning documents and implementation guides
- Update README with comprehensive DR procedures and monitoring
- Enhance rman_restore_from_zero.cmd with SPFILE creation and auto-start
- Add Proxmox monitoring and weekly test scripts
- Archive old implementation documentation

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-10-10 15:13:29 +03:00

7.8 KiB

Oracle DR Monitoring cu Notificări Proxmox Native

🎯 Overview

Sistem de monitorizare și alertare pentru Oracle DR care folosește sistemul nativ de notificări Proxmox (PVE::Notify) - același sistem folosit pentru alertele HA, backup-uri, etc.

Avantaje majore:

  • Zero configurare email - folosește setup-ul existent Proxmox
  • Scripturi autosuficiente - creează automat template-urile necesare
  • Notificări profesionale - HTML formatat, culori, grafice
  • Integrare completă - apare în Datacenter > Notifications
  • Flexibilitate maximă - schimbi destinația din GUI, nu din cod

📦 Componente

1. oracle-backup-monitor-proxmox.sh

Monitorizează backup-urile Oracle și trimite alerte când:

  • Backup FULL > 25 ore vechime
  • Backup CUMULATIVE > 7 ore vechime
  • Spațiu disk > 80% plin
  • Lipsesc backup-uri

2. weekly-dr-test-proxmox.sh

Rulează test DR complet automat:

  • Pornește VM-ul DR
  • Verifică mount NFS
  • Restaurează database
  • Validează datele
  • Cleanup și shutdown
  • Raport detaliat cu timeline

🚀 Instalare Rapidă (3 minute)

Pe Proxmox Host:

# 1. Copiază scripturile
mkdir -p /opt/scripts
cd /opt/scripts
wget https://your-repo/oracle-backup-monitor-proxmox.sh
wget https://your-repo/weekly-dr-test-proxmox.sh
chmod +x *.sh

# 2. Instalează dependențe (dacă nu există)
apt-get update
apt-get install -y jq dos2unix

# 3. Corectează line endings (dacă vin din Windows)
dos2unix /opt/scripts/*.sh

# 4. Instalează template-urile (AUTOMAT!)
/opt/scripts/oracle-backup-monitor-proxmox.sh --install
/opt/scripts/weekly-dr-test-proxmox.sh --install

# 5. Testează manual
/opt/scripts/oracle-backup-monitor-proxmox.sh
/opt/scripts/weekly-dr-test-proxmox.sh

# 6. Adaugă în cron
crontab -e
# Adaugă:
0 9 * * * /opt/scripts/oracle-backup-monitor-proxmox.sh
0 6 * * 6 /opt/scripts/weekly-dr-test-proxmox.sh

ATÂT! Nu mai trebuie să faci nimic!

📧 Cum Funcționează Notificările

Fluxul de notificare:

Script detectează problemă
    ↓
Creează JSON cu datele
    ↓
Apelează PVE::Notify
    ↓
Proxmox procesează template-ul Handlebars
    ↓
Trimite notificare conform config din GUI
    ↓
Primești email/webhook/etc

Ce primești:

Email pentru Backup Monitor:

Subject: Oracle Backup WARNING - pveelite

Oracle Backup Monitoring Alert
==============================
Severity: WARNING
Date: 2025-10-10 21:00:00
Status: WARNING

WARNINGS:
- FULL backup is 26 hours old (threshold: 25)

Backup Details:
- Total Backups: 15
- Total Size: 8.3 GB
- FULL Backup Age: 26 hours ⚠️
- CUMULATIVE Backup Age: 3 hours ✓
- Disk Usage: 45%

Email pentru DR Test (HTML):

DR Test Report

Conține:

  • Timeline vizual cu toate etapele
  • Metrici în card-uri colorate
  • Tabel cu detalii sistem
  • Evidențiere erori/warning-uri

🎨 Template-uri Handlebars

Scripturile creează automat 6 template-uri:

Pentru Backup Monitor:

  • oracle-backup-subject.txt.hbs - Subiect email
  • oracle-backup-body.txt.hbs - Corp text
  • oracle-backup-body.html.hbs - Corp HTML formatat

Pentru DR Test:

  • oracle-dr-test-subject.txt.hbs - Subiect email
  • oracle-dr-test-body.txt.hbs - Corp text
  • oracle-dr-test-body.html.hbs - Corp HTML cu timeline

Locație: /usr/share/pve-manager/templates/default/

🔧 Configurare Avansată (Opțional)

Matching Rules în Proxmox GUI

Poți crea reguli pentru a ruta notificările diferit:

  1. Datacenter > Notifications > Add > Matcher

  2. Exemplu 1: Trimite erorile către echipa on-call

Name: oracle-critical
Match field: severity equals error
Match field: type equals oracle-backup
Target: oncall-email
  1. Exemplu 2: Warning-uri doar în Slack
Name: oracle-warnings
Match field: severity equals warning
Match field: type contains oracle
Target: slack-webhook

Modificare Template-uri

Dacă vrei să personalizezi template-urile:

# Editează template-ul
nano /usr/share/pve-manager/templates/default/oracle-backup-body.html.hbs

# Adaugă câmpuri noi, schimbă culori, etc.
# Folosește sintaxa Handlebars: {{variable}}, {{#if condition}}, {{#each array}}

📊 Monitorizare și Debugging

Verifică template-urile:

ls -la /usr/share/pve-manager/templates/default/oracle-*

Vezi log-uri notificări:

# Log-uri Proxmox
journalctl -u pveproxy -f | grep notify

# Log-uri scripturi
tail -f /var/log/oracle-dr/*.log

Testează notificări manual:

# Forțează o alertă de test
echo "test" > /mnt/pve/oracle-backups/ROA/autobackup/test.BKP
./oracle-backup-monitor-proxmox.sh
rm /mnt/pve/oracle-backups/ROA/autobackup/test.BKP

🆚 Comparație cu Metode Clasice

Aspect Email Manual Webhook PVE::Notify
Configurare Complex (SMTP) Medium Zero
Template-uri În script În script Handlebars
Flexibilitate Hardcodat Hardcodat GUI Proxmox
Formatare Basic JSON HTML Rich
Maintenance Per script Per script Centralizat
Integrare Separată Separată Nativă

🔐 Securitate

  • Scripturile rulează local pe Proxmox (no remote execution)
  • Folosesc SSH keys pentru conectare la VM-uri
  • Template-urile sunt read-only pentru non-root
  • Notificările urmează security policy-ul Proxmox

🐛 Troubleshooting

Problemă: Nu primesc notificări

  1. Verifică dacă Proxmox trimite alte notificări:
# Test notificare Proxmox
pvesh create /nodes/$(hostname)/apt/update
# Ar trebui să primești notificare despre update
  1. Verifică template-urile:
ls /usr/share/pve-manager/templates/default/oracle-*
# Trebuie să existe 6 fișiere
  1. Verifică configurația notificări:
cat /etc/pve/notifications.cfg

Problemă: Template-uri nu se creează

# Rulează cu debug
bash -x ./oracle-backup-monitor-proxmox.sh --install

# Verifică permisiuni
ls -ld /usr/share/pve-manager/templates/default/

Problemă: Eroare PVE::Notify

# Verifică că perl modules sunt instalate
perl -e 'use PVE::Notify; print "OK\n"'

# Reinstalează dacă lipsesc
apt-get install --reinstall libpve-common-perl

📈 Metrici și KPIs

Scripturile raportează automat:

Backup Monitor:

  • Vârsta backup-urilor (ore)
  • Număr total backup-uri
  • Dimensiune totală (GB)
  • Utilizare disk (%)

DR Test:

  • Durata totală test (minute)
  • Timp restaurare (minute)
  • Număr tabele restaurate
  • Status fiecare etapă
  • Spațiu eliberat (GB)

🎉 Beneficii pentru Echipă

  1. Zero Training - folosește sistemul cunoscut Proxmox
  2. Zero Maintenance - nu trebuie actualizate credențiale email
  3. Consistență - toate alertele vin în același format
  4. Vizibilitate - apare în dashboard Proxmox
  5. Flexibilitate - schimbi destinatari din GUI instant

📝 Note Finale

  • Scripturile sunt idempotente - pot fi rulate oricând
  • Template-urile se creează doar dacă lipsesc
  • Notificările se trimit doar când sunt probleme (sau success pentru DR test)
  • Log-urile se păstrează local pentru audit

🤝 Suport

Pentru probleme sau întrebări:

  1. Verifică această documentație
  2. Verifică log-urile: /var/log/oracle-dr/
  3. Rulează cu --help pentru opțiuni

Dezvoltat pentru sistemul Oracle DR pe Proxmox Bazat pe pattern-ul ha-monitor.sh din Proxmox VE Versiune: 1.0 - Octombrie 2025