One place for hosting & domains

      Überwachen

      Überwachen des Serverzustands mit Checkmk unter Ubuntu 18.04


      Der Autor hat den Open Internet/Free Speech Fund dazu ausgewählt, eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      Als Systemadministrator ist es eine bewährte Vorgehensweise, den aktuellen Zustand Ihrer Infrastruktur und Diensten zu kennen. Im Idealfall möchten Sie ausfallende Festplatten oder Anwendungsausfälle möglichst vor den Benutzern erkennen. Überwachungs-Tools wie Checkmk helfen Administratoren, diese Probleme zu erkennen und für einwandfreien Serverbetrieb zu sorgen.

      Im Allgemeinen kann Überwachungssoftware die Hardware, die Betriebszeit und den Servicestatus Ihrer Server verfolgen und Warnmeldungen ausgeben, wenn ein Fehler auftritt. In einem sehr einfachen Szenario würden Sie von einem Überwachungssystem alarmiert, wenn Dienste ausfallen. In einem robusteren Szenario würden Sie kurz nach dem Auftreten verdächtiger Anzeichen benachrichtigt werden, z. B. bei erhöhter Speichernutzung oder einer ungewöhnlichen Anzahl von TCP-Verbindungen.

      Es gibt verschiedene kostenlose und kommerzielle Überwachungslösungen mit unterschiedlichen Komplexitätsgraden und Funktionalitäten. Häufig ist die Installation, Konfiguration und Verwaltung dieser Tools kompliziert und zeitaufwändig.

      Checkmk ist jedoch eine robuste und installationsfreundliche Überwachungslösung. Als in sich geschlossenes Softwarepaket kombiniert es Nagios (populärer Open-Source-Alarmierungsdienst) mit Add-Ons zur Erfassung, Überwachung und grafischen Darstellung von Daten. Außerdem ist eine Weboberfläche von Checkmk mit dabei: ein umfassendes Tool, das viele der von Nagios bekannten Mängel ausgleicht. Es bietet ein benutzerfreundliches Dashboard, ein voll funktionsfähiges Benachrichtigungssystem und ein Repository mit einfach zu installierenden Überwachungsagenten für viele Linux-Distributionen. Ohne die Checkmk Weboberfläche müssten wir für verschiedene Aufgaben verschiedene Ansichten verwenden. All diese Funktionen zu konfigurieren, wäre ohne umfangreiche Dateiänderungen nicht möglich.

      In diesem Leitfaden richten wir Checkmk auf einem Ubuntu 18.04 Server ein und überwachen zwei separate Hosts. Wir überwachen sowohl den Ubuntu-Server selbst als auch einen separaten CentOS 7-Server. Das gleiche Prinzip lässt sich anwenden, um eine beliebige Anzahl weiterer Hosts zu einer Überwachungskonfiguration hinzuzufügen.

      Voraussetzungen

      • Ein Ubuntu 18.04-Server mit einem regulären non-root user mit sudo-Berechtigungen. In diesem Tutorial zur Server-Ersteinrichtung erfahren Sie, wie Sie den Server richtig vorbereiten.
      • Ein CentoOS7 Server mit einem regulären non-root user mit sudo-Berechtigungen. In diesem Tutorial zur Server-Ersteinrichtung erfahren Sie, wie Sie den Server richtig vorbereiten.

      Schritt 1 — Installieren von Checkmk unter Ubuntu

      Um unsere Überwachungsseite nutzen zu können, müssen wir zunächst Checkmk auf dem Ubuntu-Server installieren. Dadurch erhalten wir alle benötigten Tools. Checkmk liefert offizielle, sofort einsatzbereite Ubuntu-Paketdateien zur Installation des Softwarepakets.

      Für die neueste Version der Repository-Listen aktualisieren wir als erstes die Paketeliste:

      Auf der Paketelistenseite können die Pakete durchsucht werden. Im Seitenmenü kann unter anderem Ubuntu 18.04 ausgewählt werden.

      Laden Sie jetzt das Paket herunter:

      • wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Installieren Sie dann das neu heruntergeladene Paket:

      • sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Dieser Befehl installiert das Checkmk-Paket mit allen erforderlichen Abhängigkeiten, u. a. auch den Apache-Webserver, der für den Webzugriff auf die Überwachungsoberfläche verwendet wird.

      Nach Abschluss der Installation können wir auf den Befehl omd zugreifen. Versuchen Sie es:

      Der Befehl omd gibt Folgendes aus:

      Output

      Usage (called as root): omd help Show general help . . . General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, --help show available options of COMMAND

      Der Befehl omd kann alle Checkmk Instanzen auf unserem Server verwalten. Er kann alle Überwachungsdienste auf einmal starten und anhalten. Außerdem nutzen wir ihn zur Erstellung unserer Checkmk Instanz. Zuerst müssen wir allerdings die Firewall-Einstellungen aktualisieren, um den externen Zugriff auf Standard-Web-Ports zu ermöglichen.

      Schritt 2 — Anpassen der Firewall-Einstellungen

      Bevor wir mit Checkmk arbeiten können, muss der externe Zugriff auf den Webserver in der Firewall-Konfiguration erlaubt werden. Wenn Sie die einzelnen Schritte zur Konfiguration der Firewall in den Voraussetzungen befolgt haben, haben Sie eine UFW-Firewalleinrichtung, die den Serverzugriff einschränkt.

      Während der Installation registriert sich Apache bei UFW, damit der Apache-Zugriff ganz einfach über die Firewall aktiviert und deaktiviert werden kann.

      Verwenden Sie den folgenden Befehl, um den Zugriff auf Apache zu ermöglichen:

      Überprüfen Sie die Änderungen:

      Sie sehen, dass Apache unter den erlaubten Diensten genannt ist:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Das ermöglicht uns den Zugriff auf die Checkmk Weboberfläche.

      Im nächsten Schritt erstellen wir die erste Checkmk Überwachungsinstanz.

      Schritt 3 — Erstellen einer Checkmk Überwachungsinstanz

      Checkmk nutzt das Prinzip von Instanzen oder einzelnen Installationen, um verschiedene Checkmk-Kopien auf einem Server zu isolieren. In den meisten Fällen genügt eine Kopie von Checkmk, und so werden wir die Software auch in diesem Leitfaden konfigurieren.

      Zuerst müssen wir unserer neuen Instanz einen Namen geben. Wir verwenden in dem gesamten Text monitoring. Geben Sie Folgendes ein, um die Instanz zu erstellen:

      • sudo omd create monitoring

      Das Tool omd richtet alles automatisch für uns ein. Die Befehlsausgabe sieht etwa wie folgt aus:

      Output

      Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre. The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/ The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.) Please do a su - monitoring for administration of this site.

      In dieser Ausgabe sind URL-Adresse, Standard-Benutzername und Passwort für den Zugriff auf unsere Überwachungsoberfläche hervorgehoben. Die Instanz ist jetzt erstellt, muss aber noch gestartet werden. Geben Sie Folgendes ein, um die Instanz zu starten:

      • sudo omd start monitoring

      Jetzt werden alle erforderlichen Tools und Dienste sofort gestartet. Am Ende sehen wir eine Ausgabe, die bestätigt, dass alle unsere Dienste erfolgreich gestartet wurden:

      Output

      Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK

      Die Instanz wird ausgeführt.

      Öffnen Sie http://your_ubuntu_server_ip/monitoring/ im Webbrowser, um auf die Checkmk-Instanz zuzugreifen. Sie werden zur Eingabe eines Passworts aufgefordert. Verwenden Sie die auf dem Bildschirm voreingestellten Standardanmeldeinformationen. Wir werden diese später ändern.

      Der Checkmk-Bildschirm öffnet sich mit einem Dashboard, auf dem der Status aller unserer Dienste und Server aufgelistet ist. Es bietet zudem praktische Diagramme, die der Erde ähneln. Direkt nach der Installation sind diese leer. Wir werden uns aber in Kürze den Status unserer Dienste und Systeme anzeigen lassen.

      Leeres Checkmk Dashboard

      Im nächsten Schritt ändern wir das Standard-Passwort, um die Seite über diese Oberfläche zu sichern.

      Schritt 4 — Ändern des Administratorpassworts

      Während der Installation generiert Checkmk ein Zufallspasswort für den administrativen Benutzer cmkadmin. Das Passwort ist meist kurz und nicht sicher und sollte nach der Installation geändert werden. Wir können es über die Weboberfläche ändern.

      Öffnen Sie zuerst die Seite Users im Menü WATO – Configuration links. Die Liste zeigt alle Benutzer, die derzeit Zugriff auf die Seite Checkmk haben. Bei einer neuen Installation sind es nur zwei Benutzer. Der erste, automation, ist für die Verwendung mit Automatisierungstools vorgesehen. Der zweite ist der Benutzer cmkadmin, mit dem wir uns auf der Seite anmelden.

      Liste der Checkmk-Benutzer

      Klicken Sie auf das Stift-Symbol neben dem cmkadmin-Benutzer, um die Benutzerangaben, einschließlich des Passworts zu ändern.

      Bearbeitungsformular für administrative Checkmk-Benutzer

      Aktualisieren Sie das Passwort, fügen Sie eine Administrator-E-Mailadresse ein und nehmen Sie alle weiteren gewünschten Änderungen vor.

      Nach Speichern der Änderungen werden wir aufgefordert, uns erneut mit den neuen Zugangsdaten anzumelden. Tun Sie das und kehren Sie dann zum Dashboard zurück, auf dem wir noch etwas ausführen müssen, um unsere neue Konfiguration vollständig anwenden zu können.

      Öffnen Sie erneut die Seite Users im Menü WATO – Configuration links. Die orange Schaltfläche oben links mit der Bezeichnung 1 Change zeigt uns an, dass wir einige Änderungen an der Konfiguration von Checkmk vorgenommen haben, die wir noch speichern und aktivieren müssen. Das geschieht jedes Mal, wenn wir die Konfiguration des Überwachungssystems ändern, nicht nur nach der Bearbeitung der Anmeldedaten eines Benutzers. Um ausstehende Änderungen zu speichern und zu aktivieren, müssen wir auf diese Schaltfläche klicken und zustimmen, die aufgeführten Änderungen mit der Option Activate affected auf dem folgenden Bildschirm zu aktivieren.

      Liste der Checkmk-Benutzer nach Änderungen Ansicht Aktivieren der Konfigurationsänderungen bestätigenErfolgreich aktivierte Konfigurationsänderungen

      Nachdem die Änderungen aktiviert sind, werden die Daten des neuen Benutzers in die Konfigurationsdateien geschrieben und von allen Systemkomponenten verwendet. Checkmk benachrichtigt automatisch die einzelnen Komponenten des Überwachungssystems, lädt sie bei Bedarf neu und verwaltet alle notwendigen Konfigurationsdateien.

      Die Checkmk Installation ist jetzt einsatzbereit. Im nächsten Schritt fügen wir unserem Überwachungssystem den ersten Host hinzu.

      Schritt 5 — Überwachen des ersten Hosts

      Wir sind jetzt bereit, den ersten Host zu überwachen. Hierzu installieren wir zunächst check-mk-agent auf dem Ubuntu-Server. Dann beschränken wir den Zugriff auf die Überwachungsdaten mit xinetd.

      Die mit Checkmk installierten Komponenten sind für Empfang, Speicherung und Darstellung von Überwachungsdaten verantwortlich. Sie liefern die Daten nicht selbst.

      Um die eigentlichen Daten zu sammeln, verwenden wir den Checkmk Agent. Der Checkmk Agent, der speziell für diese Aufgabe entwickelt wurde, ist in der Lage, alle wichtigen Systemkomponenten auf einmal zu überwachen und diese Informationen an die Checkmk-Instanz zurückzumelden.

      Installieren des Agenten

      Der erste Host, der überwacht wird, ist your_ubuntu_server, also der Server, auf dem wir die Checkmk-Instanz installiert haben. 

      Zunächst müssen wir den Checkmk Agent installieren. Pakete für alle wichtigen Distributionen, wie z. B. Ubuntu, sind direkt auf der Weboberfläche verfügbar. Öffnen Sie die Seite Monitoring Agents im Menü WATO – Configuration links. Sie sehen die verfügbaren Agent-Downloads mit den beliebtesten Paketen unter dem ersten Abschnitt Packaged agents.

      Liste der verfügbaren Überwachungsagenten-Pakete

      Das Paket check-mk-agent_1.6.0p8-1_all.deb ist geeignet für Debian-basierte Distributionen, einschließlich Ubuntu. Kopieren Sie den Download-Link für dieses Paket aus dem Webbrowser und laden Sie das Paket unter dieser Adresse herunter.

      • wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

      Installieren Sie das Paket nach dem Herunterladen:

      • apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

      Überprüfen Sie, ob der Agent erfolgreich installiert wurde:

      Der Befehl gibt einen sehr langen Text aus, der unverständlich wirkt, aber alle wichtigen Informationen über das System kombiniert.

      Output

      <<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>

      Checkmk nutzt die Ausgabe dieses Befehls, um die Statusdaten der überwachten Hosts zu sammeln. Mit xinetd beschränken wir den Zugriff auf die Überwachungsdaten.

      Zugriffsbeschränkungen auf Überwachungsdaten mit xinetd

      Standardmäßig werden die Daten von check_mk_agent mit Hilfe von xinetd bereitgestellt, einem Mechanismus, der Daten beim Zugriff auf einen bestimmten Netzwerk-Port ausgibt. Das bedeutet, dass wir auf check_mk_agent mit Hilfe von telnet auf Port 6556 (Standard-Port für Checkmk) von jedem Computer im Internet zugreifen können, sofern die Firewall-Konfiguration dies nicht untersagt.

      Wichtige Informationen über Server sollten aus Sicherheitsgründen nicht im Internet veröffentlicht werden. Wir sollten nur Hosts, die Checkmk ausführen und von uns überwacht werden, den Datenzugriff erlauben, damit nur unser Überwachungssystem diese sammeln kann.

      Wenn Sie dem Tutorial zur Server-Ersteinrichtung gefolgt sind, darunter den Schritten zur Einrichtung einer Firewall, ist der Zugriff auf den Checkmk Agent standardmäßig blockiert. Es ist jedoch empfehlenswert, diese Zugriffsbeschränkungen direkt in der Dienstkonfiguration vorzunehmen und sich bei deren Überwachung nicht allein auf die Firewall zu verlassen.

      Um den Zugriff auf die Agentendaten zu beschränken, müssen wir die Konfigurationsdatei unter /etc/xinetd.d/check_mk bearbeiten. Öffnen Sie die Konfigurationsdatei in einem beliebigen Editor. Um Nano zu verwenden, geben Sie Folgendes ein:

      • sudo nano /etc/xinetd.d/check_mk

      Suchen Sie nach diesem Abschnitt:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Die Einstellung only_from schränkt den Zugang auf bestimmte IP-Adressen ein. Da wir nun daran arbeiten, den gleichen Server zu überwachen, auf dem Checkmk ausgeführt wird, ist es in Ordnung, nur localhost das Verbinden zu erlauben. Entfernen Sie den Kommentar und aktualisieren Sie die Konfigurationseinstellung in:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = 127.0.0.1
      . . .
      

      Speichern und schließen Sie die Datei.

      Der xinetd Daemon muss neu gestartet werden, damit die Änderungen übernommen werden. Tun Sie das jetzt:

      • sudo systemctl restart xinetd

      Der Agent wird nun ausgeführt und ist darauf beschränkt, nur lokale Verbindungen zu akzeptieren. Wir können jetzt die Überwachung für diesen Host mit Hilfe von Checkmk konfigurieren.

      Konfigurieren des Host auf der Checkmk Weboberfläche

      Um einen neuen zu überwachenden Host hinzuzufügen, gehen wir in das Menü Hosts im Menü WATO – Configuration links. Hier klicken Sie auf Create new host. Wir werden nach einigen Informationen über den Host gefragt.

      Erstellen eines neuen Hosts in Checkmk

      Der Hostname ist der bekannte Name, den Checkmk für die Überwachung verwenden wird. Es kann sich um einen vollwertigen Domänennamen handeln, muss aber nicht. In diesem Beispiel nennen wir den Host monitoring, genau wie der Name der Checkmk-Instanz selbst. Da monitoring auf unsere IP-Adresse nicht aufgelöst werden kann, müssen wir auch die IP-Adresse unseres Servers angeben. Und da der lokale Host überwacht wird, lautet die IP einfach 127.0.0.1. Markieren Sie das Feld IPv4 Address, um die manuelle IP-Eingabe zu aktivieren und geben Sie den Wert in das Textfeld ein.

      Die Standardkonfiguration des Abschnitts Data Sources benötigt Checkmk Agent, um die Überwachungsdaten bereitzustellen. Die Einstellung Segment Networking wird verwendet, um Hosts in Remote-Netzwerken zu kennzeichnen, die eine höhere erwartete Latenz haben, was keine Fehlfunktion darstellt. Da es sich um einen lokalen Host handelt, ist die Standardeinstellung auch hier in Ordnung.

      Um den Host zu speichern und zu konfigurieren, welche Dienste überwacht werden, klicken Sie auf die Schaltfläche Save & go to services.

      Liste der verfügbaren Dienste zur Überwachung

      Checkmk führt eine automatische Bestandsaufnahme durch. Das bedeutet, dass es die Ausgabe des Agenten sammelt und entschlüsselt, um festzustellen, welche Arten von Diensten überwacht werden können. Alle verfügbaren Dienste zur Überwachung finden sich in der Liste, einschließlich der CPU-Speichernutzung und des freien Festplattenspeicherplatzes.

      Um die Überwachung aller ermittelten Dienste zu aktivieren, müssen wir unter dem Abschnitt Undecided services (currently not monitored) auf die Schaltfläche Monitor klicken. Dadurch wird die Seite aktualisiert, aber alle Dienste werden im Abschnitt Monitored services aufgelistet. Das zeigt uns, dass sie tatsächlich überwacht werden.

      So wie bei der Änderung unseres Benutzerpassworts müssen diese neuen Änderungen gespeichert und aktiviert werden, bevor sie live gehen. Betätigen Sie die Schaltfläche 2 changes und nehmen Sie die Änderungen über die Schaltfläche Activate affected an. Danach wird die Host-Überwachung ausgeführt.

      Sie können nun mit den Serverdaten arbeiten. Sehen Sie sich das Haupt-Dashboard über den Menüpunkt Overview/Main Overview links an.

      Arbeiten mit Überwachungsdaten

      Sehen wir uns das Haupt-Dashboard über den Menüpunkt Overview/Main Overview links an:

      Überwachungs-Dashboard mit allen fehlerfreien Diensten

      Die Erdkugel ist komplett grün und die Tabelle zeigt an, dass ein Host problemlos funktioniert. Wir können (über das Menü links) die vollständige Host-Liste in der Ansicht Hosts/All hosts sehen, die jetzt einen einzelnen Host enthält.

      Liste der Hosts mit allen fehlerfreien Diensten

      Dort sehen wir, wie viele Dienste fehlerfrei funktionieren (grün dargestellt), wie viele gestört sind und wie viele noch zu überprüfen sind. Nachdem wir auf den Hostnamen geklickt haben, sehen wir die Liste aller Dienste mit ihrem vollständigen Status und ihren Perf-O-Meters. Perf-O-Meter zeigt die Leistung eines einzelnen Dienstes im Verhältnis zu dem, was Checkmk als guten Zustand betrachtet.

      Details eines Host-Dienstestatus

      Alle Dienste, die diagrammfähige Daten liefern, zeigen ein Diagrammsymbol neben ihrem Namen. Über dieses Symbol lassen sich die mit dem Dienst verknüpften Diagramme öffnen. Da die Host-Überwachung noch neu ist, zeigen die Diagramme noch fast nichts. Nach einiger Zeit liefern sie jedoch wertvolle Informationen darüber, wie sich unsere Dienstleistung verändert.

      Diagramme zur Darstellung der CPU-Last auf dem Server

      Wenn einer der Dienste ausfällt oder wiederhergestellt wird, wird diese Information im Dashboard angezeigt. Ausgefallene Dienste werden mit einer roten Fehleranzeige gekennzeichnet und sind auch im Erddiagramm sichtbar.

      Dashboard mit einem Host mit Problemen

      Nach erfolgreicher Wiederherstellung wechselt die Anzeige auf Grün für ordnungsgemäßen Betrieb. Das Ereignisprotokoll rechts zeigt jedoch alle vergangenen Störungen an.

      Dashboard mit einem Host, der nach den Problemen wiederhergestellt wurde

      Nachdem wir uns das Dashboard jetzt etwas genauer angesehen haben, fügen wir einen zweiten Host zu unserer Überwachungsinstanz hinzu.

      Schritt 6 — Überwachung eines zweiten CentOS Hosts

      Überwachung ist vor allem für mehrere Hosts sehr nützlich. Wir fügen zu unserer Checkmk-Instanz einen zweiten Server hinzu. Dieser läuft unter CentOS 7.

      Wie bei unserem Ubuntu-Server ist die Installation von Checkmk Agent erforderlich, um Überwachungsdaten auf CentOS zu sammeln. Dieses Mal benötigen wir jedoch ein rpm Paket von der Seite Monitoring Agents auf der Weboberfläche, das so genannte check-mk-agent-1.6.0p8-1.noarch.rpm.

      Zuerst müssen wir jedoch xinetd installieren, das standardmäßig nicht auf der CentOS Installation verfügbar ist. Wir erinnern uns: Xinetd ist ein Daemon, der dafür verantwortlich ist, die von check_mk_agent bereitgestellten Überwachungsdaten über das Netzwerk verfügbar zu machen.

      Auf Ihrem CentOS-Server installieren Sie zuerst xinetd:

      • sudo yum install -y xinetd

      Jetzt können wir das für unseren CentOS-Server benötigte Überwachungsagenten-Paket herunterladen und installieren:

      • sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

      Wie zuvor können wir überprüfen, ob der Agent richtig funktioniert, indem wir check_mk_agent ausführen:

      Die Ausgabe ist ähnlich wie die vom Ubuntu-Server. Jetzt beschränken wir den Zugriff auf den Agenten.

      Zugriff einschränken

      Dieses Mal überwachen wir keinen lokalen Host. Deshalb muss xinetd Verbindungen vom Ubuntu-Server erlauben, auf dem Checkmk installiert ist, um Daten zu sammeln. Um das zu erlauben, öffnen Sie zunächst Ihre Konfigurationsdatei:

      • sudo vi /etc/xinetd.d/check_mk

      Hier sehen Sie die Konfiguration für Ihren check_mk Dienst, die spezifiziert, wie auf Checkmk Agent über den xinetd Daemon zugegriffen werden kann. Suchen Sie nach den folgenden zwei kommentierten Zeilen:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Entfernen Sie den Kommentar der zweiten Zeile und ersetzen Sie die lokalen IP-Adressen durch your_ubuntu_server_ip:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = your_ubuntu_server_ip
      . . .
      

      Speichern und schließen Sie die Datei. indem Sie :x und dann ENTER eingeben. Starten Sie den xinetd Dienst neu mit:

      • sudo systemctl restart xinetd

      Wir können jetzt fortfahren, um Checkmk so zu konfigurieren, dass er unseren CentOS 7-Host überwacht.

      Konfigurieren des neuen Host in Checkmk

      Um zusätzliche Hosts zu Checkmk hinzuzufügen, nutzen wir das gleiche Hosts Menü wie zuvor. Dieses Mal nennen wir den Host centos, konfigurieren seine IP-Adresse und wählen WAN (high-latency) unter dem Auswahlfeld Networking Segment, da sich der Host in einem anderen Netzwerk befindet. Wenn wir den Punkt überspringen und ihn als lokal belassen würden, würde uns Checkmk bald darauf aufmerksam machen, dass der Host nicht funktioniert, da erwartet würde, dass er auf Agentenanfragen wesentlich schneller reagierte als über das Internet möglich.

      Bildschirm Erstellen einer zweiten Host-Konfiguration

      Klicken Sie auf Save & go to services, um die für die Überwachung auf dem CentOS-Server verfügbaren Dienste anzuzeigen. Die Liste ist der des ersten Hosts sehr ähnlich. Auch diesmal müssen wir auf Monitor klicken und die Änderungen mit der orangen Schaltfläche oben links aktivieren.

      Nach Aktivierung der Änderungen können wir überprüfen, dass der Host auf der Seite All hosts überwacht wird. Gehen Sie dorthin. Es sind jetzt zwei Hosts, monitoring und centos, sichtbar.

      Liste der Hosts mit zwei überwachten Hosts

      Sie überwachen nun einen Ubuntu-Server und einen CentOS-Server mit Checkmk. Es ist möglich, noch mehr Hosts zu überwachen. Die einzige Einschränkung ist die Serverleistung. Wenn es sich jedoch nicht um mehrere hundert Hosts handelt, sollte dies kein Problem darstellen. Das Verfahren ist für jeden weiteren Host identisch. Checkmk Agenten in deb und rpm Paketen arbeiten auf Ubuntu, CentOS und den meisten anderen Linux-Distributionen.

      Zusammenfassung

      In diesem Leitfaden haben wir Ihnen gezeigt, wie Sie zwei Server mit zwei verschiedenen Linux-Distributionen einrichten: Ubuntu und CentOS. Wir haben dann Checkmk zur Überwachung der Server installiert und konfiguriert und uns die leistungsfähige Weboberfläche von Checkmk näher angesehen.

      Checkmk ermöglicht das einfache Einrichten eines kompletten, vielseitigen Überwachungssystems, das den Aufwand der manuellen Konfiguration in eine einfach zu bedienende Weboberfläche mit vielen Optionen und Funktionen verwandelt. Mit diesen Tools können Sie mehrere Hosts überwachen, E-Mail-, SMS- oder Push-Benachrichtigungen für Probleme einrichten, zusätzliche Kontrollen für weitere Dienste einrichten, Erreichbarkeit und Leistung überwachen usw.

      Um mehr über Checkmk zu erfahren, sehen Sie sich auch die offizielle Dokumentation an.



      Source link

      Überwachen von BGP-Ankündigungen und -Routen mit BGPalerter unter Ubuntu 18.04


      Der Autor hat den COVID-19 Relief Fund dazu ausgewählt, eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      BGP (Border Gateway Protocol) ist eines der Kernprotokolle, die für das Weiterleiten von Paketen über das Internet verantwortlich sind. Wenn es also schief geht, können erhebliche Ausfälle auftreten. Beispielsweise hat ein kleiner ISP im Jahr 2019 eine BGP-Fehlkonfiguration vorgenommen, die sich leider im Upstream verbreitet und große Teile von Cloudflare und AWS über eine Stunde lang offline geschaltet hat. Ein Jahr zuvor fand außerdem ein BGP-Hijack statt, um den Datenverkehr zu einem bekannten Kryptowährungs-Wallet-Anbieter abzufangen und die Gelder ahnungsloser Kunden zu stehlen.

      BGPalerter ist ein Open-Source-Tool zur Überwachung des BGP-Netzwerks, das Echtzeit-Warnungen zu BGP-Aktivitäten, einschließlich Routensichtbarkeit und Ankündigungen neuer Routen, sowie potenziell schädliche Aktivitäten wie Routen-Hijacking oder Routenlecks bereitstellen kann. BGPalerter nimmt automatisch öffentlich verfügbare Netzwerkroutinginformationen auf, was bedeutet, dass es keinen privilegierten Zugriff oder keine Integration in die Netzwerke haben muss, die Sie überwachen möchten.

      Hinweis: BGPalerter nimmt automatisch öffentlich verfügbare Netzwerkroutinginformationen auf, was bedeutet, dass es keinen privilegierten Zugriff oder keine Integration in die Netzwerke haben muss, die Sie überwachen möchten. Alle Überwachungen entsprechen vollständig dem Gesetz über Computermissbrauch, dem Gesetz über Computerbetrug und -missbrauch und anderen ähnlichen Gesetzen. Es wird jedoch empfohlen, relevante Ergebnisse dem betroffenen Netzwerkbetreiber verantwortungsbewusst mitzuteilen.

      In diesem Tutorial installieren und konfigurieren Sie BGPalerter, um Ihre wichtigen Netzwerke auf potenziell verdächtige Aktivitäten zu überwachen.

      Voraussetzungen

      Um diesem Tutorial zu folgen, benötigen Sie:

      • Einen Ubuntu 18.04-Server, der gemäß der Ersteinrichtung eines Servers unter Ubuntu 18.04 eingerichtet wurde, einschließlich eines sudo non-root users.

      • Ein oder mehrere Netzwerke oder Geräte, die Sie überwachen möchten, zum Beispiel:

        • Einen Server, den Sie verwalten
        • Ihr Firmennetzwerk
        • Ihre lokale ISP

      Für jedes Gerät oder Netzwerk müssen Sie entweder die individuelle IP-Adresse, den IP-Adressbereich oder die Nummer des autonomen Systems angeben, zu der es gehört. Dies ist in Schritt 1 abgedeckt.

      Sobald Sie diese zur Verfügung haben, melden Sie sich zunächst als non-root user auf Ihrem Server an.

      Schritt 1 – Identifizieren der zu überwachenden Netzwerke

      In diesem Schritt sehen Sie die relevanten Details der Netzwerke, die Sie überwachen möchten.

      BGPalerter kann anhand einzelner IP-Adressen oder Netzwerkpräfixe überwachen. Es kann auch ganze Netzwerke anhand ihrer AS-Nummer (Autonomous System) überwachen. Dies ist eine global eindeutige Kennung für ein Netzwerk, das einer bestimmten Verwaltungseinheit gehört.

      Um diese Informationen zu finden, können Sie den Suchdienst IP-to-ASN WHOIS verwenden, der vom Bedrohungsnachrichtendienst Team Cymru bereitgestellt wird. Dies ist ein benutzerdefinierter WHOIS-Server, mit dem IP-Adressen und Netzwerkroutinginformationen abgerufen werden können.

      Wenn Sie whois noch nicht installiert haben, können Sie es mit den folgenden Befehlen installieren:

      • sudo apt update
      • sudo apt install whois

      Sobald Sie die Installation von whois bestätigt haben, wird nun die IP-Adresse Ihres eigenen Servers anhand des Arguments -h angezeigt, um einen benutzerdefinierten Server anzugeben:

      • whois -h whois.cymru.com your-ip-address

      Dies gibt ein Ergebnis ähnlich dem folgenden aus, das den AS-Namen und die AS-Nummer anzeigt, zu der Ihr Server gehört. Dies ist normalerweise der AS Ihres Server-Hosting-Anbieters, z. B. DigitalOcean.

      Output

      AS | IP | AS Name 14061 | your-ip-address | DIGITALOCEAN-ASN, US

      Als Nächstes können Sie eine Suche durchführen, um das Netzwerkpräfix/den Netzwerkbereich zu ermitteln, zu dem Ihr Server gehört. Dazu fügen Sie Ihrer Anfrage das Argument -p hinzu:

      • whois -h whois.cymru.com " -p your-ip-address"

      Die Ausgabe ist dem vorherigen Befehl sehr ähnlich, zeigt jedoch jetzt das IP-Adresspräfix an, zu dem die IP-Adresse Ihres Servers gehört:

      Output

      AS | IP | BGP Prefix | AS Name 14061 | your-ip-address | 157.230.80.0/20 | DIGITALOCEAN-ASN, US

      Schließlich können Sie weitere Details des AS nachschlagen, zu dem Ihr Server gehört, einschließlich der geografischen Region und des Zuordnungsdatums.

      Ersetzen Sie die AS-Nummer, die Sie mit den vorherigen Befehlen identifiziert haben. Mit dem Argument -v aktivieren Sie die ausführliche Ausgabe, um sicherzustellen, dass alle relevanten Details angezeigt werden:

      • whois -h whois.cymru.com " -v as14061"

      Die Ausgabe zeigt weitere Informationen zur AS:

      Output

      AS | CC | Registry | Allocated | AS Name 14061 | US | arin | 2012-09-25 | DIGITALOCEAN-ASN, US

      Sie haben wichtige Details zu den Netzwerken identifiziert, die Sie überwachen möchten. Notieren Sie sich diese Details irgendwo, da Sie sie später benötigen. Als Nächstes beginnen Sie mit der Einrichtung von BGPalerter.

      Schritt 2 – Erstellen eines nicht privilegierten Benutzers für BGPalerter

      In diesem Schritt erstellen Sie ein neues nicht privilegiertes Benutzerkonto für BGPalerter, da das Programm nicht mit sudo-/root-Berechtigungen ausgeführt werden muss.

      Erstellen Sie zunächst einen neuen Benutzer mit einem deaktivierten Passwort:

      • sudo adduser --disabled-password bgpalerter

      Sie müssen weder ein Passwort noch SSH-Schlüssel einrichten, da Sie diesen Benutzer nur als Dienstkonto zum Ausführen/Verwalten von BGPalerter verwenden.

      Melden Sie sich mit su beim neuen Benutzer an:

      Sie werden jetzt als neuer Benutzer angemeldet:

      bgpalerter@droplet:/home/user$
      

      Verwenden Sie den Befehl cd, um in das Ausgangsverzeichnis Ihres neuen Benutzers zu wechseln:

      bgpalerter@droplet:/home/user$ cd
      bgpalerter@droplet:~$
      

      Sie haben einen neuen nicht privilegierten Benutzer für BGPalerter erstellt. Als Nächstes installieren und konfigurieren Sie BGPalerter auf Ihrem System.

      Schritt 3 — Installieren und Konfigurieren von BGPalerter

      In diesem Schritt installieren und konfigurieren Sie BGPalerter. Stellen Sie sicher, dass Sie als Ihr neuer nicht privilegierter Benutzer noch angemeldet sind.

      Zuerst müssen Sie die neueste Version von BGPalerter identifizieren, um sicherzustellen, dass Sie die aktuellste Version herunterladen. Navigieren Sie zur Seite BGPalerter Releases und kopieren Sie den Download-Link für die neueste Linux x64-Version.

      Sie können jetzt eine Kopie von BGPalerter mit wget herunterladen und dabei sicherstellen, dass Sie den richtigen Download-Link verwenden:

      • wget https://github.com/nttgin/BGPalerter/releases/download/v1.24.0/bgpalerter-linux-x64

      Markieren Sie die heruntergeladene Datei als ausführbar:

      • chmod +x bgpalerter-linux-x64

      Überprüfen Sie als Nächstes, ob BGPalerter erfolgreich heruntergeladen und installiert wurde, indem Sie die Versionsnummer überprüfen:

      • ./bgpalerter-linux-x64 --version

      Dadurch wird die aktuelle Versionsnummer ausgegeben:

      Output

      1.24.0

      Bevor Sie BGPalerter ordnungsgemäß ausführen können, müssen Sie die Netzwerke, die Sie überwachen möchten, in einer Konfigurationsdatei definieren. Erstellen und öffnen Sie die Datei prefixes.yml in Ihrem bevorzugten Texteditor:

      In dieser Konfigurationsdatei geben Sie jede der einzelnen IP-Adressen, IP-Adressbereiche und AS-Nummern an, die Sie überwachen möchten.

      Fügen Sie das folgende Beispiel hinzu und passen Sie die Konfigurationswerte mithilfe der in Schritt 1 angegebenen Netzwerkinformationen nach Bedarf an:

      ~/prefixes.yml

      your-ip-address/32:
        description: My Server
        asn:
          - 14061
        ignoreMorespecifics: false
      
      157.230.80.0/20:
        description: IP range for my Server
        asn:
          - 14061
        ignoreMorespecifics: false
      
      options:
        monitorASns:
          '14061':
            group: default
      

      Sie können beliebig viele IP-Adressbereiche oder AS-Nummern überwachen. Um einzelne IP-Adressen zu überwachen, stellen Sie sie mit /32 für IPv4 und /128 für IPv6 dar.

      Der Wert ignoreMorespecifics wird verwendet, um zu steuern, ob BGPalerter Aktivitäten für Routen ignorieren soll, die spezifischer (kleiner) sind als die, die Sie überwachen. Wenn Sie beispielsweise eine /20 überwachen und eine Routingänderung für eine /24 darin festgestellt wird, wird dies als spezifischer angesehen. In den meisten Fällen möchten Sie diese nicht ignorieren. Wenn Sie jedoch ein großes Netzwerk mit mehreren delegierten Kundenpräfixen überwachen, kann dies dazu beitragen, Hintergrundgeräusche zu reduzieren.

      Sie können BGPalerter jetzt zum ersten Mal ausführen, um mit der Überwachung Ihrer Netzwerke zu beginnen:

      Wenn BGPalerter erfolgreich gestartet wird, wird eine Ausgabe ähnlich der folgenden angezeigt. Beachten Sie, dass es manchmal einige Minuten dauern kann, um die Überwachung zu beginnen:

      Output

      Impossible to load config.yml. A default configuration file has been generated. BGPalerter, version: 1.24.0 environment: production Loaded config: /home/bgpalerter/config.yml Monitoring 157.230.80.0/20 Monitoring your-ip-address/32 Monitoring AS 14061

      BGPalerter wird so lange ausgeführt, bis Sie es mit Strg + C stoppen.

      Im nächsten Schritt interpretieren Sie einige der Warnungen, die BGPalerter generieren kann.

      Schritt 4 – Interpretieren von BGPalerter-Warnungen

      In diesem Schritt werden einige beispielhafte BGPalerter-Warnungen überprüft. BGPalerter gibt Warnungen an den Hauptausgabe-Feed und optional an zusätzliche Berichtsendpunkte aus, die in config.yml konfiguriert werden können, wie in der BGPalerter-Dokumentation beschrieben.

      Standardmäßig überwacht und alarmiert BGPalerter Folgendes:

      • Routen-Hijacks: treten auf, wenn eine AS ein Präfix ankündigt, das nicht zulässig ist, wodurch der Datenverkehr fälschlicherweise weitergeleitet wird. Dies kann entweder ein absichtlicher Angriff oder ein versehentlicher Konfigurationsfehler sein.

      • Verlust der Routensichtbarkeit: Eine Route wird als sichtbar angesehen, wenn die meisten BGP-Router im Internet zuverlässig darauf routen können. Ein Verlust der Sichtbarkeit bezieht sich darauf, dass Ihr Netzwerk möglicherweise nicht verfügbar ist, z. B. wenn Ihr BGP-Peering nicht mehr funktioniert.

      • Neue Unterpräfixankündigungen: Wenn eine AS beginnt, ein Präfix anzukündigen, das kleiner ist als erwartet. Dies kann auf eine beabsichtigte Konfigurationsänderung, eine versehentliche Fehlkonfiguration oder in einigen Fällen auf einen Angriff hinweisen.

      • Aktivität innerhalb Ihrer AS: bezieht sich normalerweise auf neue Routenankündigungen. Eine Route wird als „neu“ angesehen, wenn BGPalerter noch nichts von ihr weiß.

      Im Folgenden finden Sie einige Beispielwarnungen sowie eine kurze Beschreibung ihrer Bedeutung:

      Alert #1

      The prefix 203.0.113.0/24 is announced by AS64496 instead of AS65540
      

      Diese Warnung zeigt Hinweise auf einen Routen-Hijack, bei dem AS64496 203.0.113.0/24 angekündigt hat, wenn erwartet wird, dass diese Route von AS65540 angekündigt wird. Dies ist ein starker Indikator für eine Fehlkonfiguration, die zu einem Routenleck oder zu absichtlichem Hijacking durch einen Angreifer führt.

      Alert #2

      The prefix 203.0.113.0/24 has been withdrawn. It is no longer visible from 6 peers
      

      Diese Warnung zeigt an, dass das Netzwerk 203.0.113.0/24 nicht mehr sichtbar ist. Dies kann an einem Upstream-Routing-Problem liegen oder an einem Stromausfall eines Routers.

      Alert #3

      A new prefix 203.0.113.0/25 is announced by AS64496. It should be instead 203.0.113.0/24 announced by AS64496
      

      Diese Warnung zeigt an, dass ein spezifischeres Präfix angekündigt wurde, wenn es nicht erwartet wird, z. B. indem eine /25 angekündigt wird, wenn nur eine /24 erwartet wird. Dies ist höchstwahrscheinlich eine Fehlkonfiguration, kann jedoch in einigen Fällen ein Hinweis auf einen Routen-Hijack sein.

      Alert #4

      AS64496 is announcing 192.0.2.0/24 but this prefix is not in the configured list of announced prefixes
      

      Schließlich zeigt diese Warnung, dass AS64496 ein Präfix angekündigt hat, über das BGPalerter noch nichts weiß. Dies kann daran liegen, dass Sie zu Recht ein neues Präfix ankündigen, oder an einer Fehlkonfiguration, die dazu führt, dass Sie versehentlich ein Präfix ankündigen, das einer anderen Person gehört.

      In diesem Schritt haben Sie einige Beispiel-BGPalerter-Warnungen überprüft. Als Nächstes konfigurieren Sie BGPalerter so, dass es beim Booten automatisch ausgeführt wird.

      Schritt 5 — Starten von BGPalerter beim Booten

      In diesem letzten Schritt konfigurieren Sie BGPalerter so, dass es beim Booten ausgeführt wird.

      Stellen Sie sicher, dass Sie weiterhin als Ihr neuer nicht privilegierter Benutzer angemeldet sind, und öffnen Sie dann den crontab-Editor:

      Fügen Sie als Nächstes den folgenden Eintrag am Ende der crontab-Datei hinzu:

      crontab

      @reboot sleep 10; screen -dmS bgpalerter "./bgpalerter-linux-x64"
      

      Bei jedem Systemstart wird eine getrennte Bildschirmsitzung mit dem Namen ‘bgpalerter’ erstellt und BGPalerter darin gestartet.

      Speichern und schließen Sie den crontab-Editor. Vielleicht möchten Sie Ihr System jetzt neu starten, um sicherzustellen, dass BGPalerter beim Booten richtig startet.

      Sie müssen sich zuerst von Ihrem BGPalerter-Benutzer abmelden:

      Fahren Sie dann mit einem normalen Systemneustart fort:

      Melden Sie sich nach dem Neustart Ihres Systems erneut bei Ihrem Server an und verwenden Sie su, um erneut auf Ihren BGPalerter-Benutzer zuzugreifen:

      Sie können dann jederzeit eine Verbindung zur Sitzung herstellen, um die Ausgabe von BGPalerter anzuzeigen:

      In diesem letzten Schritt konfigurieren Sie BGPalerter so, dass es beim Booten ausgeführt wird.

      Zusammenfassung

      In diesem Artikel haben Sie BGPalerter eingerichtet und damit Netzwerke auf Änderungen des BGP-Routings überwacht.

      Wenn Sie BGPalerter benutzerfreundlicher gestalten möchten, können Sie es so konfigurieren, dass Warnungen über einen Webhook an einen Slack-Kanal gesendet werden:

      Wenn Sie mehr über BGP selbst erfahren möchten, aber keinen Zugriff auf eine Produktions-BGP-Umgebung haben, können Sie DN42 verwenden, um mit BGP in einer sicheren, isolierten Umgebung zu experimentieren:



      Source link