Tool, um zu prüfen, ob eine Website verfügbar ist

Da wir ein Unternehmen für die Entwicklung von Websoftware sind, laufen viele Anwendungen auf verschiedenen Servern. Manchmal werden wir benachrichtigt, dass einige von ihnen aufgrund verschiedener Probleme ausgefallen sind.

Gibt es einen Server/eine Anwendung/ein Tool, das den Status einer bestimmten URL (durch Ausführen von rohen HTTP-GET-Anforderungen) nacheinander in einem bestimmten Intervall überprüft? Es wäre auch interessant, wenn wir eine Mailserver-Konfiguration hinzufügen könnten, um Administratoren zu benachrichtigen, wenn die Seite nicht erreichbar ist.

Es sollte nicht so kompliziert sein, es selbst zu bauen, aber ich möchte nur prüfen, ob etwas verfügbar ist, nur um das Rad nicht neu erfinden zu müssen.

Das Tool sollte die nächsten Funktionen bieten:

  • Tool, das wir auf unseren Webservern installieren können, um nicht von Diensten Dritter abhängig zu sein
  • Art von Dienst, der manuell gestartet/gestoppt werden kann
  • Leichte Lösung
  • Zumindest unter Linux lauffähig, wird interessant sein, es auch unter Windows zu haben
  • Open Source / Günstige Alternative
Eine Anmerkung zu den Anforderungen: Vor einigen Jahren haben wir genau dafür ein Tool geschrieben und es auf unseren eigenen Servern ausgeführt. Wir mussten so schnell wie möglich wissen, wann einer unserer (gehosteten) Server ausgefallen ist. Der Eigenbetrieb hatte den Nachteil, dass wir für die Möglichkeit vorsehen mussten, dass unsere eigenen Verbindungen ausfallen. Wir haben dies gelöst, indem wir völlig unabhängige, zuverlässige Websites gepingt haben. Dies wurde also zu einer Art „verteiltem“ Testen. Ein (kommerzieller) externer Dienst wird von verschiedenen Standorten aus testen und Sie vielleicht sogar per SMS benachrichtigen. Fazit: Ich empfehle einen externen Dienst.
@JanDoggen, das ist ein hervorragendes Feedback von dir. Abgesehen von unseren internen Servern laufen tatsächlich einige unserer Anwendungen auf externen Servern. Die Methode würde in einem Tool in unseren eigenen Webservern und auch in externen bestehen. Auf diese Weise könnten wir jeden Server alle Dienste testen lassen. Dies zu tun, hat mehrere Nachteile : Jedes Mal, wenn wir einen neuen Dienst einrichten, müssen wir aktualisieren, was überall überprüft werden soll. Aber darauf zielt meine Frage ab. Eigentlich denken wir auch darüber nach, einen externen Dienst zu betreiben, da es interessante kostenlose Optionen wie uptimerobot.com gibt
´loop: curl url & sleep 600 & goto loop´?
Ich verwende den kostenlosen Website-Überwachungsdienst upnow.info , der Open Source ist und auf Sails JS + Angular (NodeJS) basiert.

Antworten (5)

Was Sie suchen, fällt unter die Kategorie Überwachungssoftware.

Ich habe dafür Mon verwendet . Jetzt bin ich kein Experte, daher kann ich nicht wirklich sagen, wie es im Vergleich zu den vielen anderen Überwachungstools da draußen abschneidet, aber basierend auf Ihrer Beschreibung sollte es für Sie gut funktionieren.

  • Tool, das wir auf unseren Webservern installieren können → apt-get install monoder yum install monwas auch immer es auf Ihrer Distribution ist
  • Art des Dienstes, der manuell gestartet/gestoppt werden kann →service mon start/stop
  • Leichte Lösung → Das Programm und seine Dokumentation nehmen etwa 1 MB ein
  • Zumindest unter Linux lauffähig, wird interessant sein, es auch unter Windows zu haben → sollte in allen wichtigen Linux-Distributionen enthalten sein; Es gibt jedoch kein Cygwin-Paket.
  • Open Source → ja, es ist Debian-konform kostenlos.

Mon ist einfach in Gang zu bringen. Unter Debian/Ubuntu sendet es mir standardmäßig ( root) eine E-Mail, wenn der Apache-Server auf derselben Box ausfällt. Offensichtlich müssen Sie die Konfigurationsdatei bearbeiten, damit sie andere Hosts überwacht. Mon bietet Überwachung für Hosts (Ping), HTTP, FTP, SMTP, MySQL, verfügbaren Speicherplatz und viele weitere Dienste, und Sie können beliebige Befehle ausführen, um nicht integrierte Dienste zu überwachen. Warnungen können per E-Mail, SNMP oder benutzerdefinierte Methoden gesendet werden.

Mon versucht nicht, ausgefallene Dienste neu zu starten, das geht über seine Aufgabe hinaus.

Vielleicht möchten Sie das monitoringTag auf Unix & Linux und auf Server Fault untersuchen , um zu sehen, ob Ihnen einige Alternativen gefallen.

Erfüllt alle Anforderungen, wie es scheint (+1). Nur als Randbemerkung: Letztes Update scheint von 2010 zu sein. Aber das muss nichts für einen einfachen Hintergrunddienst bedeuten :) Ein vergleichbares (und aktuelles) Projekt wäre PHP Server Monitor . Aber da ich es nicht benutzt habe, kann ich nicht näher darauf eingehen ...
@Izzy Ich muss das ausprobieren, da ich persönlich unter Windows entwickle und dieses Thema mit Interesse verfolgt habe.
@NickWilde Wenn Sie über PHP Server Monitor sprechen (was ich annehme), können Sie Ihren Versuch gerne in einen Repräsentanten umwandeln, indem Sie eine Antwort erstellen. Wenn ich mir die Bewertung dieses Projekts ansehe, bin ich mir ziemlich sicher, dass es sich gelohnt hat!
@Izzy ja, sobald ich es ausprobiert habe, werde ich es definitiv in eine Antwort umwandeln, wenn ich so gut zusammenpasse, wie es scheint, danke :)

Dies ist eines der Dinge , für die Nagios entwickelt wurde. Es kann nahezu jeden extern sichtbaren Dienst (HTTP, IMAP, POP, MySQL, SSH usw.) sowie alle internen Dinge auf dem Server (Festplattennutzung, Systemlast, Anzahl der Prozesse) über das sogenannte NRPE überwachen. Es sendet E-Mails zu Dienstproblemen, optional mit Einschränkungen (keine E-Mails an Joe außerhalb der Arbeitszeit) bis hin zu willkürlich komplizierten Zuordnungen von Empfängern zu Diensten auf Maschinen. Es wird Protokolle darüber führen, wann Dienste aktiv/kritisch/ausgefallen waren. Es kann auch so eingerichtet werden, dass es bei Dienstausfällen andere Aktionen ausführt (startet MySQL neu, wenn es heruntergefahren ist). Es ist kostenlos und Open Source (es gibt eine kostenpflichtige Version mit zusätzlichen Funktionen , die weit über das hinausgehen, was Sie brauchen), und es gibt jede Menge Dokumentation. Es gibt mindestens einen Windows (Cygwin)-Port,Nagwin .

Ich würde hinzufügen, dass es einfach ist, ein Plugin hinzuzufügen, um alles über NRPE zu überprüfen. Erstellen Sie ein Skript, das je nach Zustand 0,1,2 oder 3 zurückgibt, fügen Sie das Skript zur Datei commands.cfg hinzu und überprüfen Sie, was Sie wollen. Darüber hinaus haben Sie auch mobile Apps, um Ihr Nagios zu überwachen. Lesenswert : signalvnoise.com/posts/3178-nagios-monitoring-performance

Ich verwende dafür Monit , es ist kostenlos, Open Source (AGPL) und ein Debian-Paket verfügbar.

Es unterstützt:

  • Daemon-Modus - Abfragen von Programmen in einem bestimmten Intervall
  • Überwachungsmodi - aktiv, passiv oder manuell
  • Starten, Stoppen und Neustarten von Programmen
  • Gruppieren und verwalten Sie Gruppen von Programmen
  • Definition der Prozessabhängigkeit
  • Protokollierung in Syslog oder eigene Logdatei
  • Konfiguration - umfassende Steuerdatei
  • Laufzeit- und TCP/IP-Portprüfung (tcp und udp)
  • SSL-Unterstützung für die Portprüfung
  • Unix-Domain-Socket-Überprüfung
  • Prozessstatus und Prozesszeitüberschreitung
  • CPU-Auslastung verarbeiten
  • Speicherauslastung verarbeiten
  • Zombie-Check verarbeiten
  • Überprüfen Sie die durchschnittliche Systemlast
  • Überprüfen Sie den Zeitstempel einer Datei oder eines Verzeichnisses
  • Benachrichtigen, stoppen oder starten Sie einen Prozess basierend auf seinen Eigenschaften neu
  • MD5-Prüfsumme für Programme, die von Monit gestartet und gestoppt werden
  • Warnbenachrichtigung für Programmzeitüberschreitung, Neustart, Prüfsumme, Ressourcenstopp und Zeitstempelfehler
  • Flexible und anpassbare E-Mail-Warnmeldungen
  • Protokollüberprüfung. HTTP, FTP, SMTP, POP, IMAP, NNTP, SSH, DWP, LDAPv2 und LDAPv3
  • Eine http-Schnittstelle mit optionaler SSL-Unterstützung, um Monit über einen Webbrowser zugänglich zu machen

Wenn Sie bereit sind, für einen Dienst zu bezahlen, war ich mit Pingdom sehr zufrieden .

  • Sie können das Prüfintervall konfigurieren
  • Benachrichtigungen über Ausfallzeiten werden per E-Mail, SMS oder Twitter gesendet.
  • Sie verfügen über konsolidierte Dashboards, die Zusammenfassungen und Verlaufsdaten für die von Ihnen überwachten Websites enthalten.
  • Sie haben einen kostenlosen Plan, der eine einzelne URL überwachen kann, wenn Sie es ausprobieren möchten.
Es sieht interessant aus. Ich hätte jedoch lieber etwas Internes, als von einem (und kostenpflichtigen) Dienst eines Drittanbieters abhängig zu sein ...
Würde das überhaupt auf einem Server funktionieren, der nicht aus dem Internet erreichbar ist?
@ Gilles nein, würde es nicht.
@XtremeBiker diese wurden in der ursprünglichen Frage nicht erwähnt, obwohl ich sehe, dass Sie sie jetzt aktualisiert haben.

SmartBear , die Eigentümer von SoapUI, bieten einen solchen Service an. Der Startpreis beträgt derzeit 12 $/Monat für den Basisdienst (mit einer kostenlosen Testversion für alle Servicestufen).

Es sieht so aus, als würde es Ihre Spezifikationen und mehr abdecken . Ich bin mir nicht sicher, ob Sie einen solchen Dienst als möglicherweise übertrieben betrachten würden, da er viel mehr zu tun scheint, als Ihre Frage verlangt. Es beinhaltet die gewünschte Leistungsschwellenüberwachung und sowohl E-Mail- als auch SMS-Benachrichtigungen über Probleme.

Ich habe die Produkte von SmartBear in der Vergangenheit (und derzeit) mehrmals verwendet und bin sehr zufrieden damit. Wenn Sie den Dienst testen möchten, dann schauen Sie sich die kostenlose Demo an . Geben Sie einfach Ihre URL ein und es wird ein Bericht basierend auf Ihrer Website erstellt.

Abgesehen davon, wenn Sie eine einfache Aufwärts-/Abwärtsprüfung wünschen, würde ich einfach persönlich einen Pinger codieren. Diese anderen Optionen eignen sich hervorragend für die Überwachung, das Auffinden von Engpässen und das Beheben von Problemen, bevor sie auftreten, und darin liegt ihr Wert. Und zu dem Preis ist es viel günstiger als Last- und Leistungstests.

Es scheint interessant, aber es sieht so aus, als wäre es ein vollständigeres Tool, das auch vollständige Tests der App ermöglicht. Ich möchte nur benachrichtigen, wenn es ausfällt! (Um eine 404-Antwort zu erkennen, wenn die Seite abgerufen wird, würde dies ausreichen.)
Ich habe keine Erfahrung mit diesem, aber es sieht so aus, als wäre es für Ihre Bedürfnisse geeignet. Ping For Life scheint extrem einfach zu sein. Würde dies Ihre Bedürfnisse besser unterstützen?