Abfrage ob Backup zwischen Servern stattgefunden hat

Begonnen von DerFrickler, 07 Mai 2015, 23:10:34

Vorheriges Thema - Nächstes Thema

DerFrickler

Hallo zusammen,

Der FileServer startet (falls nicht bereits aktiv) den BackupServer um 23:00 Uhr.. demnach
würde ich gerne jeden Tag um 23:05 folgende Abfrage durchführen:

wenn "FileServer" = present
und "BackupServer" NOT present

warte 5 Minuten und wiederhole die obige Abfrage (falls BackupServer während der Abfrage noch beim Hochfahren war)

falls der "BackupServer" dann immer noch NOT present ist, setze warning.ITInfrastruktur.Backup.failed auf "true"

Ob das Backup letztendlich stattgefunden hat ist auch mit BackupServer = present immer noch nicht zu 100% beantwortet, nur wenn der BackupServer nicht present war ist davon auszugehen das was schief gelaufen ist.

Was sollte man als Basis für eine Solche Abfrage nehmen? Ein "at"?

Gruß!

Otto123

Hallo,

watchdog oder DOIF - käme mir in den Sinn.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Tommy82

#2
Hi Frickler, die Idee gefällt mir, lasse mich heute zwar per Mail benachrichtigen ob das Backup gelaufen ist, das aber in Fhem abzubilden Find ich einen interessanten Ansatz

Watchdog oder doif könnte schon das Richtige sein, mir fehlt nur grade die Zeit mich damit weiter auseinanderzusetzen.

Ich wollte auch schon immer mal den Stromverbrauch meiner beiden Server in fhem abbilden aber auch da fehlt mir Gerade die Zeit zu
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Hollo

Ich mache sowas unabhängig von FHEM direkt auf meinem Server.

Dementsprechend würde ich das aber auch als Monitoring in FHEM andersherum machen:
- kein Presence auf den Backup-Server, der eh fast nie läuft
- Backup-Server setzt nach dem erfolgreichen Start aktiv einen Status/Dummy in FHEM
- Backup-Server setzt nach dem erfolgreichen oder auch misslungenen Backup (exit-/Returncode) aktiv einen entsprechenden Status/Dummy in FHEM

Damit hättet Ihr die Rückmeldung, ob die Kiste läuft und ob das Backup erfolgreich war.   ;D
 
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Tommy82

Die Rückmeldung ob der Server läuft hole ich mir über das WOL Modul und schalte darüber einen dummy

Nur ob das Backup gelaufen ist weiß man ja dann immer noch nicht
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

DerFrickler

Noch mal zusammenfassend, bei mir erfolgt kein Backup der FHEM Konfiguration... FHEM warnt mich lediglich wenn gewisse Dinge an meiner IT-Infrastruktur merkwürdig erscheinen.

Die folgende Situation stellt eine dieser Merkwürdigkeiten dar:

1. Ich habe einen File-Server den ich von FHEM aus über WOL starten kann
2. Ich habe einen Backup-Server den ich auch von FHEM aus starten kann; der Backup-Server dient dem File-Server zu Sicherungszwecken und wird nur dann aktiv wenn der File-Server eine Datensicherung durchführen will; der Backup-Server kann auch vom File-Server über WOL und cron job aus gestartet werden.

Der File-Server ist nicht durchgehend aktiv, falls nachts kein Client mehr aktiv ist fährt der Server nachts runter.

Ist der File-Server aber aktiv, dann startet dieser um 23:00 den Backup-Server zwecks Datensicherung. Fährt der File-Server dann irgendwann runter, wird das vom Backup-Server registriert und dieser kann dann auch runter fahren.

Anmerkung: Ein Hardcore Server Fetischist würde jetzt sagen dass ein Server einen 24/7 Betrieb haben sollte, nur benötige ich den Server nicht im 24/7 Betrieb... insbesondere nicht wenn ich in der Woche auf Dienstreise bin.

Davon ausgehend dass die Konfiguration des Backup-Servers recht schlank ist, gehe ich mal davon aus das dieser gegen 23:05 so weit ist um auf ein Ping zu reagieren. Deshalb auch die erste Abfrage um 23:05. Die Datensicherung findet im Zeitraum zwischen 23:00 und 0:00 statt.

D.h., ist der File-Server um 23:05 aktiv, sollte der Backup-Server auch aktiv sein, spätestens aber dann um 23:10. Deshalb auch im negativ Fall um 23:05 eine weiter Abfrage 5 Minuten später.

Fällt diese dann auch negativ aus (File-Server present UND Backup-Server absent), kann ich davon ausgehen dass irgendwo ein Problem vorliegt. Das kann am Server selbst liegen, möglicherweise aber auch am Switch oder der Datenleitung.

Natürlich ist eine positive Abfrage kein Garant für eine erfolgreiche Datensicherung, aber die Fehlermeldung immerhin eine Indikation für Probleme. Was dann am Ende schief gelaufen ist muss dann schlimmstenfalls in detektivischer Kleinarbeit ermittelt werden.

Nichtsdestotrotz sollte dann vom Alarm Modul eine Fehlermitteilung via Mail generiert werden.

Die Überwachung kam mir gestern in den Sinn als ich feststellen musste dass der File-Server mir einen Alarm mitteilte dass keine Datensicherung durchgeführt wurde. Leider gab es keine Möglichkeit im File-Server diesen Alarm als Mailtrigger zu nutzen, deshalb der Umweg über FHEM. So ganz nebenbei, die letzte Datensicherung hat am 29.04. stattgefunden.

Gruß!

Tommy82

Also so ähnlich werkeln meine zwei Server auch. Backup läuft nur zu sicherungszeiten, File Server bei Bedarf. Sicherung lasse ich über ein robocoby Skript laufen, welches mich auch per Mail benachrichtigt. Aber eine Anfrage über fhem würde mir auch gefallen auch wenn ich nicht wüsste wie das gehen soll, außer ob der Server zur Zeit X an war
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

DerFrickler

elegant währe natürlich auch die Variante von Hollo, wenn der File-Server / Backup-Server selbst eine Notification in FHEM erzeugen könnte (setzen von Dummy-Flag). Das könnte man nutzen um andere Daten aus dem Server in FHEM sichtbar zu machen. Leider ist die Replikation (Datensicherung) eine der Funktionen die ich nicht über eine Cron Job anstosse, wodurch mir die Möglichkeit fehlt auf irgendwelche Ergebnisse der Datensicherung zu reagieren.

Nur am Ende vom Tag wird es sicherlich auch dabei auf ein DOIF hinauslaufen.

in etwa so...
define verifyBackup DOIF ([FileServer] eq "present" AND [BackupServer] ne "present") (fhem("set warning.ITInfrastruktur.Backup.failed on"))

jetzt fehlt nur noch der zeitliche Rahmen...

Hollo

Legt doch einen Dummy Backup an.
Der Status wird dann per wget vom Backup-Server gesetzt.
Zum Beispiel auf AUS, AN, Aktiv, Erfolgreich oder Fehler.
Darauf kann man dann per notify oder watchdog reagieren.

Das ist besser und vielseitiger als nur presence.

Ähnlich mache ich das mit meiner dBox für Betrieb und standby.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

DerFrickler

ob ich den Status jetzt present oder AN/AUS nenne sollte erst mal keine Rolle spielen. Hier geht es

1. darum dass der Backup-Server nicht aktiv ist und damit auch kein event generieren kann

2. dass der Zeitraum eine wesentliche Rolle spielt.

         Sollte der Backup-Server vor 23:00 bzw. nach 0:00 aktiv sein ist das vollkommen nebensächlich.
         Wichtig ist der Zeitraum zwischen 23:00 und 0:00

Natürlich kann man durchaus Aktionen beim Start und beim Herunterfahren triggern und dann den Status dann vom Server selbst setzen lassen.

Ein Notify würde dabei rausfallen, da der Server natürlich auch zu Aktualisierungs-Zwecke durchaus auch vor dem relevanten Zeitraum aktiv sein kann. Mit Watchdog müsste ich mich erst noch mal beschäftigen.

Ansonsten währe mir eine Kombination aus "at" (um den Zeitfaktor einzubringen) und dem DOIF (um die Kombination der Stati einzubringen) ganz recht gewesen.

wenn man das notify mit einbringen wollte dann möglicherweise so:

notify auf Flag Backup-Server und notify auf Flag File-Server

mit dem event wird dann ein dummy Flag Namens (z.B.) Server, mit den Werten: NONE, FILE, BACKUP, BOTH gesetzt

und dann

Alternative a) ein "at", welches um 23:00 bis 0:00 das Flag Server überprüft

Alternative b) ein watchdog was dann "muss ich mich erst noch mit beschäftigen" überprüft

beim Status FILE ist dann nur der File-Server aktiv und ein Alarm wird ausgelöst.

das könnte so klappen, ich werde es dann mal nach der Reparatur des Backup-Servers mal testen... der Server selbst hat jetzt höhere Priorität!

Vielen Dank Euch allen!

DerFrickler

Zitat von: Hollo am 08 Mai 2015, 22:15:27
Der Status wird dann per wget vom Backup-Server gesetzt.

wie funktioniert das mit dem Status setzen über wget? Das währe sicherlich interessant für andere Daten die man so loggen könnte.

Gruß!

Hollo

Du machst z.B. in Dein Backup-Script auf dem Backup-Server einen Eintrag der Art
wget -O /dev/null "http://<fhemip>:8083/fhem?cmd.Backup=set%20Backup%20Aktiv" wenn das Script startet und einen der Art wget -O /dev/null "http://<fhemip>:8083/fhem?cmd.Backup=set%20Backup%20Erfolgreich" wenn es korrekt bis zum Ende durchgelaufen ist.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

DerFrickler

Zitat von: Hollo am 08 Mai 2015, 23:39:18
Du machst z.B. in Dein Backup-Script auf dem Backup-Server einen Eintrag der Art
wget -O /dev/null "http://<fhemip>:8083/fhem?cmd.Backup=set%20Backup%20Aktiv" wenn das Script startet und einen der Art wget -O /dev/null "http://<fhemip>:8083/fhem?cmd.Backup=set%20Backup%20Erfolgreich" wenn es korrekt bis zum Ende durchgelaufen ist.

wie bringe ich hier User-Name und Passwort mit rein?

Hollo

#13
Probier es doch mal mit user und password.   8)
wget -O /dev/null "http://<fhemip>:8083/fhem?cmd.Backup=set%20Backup%20Aktiv" --user=USER --password=GEHEIM --auth-no-challenge
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

DerFrickler

genau das habe ich ja probiert....

gemäß Deinem Syntax (natürlich für USER und GEHEIM die richtigen login Daten versehen und xxx durch die richtige IP ersetzt):

wget -O /dev/null "http://xxx:8083/fhem?cmd.test=set%20test%20aktiv" —user=USER —password=GEHEIM —auth-no-challenge

habe ich versucht den Dummy test auf aktiv zu setzen, leider mit folgendem Ergebnis (so ganz nebenbei, es handelt sich beim File-Server um ein FreeBSD(FreeNAS)-System)

converted 'http://xxx:8083/fhem?cmd.Test=set%20Test%20Aktiv' (US-ASCII) -> 'http://xxx:8083/fhem?cmd.Test=set Test Aktiv' (UTF-8)
--2015-05-17 16:31:00--  http://xxx:8083/fhem?cmd.test=set%20test%20aktiv
Connecting to xxx:8083... connected.
HTTP request sent, awaiting response... 401 Authorization Required

Username/Password Authentication Failed.
--2015-05-17 16:31:00--  http://xxx:8083/fhem?cmd.test=set%20test%20aktiv
Reusing existing connection to xxx:8083.
HTTP request sent, awaiting response... 401 Authorization Required

Username/Password Authentication Failed.
Incomplete or invalid multibyte sequence encountered
converted 'http://—user=USER' (US-ASCII) -> 'http://—user=USER' (UTF-8)
Incomplete or invalid multibyte sequence encountered
converted '—user=USER' (US-ASCII) -> '—user=USER' (UTF-8)
--2015-05-17 16:31:00--  http://%E2%80%94user=USER/
idn_decode failed (9): 'System iconv failed'
Resolving \342\200\224user=USER... failed: hostname nor servname provided, or not known.
wget: unable to resolve host address '\342\200\224user=USER'
Incomplete or invalid multibyte sequence encountered
converted 'http://—password=GEHEIM' (US-ASCII) -> 'http://—password=GEHEIM' (UTF-8)
Incomplete or invalid multibyte sequence encountered
converted '—password=GEHEIM' (US-ASCII) -> '—password=GEHEIM' (UTF-8)
--2015-05-17 16:31:00--  http://%E2%80%94password=GEHEIM/
idn_decode failed (9): 'System iconv failed'
Resolving \342\200\224password=GEHEIM... failed: hostname nor servname provided, or not known.
wget: unable to resolve host address '\342\200\224password=GEHEIM'
Incomplete or invalid multibyte sequence encountered
converted 'http://—auth-no-challenge' (US-ASCII) -> 'http://—auth-no-challenge' (UTF-8)
Incomplete or invalid multibyte sequence encountered
converted '—auth-no-challenge' (US-ASCII) -> '—auth-no-challenge' (UTF-8)
--2015-05-17 16:31:00--  http://%E2%80%94auth-no-challenge/
idn_decode failed (9): 'System iconv failed'
Resolving \342\200\224auth-no-challenge... failed: hostname nor servname provided, or not known.
wget: unable to resolve host address '\342\200\224auth-no-challenge'
/mnt/Daten/Systemdienste/test.sh: cannot create : No such file or directory
/mnt/Daten/Systemdienste/test.sh: cannot create : No such file or directory


Die Mitteilungen bezüglich des nicht erfolgten Backups bekomme ich mittlerweile vom FreeNAS per Mail, nur ergeben sich durch das direkte Schreiben von Daten gewisse Möglichkeiten die man durchaus in Zukunft noch nutzen kann.