Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

E-Mail Benachrichtigung bei Offline Nodes #88

Open
kreativmonkey opened this issue Mar 6, 2018 · 7 comments
Open

E-Mail Benachrichtigung bei Offline Nodes #88

kreativmonkey opened this issue Mar 6, 2018 · 7 comments
Milestone

Comments

@kreativmonkey
Copy link
Member

Christoph wünscht sich das E-Mails verwesndet werden wenn Nodes offline gehen.

@kreativmonkey kreativmonkey added this to the v0.5 milestone Mar 6, 2018
@kreativmonkey
Copy link
Member Author

Fragen sammeln

Im Folgenden sollen fragen gesammelt werden die wir dann auf der Mailingliste diskutieren oder hier bearbeiten können.

Wann wird der Mailversand ausgelöst?

Es müssen Regeln definiert werden die den Mailversand nicht in eine Spamflut enden lassen. z.B. könnte man sagen wenn der Node länger als eine bestimmte Zeit offline ist gibt es eine Benachrichtigung. Außerdem ist zu klären ob auch eine Mail raus gehen soll wenn der Node wieder online ist.
Auch müssen wir uns überlegen ob man pro Node der Offline ist eine Mail bekommt (dann ist es im Betreff leicht kennzeichenbar) oder ob wir die Nodes die Offline gehen in eine Mail zusammen fassen.

Wartungsmodus

Die Benachrichtigungsfunktion sollte auch Abschaltbar sein und/oder auch an die Version des Nodes geknüpft werden können. Damit könnten wir dann für alte Versionen (wie aktuell der Fall) beim abschalten des Netzes in der Benachrichtigung direkt auf die aktuelle Version hinweisen. Oder wir machen es uns einfach und checken nur ob es die aktuelle Version ist, ansonsten gibt es ein Hinweis das der Node evtl. wegen veralteter Software offline ist.

Text/HTML Mail

  • Wie soll die Mail aussehen/aufgebaut sein?
  • Soll es eine HTML Version geben?
  • Text der Angezeigt wird und welche Informationen?

Opt In/Out?

  • Soll die Benachrichtigung grundsätzlich eingeschaltet oder ausgeschaltet sein?
  • Wo soll sie ein/ausgeschaltet werden?
    Es wäre z.B. möglich sie Zentral im Nutzerprofil ein oder aus zu schalten (dadurch greift es für alle Router) oder sie pro Router ein oder aus zu schalten. Evtl. wäre auch beides denkbar, dann kann man im Profil auswählen ob es standartmäßig aktiv oder inaktiv sein soll und im Node es für jeden Node separat wählen.

Speicherung

Zu guter Letzt wäre noch zu überlegen wie man das ganze dann umsetzt. Irgenwo muss ja abgespeichert sein das eine Mail rausgegangen ist damit nicht ständig wieder eine geschickt wird. Ich würde dem Node einfach ein Flag geben das eine Mail versendet wurde und über Lastseen (in der Datenbank hinterlegt) nach einer abgelaufenen Zeit eine Mail versenden, den Flag setzen und falls Lastseen sich ändert checken ob der Flag gesetzt ist und wieder löschen. Das wäre zumindest die schnelle Lösung die mir dazu einfällt!

@kreativmonkey
Copy link
Member Author

Da das Abrufen der Node Informationen via NodeJS, integriert in der Karte, nicht immer sauber funktioniert, ist eine eigene Implementierung angedacht. Als Programmiersprache könnte ich mir Python oder Go vorstellen. Go ist als kompilierte Sprache mein Favorit da es keine Abhängigkeiten benötigt und leicht auf den verschiedenen Systemen zum laufen zu bringen ist.

Skizze

Der Service sendet ein Packet an eine Multicast Adresse und bekommt von dort die Antworten der einzelnen Nodes. Die Informationen werden gesammelt und in einem JSON ausgegeben.

Überlegung

Entweder man setzt das System so um das es regelmäßige anfragen absetzt und die Antworten in ein JSON File schreibt oder die Daten werden in einen Key - Value Store angelegt und die JSON lässt sich dann über eine API abfragen oder zeitgesteuert generieren.

Informationen und Dokumentation:

@adlerweb
Copy link
Member

adlerweb commented Mar 8, 2018

IMO

Wann wird der Mailversand ausgelöst?

  • Knoten länger als 48 Stunden nicht erreichbar
  • Mehr als 50 % der anderen Knoten dieser Site sind noch erreichbar (aka. sicher, dass es kein allgemeines Site/Infra-Problem ist)
  • einmal Täglich als Digest

Wartungsmodus
Was Update angeht: Aus Erfahrung des letzten Versands stehen in der Web-Node-DB nicht viele sinnvolle Sachen. Dei meisten MACs sind veraltet oder falsch gewesen. Ich hatte den Versand über die Karte erledigt und die Web-DB nur für Knoten ohne Angabe genutzt.

Opt In/Out?
Opt-In. Ich denke ein verstehentlicher längerer Ausfall fällt den meisten Betreibern auch ohne Mail auf, das ist nur für einige Leute interessant, die viele Remote-Router betreuen. Da muss man nicht Andere ständig mit Mails nerven, das vergrault eher.

@adlerweb
Copy link
Member

adlerweb commented Mar 8, 2018

Skizze
Für Multicast brauchst du aber einene Server, der Verbindungen zu allen Sites und Sub-Sites hält...

@niyawe
Copy link
Contributor

niyawe commented Mar 13, 2018

Zusätzlich könnte man auch versuchen die IP-Adressen anzupingen

@kreativmonkey
Copy link
Member Author

Ja das mit dem Ping wäre natürlich auch noch ne Idee.... Sobald ich wieder Zeit habe will ich mir das mit Alfred aber nochmal genauer anschauen, evtl könnte man da ne nette API Schnittstelle bauen die die Router abfragt, die JSON vorhält und evtl auch nochmal nen PING macht oder so.

@GitNorb
Copy link

GitNorb commented Mar 31, 2018

Ich implementiere gerade das mit einem Python Skript als cronjob. Quelle ist das Kartenjson. Die Vorschläge hier arbeite ich ein. Wenn es fertig ist und ihr es für ausreichend empfindet, kann man das in die Seite einbauen.

https://github.com/GitNorb/ffmyk-offline-notifier

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants