Seite 1 von 2
Webseite überwachen: Wie macht man sowas heutzutage?
Verfasst: 30.01.2008 12:00
von Kiffi
Hallo,
ich möchte gerne in regelmäßigen Abständen überprüfen, ob eine Webseite
offline ist.
Momentan überprüfe ich den Rückgabewert von OpenNetworkConnection().
Allerdings bin ich mir unsicher, ob das so die beste Methode ist.
Wie würdet Ihr das machen?
Grüße ... Kiffi
Verfasst: 30.01.2008 12:47
von AND51
An deiner Stelle würde ich auf jeden Fall auf den HTML-Quelltext achten, denn auch wenn eine Webseite offline ist, kann es sein, dass der Hoster eine andere HTML-Seite vorlegt, in der die vorrübergehende Unerreichbarkeit des Webangebots erklärt wird.
Ich behaupte einfach mal, es gibt immer ein Element, das auf der Webseite gleich ist: Der Titel, ein Logo, ein bestimmter Satz/Name der Homepage auf der Seite...
Nicht nur auf den HTML-Quelltext achten, sondern auch ob die Verbindung an sich aufgebaut werden kann, um die Daten zu empfangen. Dies ist vielleicht keine 100%ige Methode, aber immerhin zuverlässiger als nur auf die Verbindung zu achten.
Verfasst: 30.01.2008 13:25
von Kiffi
Hallo AND51,
erstmal danke für Deine schnelle Antwort!
AND51 hat geschrieben:An deiner Stelle würde ich auf jeden Fall auf den HTML-Quelltext achten, [...]
ich habe vergessen zu erwähnen, dass die Website ausfällt, weil der IIS
abstirbt. Warum der IIS manchmal seinen Geist aufgibt, weiß ich noch nicht.
Bis meine Kollegen das herausgefunden haben (ist eine umfangreichere
Website), muss eine Art WatchDog her, der das ganze überwacht und mich
dann benachrichtigt, damit ich schnellstmöglich den IIS neu starten kann.
Grüße ... Kiffi
Verfasst: 30.01.2008 13:49
von AND51
Hm... Also wenn, dann fällt der Werbserver (das Programm) aus und nicht der Server selbst...? Das würde bedeuten, dass z. B. anpingen nichts bringt, weil ja eben der Server an sich erreibar ist, nur der Server an Port 80 kracht zusammen.
Ich hoffe, das ist kein Denkfehler, aber mit der von mir beschriebenen Methode dürftest du eigentlich recht gut bedient sein:
Egal, ob ich mit PB eine Seite anfordere, oder dies mit meinem Browser tue; kann ich die Seite nicht laden (Error 404), dann ist die Webseite nicht erreichbar.
Kackt, der HTTP-Webserver an Port 80 ab, dürfte OpenNetworkConnection() eine annehmbare Lösung sein. Aber wie gesagt, möglicherweise bekommt man doch eine Verbindung zustande und es wird eine andere HTML-Seite zwischengeschoben, wie oben erklärt. In diesem Falle wäre die OpenNetworkConnection()-Methode so ungenau, dass sie ein falsches Ergebnis liefert.
Alternative Lösung: Ich gehe mal davon aus, der Server unterstützt HTTP/1.1?
Dann bau eine Verbindung auf, sende einen HTTP-Header und lass die Verbindung offen! Gib beim "Connection"-Attribut einfach "keep-alive" an!
So kannst du über ein und dieselbe Leitung mehrere HTML-Dokumente anfordern, ohne jedes Mal eine neue Verbindung aufbauen zu müssen.
Der Trick: Fordere einfach im Abstand von 1 Minute irgendeinen Firlefanz an oder verschicke Requests mit "HEAD" statt "GET". Kriegst du überhaupt eine gültige Antwort, scheint der Server ja noch da zu sein, ansonsten ist er weg.
Verfasst: 30.01.2008 13:55
von Laurin
Afaik gibt es Programme, die bei einem Fehler oder Absturz des Webservers eine eMail verschicken.
Frag mich aber nicht, wie die heißen.
Um zu Prüfen, ob der Remote Server noch da ist, reicht ein Ping pro Minute oder so aus.
Verfasst: 30.01.2008 14:16
von Kiffi
@AND51: Ich muss mal prüfen, inwieweit Deine Ausführungen bei uns
angewendet werden können. Melde mich gleich wieder...
Laurin hat geschrieben:Afaik gibt es Programme, die bei einem Fehler oder Absturz des Webservers eine eMail verschicken.
Frag mich aber nicht, wie die heißen.
z.B. HTTPPoll. Funktioniert soweit auch recht gut, bis auf die
Mailversende-Funktion. Damit kann ich keine Mail an unseren SMTP-Server
senden. Aus diesem Grund will ich ja gerade mein eigenes Tool schreiben
Laurin hat geschrieben:Um zu Prüfen, ob der Remote Server noch da ist, reicht ein Ping pro Minute oder so aus.
Geht leider nicht. Ping ist bei diesem Server abgeschaltet worden.
Grüße ... Kiffi
Verfasst: 30.01.2008 14:39
von bommel
Wieso willst Du eigentlich benachrichtigt werden und den IIS selbst neu starten. Laß das Programm doch direkt auf dem Server laufen und bei Bedarf auch gleich den IIS restarten.
Verfasst: 30.01.2008 14:49
von Kiffi
bommel hat geschrieben:Wieso willst Du eigentlich benachrichtigt werden und den IIS selbst neu starten. Laß das Programm doch direkt auf dem Server laufen und bei Bedarf auch gleich den IIS restarten.
guter Einwand. Allerdings sprechen ein paar Punkte dagegen:
1. möchten wir vor dem Neustarten schauen, wie groß die
Speicherauslastung ist und welche Prozesse welchen prozentualen Anteil
davon belegen
2. erhoffen wir uns beim nächsten Stillstand durch diverse Analysen (auch
des COM-Servers, der ebenfalls involviert ist) herauszufinden, woran es
liegen könnte, dass der IIS nicht mehr antwortet.
3. und last but not least ist mir der Aufwand, eine Routine zum Neustarten
des IIS zu schreiben und dann auch dementsprechend zu testen, einfach
zu groß
Grüße ... Kiffi
Verfasst: 30.01.2008 15:48
von bommel
Auch wieder wahr. Wobei das Durschsehen der (Error)-Logfiles auch keinen so großen Spaß macht

Verfasst: 30.01.2008 16:43
von Thalius
am besten check in nem job die HTTP Response. Wenn Timeout oder falsche antwort weisst was los ist. Geht mit meinem PureHTTP get
Thalius