Statusanzeige

Markus_Hav

New Member
Hallo,

aktuell bin ich auf der Suche nach einem Skript oder einem Angebot zur Erstellung eines solchen, das mir folgendes ermöglicht.

- Auswahllbox, welcher Server angezeigt werden soll
- abhängig von obiger Auswahl Anzeige der Stati der Dienste auf dem ausgewähllten Server. ( sagen wir mal 5 Dienste ) ( grünes Icon / rotes Icon )
- zu jedem Status einen Link "History", welcher die letzten Statusänderungen mit jeweiliger Dauer anzeigt.
- Es muss für den Admin leicht möglich sein, weitere Server hinzuzufügen.

Welches Budget erachtet Ihr für notwendig oder kennt Ihr ein Skript, auf dessen Grundlage sich dies realisieren liesse?

Freundliche Grüße,

Markus
 
Hmm Grundgedanken zur Realisierung waeren:

[SETUP]
- auf jedem Server laeuft eine MemcacheDB Instanz
- auf einem zentralen Server ist eine MySQL-Instanz (HA nicht notwendig!)

[Selbst-Kontrolle]
- jeder Server kontrolliert alle X Sekunden seine eigenen Dienste und startet sie bei Unerreichbarkeit neu. (Wie kontrolliert wird haengt vom Dienst ab)
- der aktuelle Status wird in MemcacheDB gespeichert
- der Status wird in eine zentrale MySQL-Datenbank sowie lokal in eine sqlite-Datenbank gespeichert
(Somit kann wenn der zentrale Server ausgefallen ist die History im Nachhinein wieder eingespielt werden)

[Gegeinseitige Kontrolle]
- jeder Server waehlt eine Zufallszahl zwischen 1 und 10000) (10 Sekunden zu je 1000 Millisekunden)
- nach dieser Zeit versucht er ein "Lock" in MemcacheDB zu setzen
- Sollte seine Server-ID beim anschliessenden Lese-Zugriff auf den Lock drin stehen geht er weiter, ansonsten bricht er ab (ein anderer Server hat ihn bereits uebernommen)
- Verbindungstest auf alle Dienste der remote Machine (DIenste werden aus MemcacheDB ausgelesen)
- Wenn der Server erreichbar ist, entsprechende Notiz in den Datenbanken hinterlegen (wie bei Selbst-Kontrolle)
- Ansonsten den Server als unavailable markieren und in der eigenen Datenbank den getesteten Server als fuer 2 Durchlaeufe als 'untestbar' markieren
(Dies soll sicherstellen dass nicht ein Routingproblem zwischen beiden Server fuer Probleme sorgt)
- Wenn es bereits der 3. Durchlauf ist, das Reset-Interface des Providers aufrufen und ein Reset durchfuehren (sofern verfuegbar)

[Anzeige]
Einfaches Query der MemcacheDB fuer den aktuellsten Status und fuer die History MySQL


[N.B.]
Warum MemcacheDB?
Einfach zu deployen, gute Synchronisierung, stabil


Ob es bereits eine entsprechende Loesung gibt entzieht sich meiner Kenntniss, allerdings bastele ich (langsam aber sicher) an einer wie oben beschriebenen Softwareloesung welche ausserdem Informationen wie Bandbreite, CPU, Load, RAM, ... mitloggt. Bei Interesse kannst du dich ja melden, ich plane diese opensource dual-licensed mit der CC BY-NC-SA zu releasen.
 
Was spricht gegen (z.B.) Nagios? Das erfüllt eigentlich alle deine Anforderungen - falls die dir Oberfläche nicht gefällt kannst du da ja was selber basteln...

Grüße Johannes
 
Back
Top