Einfache Webserverüberwachung (lebendig)

8

Gibt es einen Tipp zu Software zur Überwachung, ob ein Webserver unter Linux läuft? Es sollte ausgeführt werden können, ohne mehr als die URL zu kennen. Und es muss Funktionen haben, um eine E-Mail-Benachrichtigung zu senden, wenn die Website ausfällt. Sollte nicht schwer sein, selbst ein Skript dafür zu schreiben, scheint aber sinnlos, wenn es da draußen schon etwas Schönes gibt.

Beachten Sie, dass ich interne Server überwachen werde. Dies muss also ein Tool sein, das auf meinem Computer im selben Netzwerk ausgeführt wird, nicht externe webbasierte Dienste.

Und beachten Sie, dass kleine und einfache Lösungen bevorzugt werden.

Update : Ich habe schließlich ein kleines Python-Skript erstellt, das ich derzeit dafür verwende. Es finden Sie hier .

Zitrax
quelle
Siehe auch: serverfault.com/questions/44/… - Dieses Thema wurde auf hoher Ebene ausführlich behandelt.
Warner

Antworten:

12

Sie können wget in einem solchen Skript verwenden

wget --timeout=3 --tries=1 --spider --no-check-certificate http://serverfault.com

if [ $? -ne 0 ];then
  echo "Site Down" | mail -s "Site Down" [email protected]
fi

Und Sie erhalten eine E-Mail, wenn wget nicht innerhalb von drei Sekunden zum ersten Mal auf die Website zugreifen kann.

Richten Sie einen Cron-Job ein, um das Skript alle paar Minuten auszuführen.

Es gibt viele andere Alternativen, aber dies ist wahrscheinlich die einfachste, die von Grund auf neu eingerichtet werden kann.

Richard Holloway
quelle
7
Solange du es nicht auf dem Server ausführst, dass es überwacht wird - du hast keine Ahnung, wie oft ich das gesehen habe ;-)
Geraint Jones
Vielen Dank. Außerdem fand ich, dass --spider auch eine nützliche Option ist, da es vermeidet, die Seite tatsächlich auf der Festplatte zu speichern.
Zitrax
2
Und ohne 'postfix' zu installieren, kann der Mail-Befehl einfach nicht gesendet werden.
Zitrax
3
@ Zitrax: Und ohne wget installiert zu werden, erhalten Sie eine Fehlermeldung. Ohne das Netzwerk schlägt das Wget fehl. Ohne dass das Skript ausführbar ist, schlägt der Cron-Job fehl und so weiter. Außerdem habe ich kein 'Postfix' installiert und es funktioniert gut für mich, da ich exim verwende.
Richard Holloway
1
Warum das --no-check-certificate? Eine Warnung vor einer fehlerhaften TLS-Bereitstellung ist ebenfalls eine wertvolle Information.
Avamander
7

Sie haben viele Möglichkeiten, ich gebe Ihnen zwei.

  • Nagios ist eine umfassende Überwachungsanwendung, die viel mehr als nur http überwachen kann, aber auch damit umgeht. Es können auch alle Arten von Repots erstellt werden ("Sagen Sie mir den Prozentsatz der Verfügbarkeit unseres Servers / Dienstes X in dieser Woche / Monat / Jahr ...")

  • Monit ist eine weitere beliebte Wahl. Vielleicht nicht so funktionsreich wie Nagios, aber trotzdem schön.

Janne Pikkarainen
quelle
Ich war auf der Suche nach etwas Kleinem und Einfachem, also scheint Monit dem näher zu sein.
Zitrax
1

Nun, wenn Sie selbst etwas ausführen möchten.

Dies sind einige Optionen:

Oder wenn Sie eine verwaltete Lösung wünschen:

Persönlich denke ich, dass Zabbix und Zenoss übertrieben sind, wenn Sie einfach den Status eines Webservers überwachen möchten. Aber wenn Sie auch vorhaben, etwas anderes zu überwachen, als es mehr Funktionen bietet, als Sie jemals brauchen werden;)

Wolph
quelle
Ich denke, Pingdom und Aufwärtstrends können die Websites in meinem internen Netzwerk nicht überwachen.
Zitrax
@ Zitrax: Nein, das können sie nicht. Ich habe diesen Teil gelesen.
Wolph
1

Ich habe die Antwort von Richard und Janne positiv bewertet, aber wenn Sie mehr Details darüber wünschen, was Ihr Webserver sendet und empfängt, geben die ersten Kapitel des O'Reilly-Buches "Web Client Programming with Perl" von Clinton Wong einen großartigen Überblick des HTTP-Protokolls. Wenn Sie eine detailliertere Überwachung als nur Auf / Ab wünschen und Antwortcodes usw. einschließen möchten, ist dies ein guter Ausgangspunkt.

Das Buch ist alt, aber immer noch gültig. O'Reilly wurde 1997 veröffentlicht und hat den Inhalt des Buches im Rahmen seiner OpenBook-Initiative kostenlos online unter http://oreilly.com/openbook/webclient/ veröffentlicht .

gWaldo
quelle
0

Ich würde Jannes Antwort abstimmen, wenn ich einen Repräsentanten hätte.

Wichtiger Hinweis zu Nagios: Die Tatsache, dass es vollständig ist, bedeutet nicht, dass es eine harte und lange Installation ist. Es ist recht einfach und freundlich.

Zweitens sollten Sie wirklich prüfen, was Ihr Hardwareanbieter zu bieten hat. Zum Beispiel verwende ich HP Proliants und sie haben wirklich schöne Drehzahlen, die helfen.

Bangolio
quelle
0

Wenn Ihnen die Arbeit von Nagios gefällt, Sie sich aber nicht mit den Interna befassen möchten, können Sie auch Opsview ausprobieren . Es ist Nagios und ein paar andere Tools, aber über eine schöne GUI geliefert. Es ist ein ziemlich guter Ausgangspunkt.

SystemParadox
quelle
0

Ich würde zustimmen, dass Nagios eine großartige Software ist, aber wenn Sie eine Freeware möchten, würde ich Ihnen empfehlen, sich AppPerfect Agentless Monitor anzusehen . Die Linux-Serverüberwachung mit AppPerfect ist extrem leicht und erhöht den Aufwand für das Zielsystem während der Überwachung vernachlässigbar. Mit diesem Tool können Sie alle wichtigen Statistiken zu CPU, Festplatte, Netzwerk und Speicher überwachen. Die Einrichtung ist sehr einfach und die Software ist sehr einfach zu bedienen. Eine klare Dokumentation und Tutorial ist auch hier für Linux Server - Monitoring

Steve Young
quelle
0

Eine Lösung, die ich verwendet habe, ist der Konsul von HashiCorp .

Es ist sicherlich mehr als ein einfaches Skript mit E-Mail-Ausgabe, aber das Einrichten der Art der Überwachung, über die Sie sprechen, ist immer noch sehr einfach (ein paar Zeilen YAML oder JSON).

Sie würden höchstwahrscheinlich eine Vorlage erstellen, aber die Überwachung eines einzelnen Servers könnte wie folgt erfolgen:

{
  "service": {
    "name": "web", 
    "tags": ["production"], 
    "port": 80,
    "check": {
      "id": "front-end",
      "name": "HTTP front-end for web service",
      "http": "http://web.domain.tld",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

Ein Grund für den Vorschlag ist, dass Sie damit nicht nur das Web-Front-End überwachen können, wenn Sie möchten, sondern auch Überprüfungen nach Service gruppieren können (z. B. könnte Ihr report_serverService eine Überprüfung für das Web- Front-End durchführen. Ende, eines für das Web-Back-End und eines für die primäre Datenbank, die alle Warnungen bereitstellen würden, die an diesen einen Dienst gebunden sind.

Ich wurde von der Wahrheit gegessen
quelle