feat(ups): monitorizare UPS pe serverul 36, in locul ViewPower
ViewPower nu putea dialoga cu acest UPS: 5777 de "QPI return(NAK" si zero citiri reusite in fereastra 6-10 august, pentru ca UPS-ul vorbeste HID Power Device standard, nu dialectul text Voltronic. Serviciile au fost dezactivate pe 10.08.2026 la 22:34, lasand serverul fara nicio alertare 17 zile. Nici inainte nu exista: emailReceivers = 0, iar excuteProgram era gol, deci Oracle nu era oprit curat oricum. UPS-ul comunica insa perfect cu Windows pe canalul HID - dovedit de perechile de evenimente Kernel-Power 105 la panele reale din 2026. Monitorul nou citeste GetSystemPowerStatus, acelasi semnal pe care il foloseste Windows pentru propria actiune la baterie critica. Alerteaza pe email la trecerea pe baterie, la revenirea curentului si cand UPS-ul nu mai comunica - cazul care a trecut neobservat. Opreste curat listenerul, apoi instanta cu shutdown immediate, apoi Windows-ul, inaintea pragului brutal de 20% al Windows-ului. Ruleaza ca task programat sub SYSTEM, cu AllowStartIfOnBatteries si DontStopIfGoingOnBatteries - fara ele Windows ar fi oprit taskul exact cand serverul trece pe baterie. Validat pe 27.08.2026: citire, email, secventa de oprire in dry-run si pierderea comunicatiei (alerta la exact 8 cicluri, apoi revenire). Pragurile de 10 min / 35% sunt conservatoare, nu masurate - testul de autonomie reala ramane de facut. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
This commit is contained in:
30
scripts/ups-monitor/README.md
Normal file
30
scripts/ups-monitor/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# ups-monitor — monitorizare UPS pentru serverul Oracle de producție (10.0.20.36)
|
||||
|
||||
Înlocuiește ViewPower, care nu putea dialoga cu acest UPS. Citește starea alimentării prin
|
||||
`GetSystemPowerStatus` (canalul HID nativ Windows), alertează pe email și oprește curat Oracle
|
||||
înainte de epuizarea bateriei.
|
||||
|
||||
**Documentația completă — diagnostic, praguri, operare, capcane:**
|
||||
[`docs/ups-server36-monitorizare.md`](../../docs/ups-server36-monitorizare.md)
|
||||
|
||||
| Fișier | Rol |
|
||||
|---|---|
|
||||
| `ups-monitor.ps1` | monitorul: buclă + modurile `Status`, `TestMail`, `TestShutdown`, `Once` |
|
||||
| `install-ups-monitor.ps1` | instalare pe server: copiere, `config.json`, ACL, task programat |
|
||||
| `config.example.json` | șablon de configurare |
|
||||
|
||||
`config.json` real trăiește **doar pe server** (`C:\ROMFAST\ups-monitor\`), cu ACL restrâns —
|
||||
conține parola SMTP și nu se comite.
|
||||
|
||||
## Livrare
|
||||
|
||||
```powershell
|
||||
scp -P 22122 ups-monitor.ps1 install-ups-monitor.ps1 Administrator@10.0.20.36:'C:/ROMFAST/_deploy/'
|
||||
ssh -p 22122 Administrator@10.0.20.36 "powershell -ExecutionPolicy Bypass -File C:\ROMFAST\_deploy\install-ups-monitor.ps1 -SmtpPassword ..."
|
||||
```
|
||||
|
||||
Înainte de livrare, verificarea de sintaxă pentru PowerShell 5.1 (ținta de pe server):
|
||||
|
||||
```powershell
|
||||
$e=$null; [System.Management.Automation.PSParser]::Tokenize((Get-Content ups-monitor.ps1 -Raw), [ref]$e); $e
|
||||
```
|
||||
Reference in New Issue
Block a user