Monitor Tool, RootServer (HTTP, POP, IMAP & Co.)

S

sevY

Hi,

ich suche ein Tool für Mac OS X, das lokal auf meinem Rechner läuft und ständig meine beiden Rootserver (Debian Sarge, GNU/LINUX) anpingt, um zu sehen, ob die Deamons alle laufen!

Es würde auch ein Shellscript reichen, das ich per Cron aufrufen kann…

Wie kann ich denn bestimmte Ports eines Servers anpingen, und wie verarbeite ich dann die Ausgabe?

Liebe Grüße

Yves
 
Das ist recht einfach und in verschiedenen Programmier-Sprachen möglich.
Ich habe hier ein php Skript , das man auch per cron lokal und ohne Webserver starten kann.
Heute würde ich es in Perl schreiben.
Als Shellskript gehts aber auch (z. B. mit netcat).

Im Beispiel wird geprüft, ob ein Mailserver online ist, aber das ist ja anpassbar (Portnummer ändern) und erweiterbar (mehere Dienste hintereinander abfragen)
PHP:
#!/usr/bin/php 
<?php
$server="my.mailserver.tld:25";
$array=explode(":",$server);
if (fsockopen($array[0],$array[1],&$errno, &$errstr, 2))
{
    print "Mailserver $array[0] ist online";
}
else
{
    print "Mailserver $array[0] ist offline";
}
?>
Anstelle von "print" sind bei einem cron-Aufruf natürlich andere Aktionen sinnvoller.

HTH
 
Zuletzt bearbeitet:
Ich habe mir soetwas mal zusammengeschraubt, damit ich die Ergebnisse in einer DB speichern kann. Im Prinzip basiert nur darauf, dass ich per PHPr und der Funktion 'fsockopen' ein [---]Socket öffne, zum anderen Server quasi eine Telnet-Verbindung aufbaue, und analysiere, was ich zurückbekomme.

Der Kern besteht aus diesen paar Zeilen:

PHP:
if ($_sock = fsockopen ($this->Host, $this->Port, $errno, $errstr, $this->Timeout)) {
				
					fputs ($_sock, $this->Request);
					$this->Response			=	fgets ($_sock, $this->RespondSize);
					fclose ($_sock);
					return $this->Response;
					
				}

Die Antwortzeit kann ich dann messen und entsprechend speichern und weiterverarbeiten. Geht's in die Richtung, Yves?

EDIT: Aha, zwei Dumme, ein Gedanke, was maceis? :D
 
Zuletzt bearbeitet:
Noch eins: Für den kommerziellen Bereich habe ich mit Sysformance gute Erfahrungen gemacht, aber kostet natürlich auch ;)
 
Zuletzt bearbeitet von einem Moderator:
Hilarious schrieb:
...
EDIT: Aha, zwei Dumme, ein Gedanke, was maceis? :D
Sieht so aus ;)

Ein kleiner Hinweis noch; mit telnet hat das Ganze im Grunde nichts zu tun. Telnet ist ein relativ komplexer Multiprotolcol-Client, der Sessions mit einer Handshake-Prozedur einleitet.
Es setzt aber natürlich auch auf eine Socket-Verbindung auf.
Was wir hier machen ist wesentlich "primitiver".

JFTR
Und um jetzt noch ganz genau zu sein, verwenden wir keinen UNIX-Socket, sondern einen INET-Socket.
UNIX-Sockets werden für die Interprozess-Kommuniktion innerhalb eines Hosts eingesetzt.
PHP stellt hier aber eine High-Level-Schnittstelle zur Verfügung, so dass wir uns um solche Details gar nicht kümmern müssen.
 
maceis schrieb:
Sieht so aus ;)

Ein kleiner Hinweis noch; mit telnet hat das Ganze im Grunde nichts zu tun. Telnet ist ein relativ komplexer Multiprotolcol-Client, der Sessions mit einer Handshake-Prozedur einleitet.
Es setzt aber natürlich auch auf eine Socket-Verbindung auf.
Was wir hier machen ist wesentlich "primitiver".

[...]

Ich weiß, daher das »quasi« damit der Vergleich leichter fällt... ;)
 
Ihr seid die Besten!

Genau soetwas suche ich… natürlich ist die Variante mit der DBase recht schön… da hat man dann eine genaue Statistik… aber ich denke, das ein einfaches Monitoring absolut ausreicht.

Was natürlich genial wäre:

Ich modifziere das Script von Maceis so, das wenn der Server down ist, 1. eine SMS kommt (Bluetooth Handy neben dem Mac liegen lassen, wenn ich mal unterwegs bin…), immer dazu noch eine Email zum späteren Protokollieren.

Was man auch machen könnte… da ich zwei Rootserver habe, lasse ich das Script dann via Cron dort regelmäßig laufen und baue einfach über SSH eine Verbindung zum jeweils anderen Server auf, um dann mit /etc/init.d/*daemon* jeweils den entsprechenden Dienst wieder hochzufahren/neuzustarten.
Alterna-/Additiv könnte man auch versuchen, das Resetinterface/Powercontrol des Servers zu triggern, falls der Server selbst nicht mehr erreichbar ist.
Ich habe da zumindest die Möglichkeit, das manuell via Browser zu erledigen.

Besten Dank auf jedenfall für eure tolle Hilfe, das freut mich sehr.
Zumal ich mir die letzten Tage damit um die Ohren geschlagen habe und schlagen werde, „postfix, courier, maildrop“ für den Produktivbetrieb einzurichten und auf dem langen Weg der ganzen Serverkonfiguration schon das ein oder andere Problem aufgetreten ist.
Ich freu mich schon auf die Firewallkonfiguration… naja… zumindest stehen das LAMP, PQsql, ProFTPD schon mal stabil :)

Liebe Grüße

Yves
 
Hi… es ist nicht wirklich etwas Tolles… aber es funktioniert. Ich habe ein Windows/Mac Tool programmiert, das mittels einer ConfigDatei und einer PHP-Datei auf einem externen Server einen anderen Server überwacht und graphisch anzeigt.

In der config.xml gibt man einfach an, wo sich das PHP Script (status.php) befindet, also zb. unter http://deinedomain.tld/xml/status.php, dann gibt man die zu überwachende IP an und das Refreshinterval, wie oft das Tool die Informationen abholen kann (default 10sekunden).

Die Datei status.php kopiert man dann, nachdem man im Array „daemon“ die gewünschten Ports und Namen für die zu überwachenden Daemons eingegeben hat, eben an die in der config.xml angegebene Adresse… übrigens kann man dafür wunderbar den lokalen Apache mißbrauchen.

Natürlich würde das auch ohne PHP gehen… aber dann halt nicht in Flash ;) Hehe… für Flash braucht man da schon wieder das xml.socket Objekt und eine crossdomain.xml SecurityPolicy, damit man auch an Ports unterhalb 1024 kommt… also ist das hier erstmal einfacher…

Tjo… die Sources von Flash MX 2004 Pro sind auch dabei… wenn also einer weiterbasteln möchte… gerne.
Der Form halber erwähne ich, das die Benutzung des Tools auf eigene Gefahr geschieht… ich hafte für nix ;) Nicht das hinterher jemand sagt: Ey, das Tool hat mir gar nicht angezeigt, das mein Webserver seit 2 Wochen down ist… .

Get it! .zip Archiv mit Windows & Mac Version, sowie Sources (ca. 1,5MB)

Liebe Grüße

Yves
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben Unten