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

297 lines
7.8 KiB
Markdown

# 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*