Webseite überwachen: Wie macht man sowas heutzutage?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Webseite überwachen: Wie macht man sowas heutzutage?

Beitrag 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
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag 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.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
bommel
Beiträge: 32
Registriert: 31.07.2006 13:21

Beitrag 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.
PB 4
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
bommel
Beiträge: 32
Registriert: 31.07.2006 13:21

Beitrag von bommel »

Auch wieder wahr. Wobei das Durschsehen der (Error)-Logfiles auch keinen so großen Spaß macht ;-)
PB 4
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag 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
"...smoking hash-tables until until you run out of memory." :P
Antworten