Home > Web-Server-Monitoring mit Checkmk

Web-Server-Monitoring mit Checkmk

Heike Jurzik
By Heike Jurzik on Jun 08, 2020

Läuft der Web-Server? Sind alle SSL-Zertifikate noch gültig? Ist die Server-Performance in Ordnung? In diesem Artikel wollen wir Ihnen zeigen, wie Sie einen Web-Server mit Checkmk überwachen könnt.


1. Monitoring von HTTP(S)-Verbindungen

Für das Testen von HTTP- und HTTPS-Verbindungen hat sich das Plugin check_http als sehr nützlich erwiesen. Es funktioniert mit jedem Web-Server, etwa Apache, Nginx, Lightpd, etc. Das Plugin ist in der Lage, Antwortzeiten zu prüfen, nach bestimmten Strings oder Regular Expressions zu suchen und Weiterleitungen zu folgen. Es hat außerdem ein Auge auf SSL-Zertifikate und meldet Verfallszeiten. check_http prüft jedoch nicht, ob ein Zertifikat zum Host-Namen des Servers passt oder ob es eine valide Vertrauenskette gibt.

check_http benötigt keinen Agenten auf dem Web-Server, da man netzwerkbasierte Dienste wie HTTP(S), SMTP, IMAO, etc. direkt über aktive Checks abfragen kann. Das Plugin lässt sich über die WATO unter Host & Service parameters Active checks konfigurieren, indem man dort pro Service eine neue Regel anlegt. check_http kann entweder die Verfügbarkeit der Webseite (Content Check) oder SSL-Zertifikate monitoren.

1.1 Inhalte checken

Im ersten Schritt muss der Anwender den Namen der Seite eintragen, die er überwachen will. Daraus resultiert später ein Service mit dem gleichen Namen. Im nächsten Schritt muss man die Option Check the URL aktivieren. Standardmäßig wird eine URL immer über eine IP-Adresse aufrufen. Daher müssen Sie für das Monitoring von virtuellen Hosts das entsprechende Feld darunter ankreuzen und die FQDN (fully qualified domain name) eingeben (siehe Bild). Nur wenn der virtuelle Host eine andere IP hat, muss man das Feld Omit specifying an IP address ebenfalls auswählen.

Port 80 (HTTP) ist der Standard-Port für den Check. Um SSL zu aktivieren, muss man auf Port 443 wechseln. In das der Fall muss der Anwender die Option SSL/HTTPS for the connection aktivieren, um „400 Bad Request“-Warnung zu vermeiden. Das Plugin ist in der Lage zu testen, wie lange der Web-Server benötigt, um auf Anfragen zu antworten. Falls nötig, lassen sich dafür Schwellenwerte für die Status Warning und Criticial unter der Option Expected Response Time festlegen.

check_http-3

 

1.2 Monitoring von SSL-Zertifikaten

Zunächst muss man den Namen des Hosts , etwa den Service-Namen, eingeben und zur Option Check SSL Certificate Age hinunter scrollen. Dort lässt sich anschließend festlegen, ab wie vielen Tagen vor dem Ablaufen des Zertifikats Checkmk eine Benachrichtigung versendet. Darüber hinaus gibt das Feld Status Detail in unserer Web-Oberfläche Auskunft über das exakte Ablaufdatum des Zertifikats (siehe Bild).

check_http-2

Handelt es sich hierbei ebenfalls um einen virtuellen Host, muss man auch in diesem Fall die FQDN im entsprechenden Feld Check Certificate of a different IP/DNS name eingeben. Außerdem muss der Nutzer die Option Enable SSL/TLS Hostname Extension Support (SNI) aktivieren, wenn er mehrere SSL-Zertifikate auf der gleichen IP-Adresse verwendet. SNI steht für Server Name Indication.

2. Überwachung von Apache

Ein anderer Ansatz ist es, die Server-Software selbst zu überwachen. Wenn Sie Apache verwenden, eignet sich das Plugin apache_status, um detaillierte Informationen abzufragen. Es sammelt Daten vom Apache-Status-Modul, darunter:

  • Anzahl an Busy Workers,
  • Anzahl an Idle Workers,
  • Uptime des Servers sowie
  • die Zeit, wann der Server gestartet oder neugestartet wurde.

Durch die Aktivierung des ExtendedStatus-Direktivs ist es möglich, zusätzliche Daten zu tracken, etwa den Status und die Anzahl an Requests pro Worker, die Menge der durch Worker reservierten Bytes etc.

Bevor man das Checkmk-Plugin aktiviert und konfiguriert, solltet man jedoch das Status-Modul aktivieren und die URL example.com/server-status im Web-Browser aufrufen, um den Zugang zu den Daten bestätigen. Als nächstes installieren Sie das Plugin apache_status. Dies ist entweder durch das Kopieren des Plugins in den Plugins-Ordner des Agenten (CRE) oder über die Agent Bakery (CEE) möglich.

Das Plugin versucht anschließend automatisch, den Apache-Server zu erkennen. Falls das nicht funktioniert oder Sie nur spezifische Server monitoren wollen, lassen sich die vorhandenen Server, das Protokoll (HTTP oder HTTPS) sowie die Port-Anzahl in einer Konfigurationsdatei (/etc/check_mk/apache_status.cfg) hinterlegen.

An dieser Stelle sei noch erwähnt, dass der Plugin-Status immer OK ist. Der interessante Teil des Monitorings liegt vor allem in den visualisierten Leistungsdaten, die Checkmk beispielsweise über das Perf-O-Meter bereitstellt.

apache_graphs

3. Monitoring von Nginx

Ganz ähnlich funktioniert auch das Monitoring eines Nginx-Web-Servers. Nach der Aktivierung des ngx_http_stub_status_module, ist Checkmk in der Lage, Performance-Data zu sammeln und diese mit dem Checkmk-Plugin nginx_Status zu visualisieren.

Dabei sollte man jedoch berücksichtigen, dass das Modul nur mit Nginx bis zur Version 1.13.0 arbeitet. In den späteren Versionen wurde es durch ngx_http_api_module abgelöst.

Bevor Sie das Plugin konfigurieren, sollten Sie sicherstellen, dass das Nginx-Modul aktiviert ist. Auf den meisten Linux-Distributionen sollte dies standardmäßig der Fall sein. Im Zweifel können Sie das über die Shell mit diesem Befehl schnell überprüfen:

~# nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module

Im nächsten Schritt sollten Sie die Nginx-Konfiguration mit Hilfe der Dokumentation anpassen. Tipp: Geben Sie die IP-Adresse des Checkmk-Servers anstatt 127.0.0.1 ein, damit dieser sich direkt mit der Webseite example.com/nginx_status verbinden kann.

Wenn alles funktioniert, können Sie nun das Plugin auf der Agenten-Maschine installieren, indem Sie es entweder in das Plugin-Verzeichnis (/usr/lib/check_mk_agent/plug-in) kopieren oder die Agent Bakery benutzen. Wie beim apache_status-Plugin können Sie auch bei nginx_status eine Konfigurationsdatei (/etc/check_mk/nginx_status.cfg) nutzen, sollte die automatische Erkennung des Web-Servers fehlschlagen.

Der Status dieses Checks ist ebenfalls immer OK. Das Plugin trackt nur aktive Verbindungen, Anfragen/Verbindungen pro Sekunde und den Status der Verbindung. Die Service-Details zeigen Leistungsmerkmale, einschließlich Grafiken.

nginx_metrics

Wanted: IT Monitoring Superheroes

Do you have an interesting story about working with Checkmk?

We'd like to hear from you!

Learn more
checkmk superhero

By posting a comment to this blog article or by subscribing to our blog notification system, you agree to our Privacy and Cookie Policy and consent that tribe29 GmbH can process your data and may contact you, if needed, in regards to the above mentioned purposes.

We want to give you a good experience on this website.

In light of the General Data Protection Regulation, we are asking our audience to consent to the use of cookies by Checkmk and its partners to continue to our site.These cookies are used to personalize your user experience and support and improve the site. Please click “I Agree” below to consent to the use of this technology on the Checkmk website. Visit our Privacy Policy to learn more.

Your choices regarding cookies on this site.
Your preferences have been updated.
In order for the changes to take effect completely please clear your browser cookies and cache. Then reload the page.