PC-Überwachung

Sc0rc3d

Commander
Registriert
Mai 2005
Beiträge
3.019
Hi,

wir haben bei uns im Keller derzeit 15 (ältere) Computer zu stehen die an
Projekten wie BOINC arbeiten. Leider kommt es immer mal wieder vor das
ein der Rechner ausfällt (Absturz, Bluescreen etc). Was auch nicht schlimm
ist, da man 'nur' kurz in den Keller muss, um diesen neu zu starten.

Da ich eh einen RaspberryPI im Keller habe würde ich diesen gern zur
Überwachung bzw. Erreichbarkeitsüberwachung der Rechner einsetzen.
Ich wollte es eigentlich ein PHP-Script schreiben was die Rechner anpingt,
um zu testen, ob diese 'am Leben' sind. Was mit einem bis zwei Rechner
noch gut geht, wird bei 15 Rechnern schon etwas langwierig (Ladezeit).

Wäre es möglich dies über ein Shellscript umzusetzen, was dann wiederum
über PHP ausgelesen wird, um somit die Daten über den Webserver abzurufen?
Oder hättet ihr da andere Ideen?

Gruß & Danke
Sc0rc3d
 
vielleicht wäre "omd check_mk" was.
Ich habe das ganze in einer demo gesehen, sah auf den ersten Blick recht ordentlich aus.
Soweit ich weiß ist das nagios basierend und für den raspberry pi optimiert.
 
Grundsätzlich eine gut Idee ich möchte aber auf dem Clienten nichts installieren.
Darüber hinaus ist das schon etwas Überladen. :)
 
ich wüsste nicht das man beim checkmk was auf den clients installieren muss.
Ansonsten gibts da wie gesagt noch nagios, allerdings muss man da wohl recht viel hand anlegen.
 
Wäre es möglich dies über ein Shellscript umzusetzen, was dann wiederum
über PHP ausgelesen wird, um somit die Daten über den Webserver abzurufen?

Wo ist das Problem?
Lass ein Script laufen das 1x pro Minute nen Ping absetzt und falls dieser Fehlschlägt erstellst bzw. schreibst du in ein File *IP*.log, welches du auf einer PHP Seite dann einfach parst ...

mfg,
Max
 
Was meinst du genau mit der Ladezeit bei 15 PCs?

Soll der Pi nicht laufen, alle 10min die PCs durchpingen und nur bei Ausfall Alarm (z.B. per Email) geben?

Theoretisch könnte man das noch mit einer steuerbaren Steckdosenleiste kombinieren, dann würde der Pi sogar den PC selbst kurz neustarten.
 
Um genau zu sein macht der PI (Neustart der Rechner über PHP mit einer FRITZ!DECT200) das bereits (aktuell noch manuell).
Worum es mir geht ist das bemerken bzw. protokollieren.

Ich wollte etwas in der Art machen (nur leider funktioniert es nicht):

- Pingtest alle 30 Minuten
- EMail + Logeintrag wenn es einen Fehlergibt
- in PHP den Status ausgeben.

Code:
#!/bin/bash 
 
LOG=UP.log 
SECONDS=1800 // alle 30 Minuten

EMAIL=root@localhost.de
Comps"192.168.1.50 192.168.1.51 192.168.1.52 ... "
COUNT=4

for Host in $Comps
do

for i in $@; do 
	echo "$i-UP!" > $LOG.$i 

done 
 
while true; do 
	for i in $@; do 

ping -c $COUNT $Host 
if [ $? -ne 0 ]; then 
	STATUS=$(cat $LOG.$i) 
 		if [ $STATUS != "$i-DOWN!" ]; then 
 			echo "`date`: ping failed, $i host is down!" | 
			mail -s "$i host is down!" $EMAIL 

 		fi 
	echo "$i-DOWN!" > $LOG.$i 

else 
	STATUS=$(cat $LOG.$i)
 		if [ $STATUS != "$i-UP!" ]; then 
 			echo "`date`: ping OK, $i host is up!" | 
			mail -s "$i host is up!" $EMAIL

 		fi 
	echo "$i-UP!" > $LOG.$i 
fi 
done 

sleep $SECONDS 
done
 
Die richtige Lösung dafür lautet Nagios bzw. Icinga.
 
Ja, vielleicht hätte ich noch dazuschreiben sollen, dass ich es gern selber machen möchte. Ich will keine überladene Fertigsoftware (oder ich schätze diese beiden Produkte falsch ein), die für deutlich komplexere Szenarien gedacht sind. Wenn ich meinen Fall richtig einschätze, brauche ich genau ein Shellscript und eine PHP-Seite. Warum also einen überladenen Dienst einspannen? Klar man muss das Rad nicht neu erfinden aber wo bleibt dann der Spaß.

Ich würde es daher eher begrüßen wenn Ihr mir bei meinem Shellscript weiterhelfen könntet. :)
 
Zurück
Oben