# 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: ```bash # 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](https://example.com/dr-test-email.png) 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 ``` 3. **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: ```bash # 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: ```bash ls -la /usr/share/pve-manager/templates/default/oracle-* ``` ### Vezi log-uri notificări: ```bash # Log-uri Proxmox journalctl -u pveproxy -f | grep notify # Log-uri scripturi tail -f /var/log/oracle-dr/*.log ``` ### Testează notificări manual: ```bash # 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: ```bash # Test notificare Proxmox pvesh create /nodes/$(hostname)/apt/update # Ar trebui să primești notificare despre update ``` 2. Verifică template-urile: ```bash ls /usr/share/pve-manager/templates/default/oracle-* # Trebuie să existe 6 fișiere ``` 3. Verifică configurația notificări: ```bash cat /etc/pve/notifications.cfg ``` ### Problemă: Template-uri nu se creează ```bash # 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 ```bash # 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*