GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So überwachen Sie Hosts mit dem Linux-Icinga-Überwachungstool

Die Überwachung ist einer der kritischsten Aspekte der Infrastruktur, und das Icinga-Überwachungstool bietet eine Vielzahl von Optionen zur Auswahl. Mit Icinga können Sie Ihre gesamte Infrastruktur basierend auf Konfigurationen flexibel überwachen.

In diesem Artikel erfahren Sie, wie Sie Ihre Server mit dem Icinga2-Überwachungsstapel überwachen. Sie installieren den Stack und richten die verteilte Überwachung ein.

Bereit? Spring direkt hinein!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Um mitzumachen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Zwei Linux-Maschinen – Dieses Tutorial verwendet Ubuntu 20.04-Server auf beiden Mastern (Master ) und Mandant (client01 ) Server.
  • Ein Benutzer mit Root-Rechten auf beiden Geräten.
  • MariaDB installiert und läuft auf dem Master-Server.

FQDN auf allen Servern einrichten

Icinga2 ist eine unternehmenstaugliche Überwachungslösung, mit der Sie Serverinfrastrukturen und Anwendungen an vielen Standorten überwachen können.

Sie richten vollständig qualifizierte Domänennamen (FQDN) für alle Ihre Server ein, was die Serververwaltung in großen Umgebungen vereinfacht. Die Domäne in diesem Tutorial heißt example.lan, Sie können jedoch eine vorhandene lokale Domäne verwenden.

Beachten Sie, dass Sie die folgenden Befehle auf beiden Servern ausführen müssen. Ändern Sie die Werte entsprechend.

1. Öffnen Sie Ihr Terminal und verbinden Sie sich mit dem Server.

2. Führen Sie als Nächstes jeden der folgenden Befehle aus, um den FQDN auf den Master- und Clientcomputern einzurichten. FQDN für die Server sind master.example.lan (Meister ) und client01.example.lan (client01 ).

# Set FQDN on master server
sudo hostnamectl set-hostname master.example.lan

# Set FQDN on client01 server
sudo hostnamectl set-hostname client01.example.lan

3. Bearbeiten Sie die /etc/hosts Datei mit Ihrem bevorzugten Texteditor und füllen Sie den Eintrag unten aus. Ersetzen Sie die IP-Adressen durch die tatsächlichen Serveradressen.

# /etc/hosts for master
172.16.1.10   master.example.lan   master

# /etc/hosts for client01
172.16.1.30   client01.example.lan   client01

4. Führen Sie schließlich den folgenden Befehl aus, um den FQDN zu überprüfen.

hostname --fqdn

Installieren von Icinga2 und Monitoring-Plugins

Wenn der FQDN konfiguriert ist, ist es an der Zeit, Icinga2 zu installieren. Sie installieren die apt-Pakete sowohl für icinga2 als auch für Überwachungs-Plugins. Diese Pakete sind die Hauptkomponente von Icinga2 und dem Plugin, das Skripte für die Systemüberwachung bereitstellt.

Die Installation von Icinga2 und Monitoring-Plugins sollte auf den Master- und Client01-Servern erfolgen.

1. Führen Sie den folgenden apt install aus Befehl zum sicheren Installieren von Paketabhängigkeiten über HTTPS (apt-transport-https ) und überprüfen Sie den GPG-Schlüssel.

sudo apt install -y apt-transport-https wget gnupg

2. Führen Sie als Nächstes wget aus Befehl zum Herunterladen des GPG-Schlüssels von Icinga2. Der geleitete apt-key Der Befehl fügt den GPG-Schlüssel hinzu, um die Integrität der Icinga2-Pakete zu überprüfen.

wget -O - https://packages.icinga.com/icinga.key | apt-key add -

3. Führen Sie jeden der folgenden Befehle aus, um das Icinga2 apt-Repository auf Ihrem Computer hinzuzufügen.

# Adding repository for icinga2
. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \
echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
/etc/apt/sources.list.d/${DIST}-icinga.list
echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
/etc/apt/sources.list.d/${DIST}-icinga.list

# Verify the Icinga2 apt repository is added
cat /etc/apt/sources.list.d/focal-icinga.list

4. Führen Sie zuletzt den apt aus Befehle unten, um den Paketindex zu aktualisieren und die Pakete zu installieren.

# Refresh package index
sudo apt update

# Installing package
sudo apt install icinga2 monitoring-plugins -y

Installieren des IDO MySQL-Treibers auf dem Master-Server

Icinga2 ist installiert und fast betriebsbereit. Aber damit Icinga2 richtig funktioniert, braucht es eine Datenbank. Sie installieren also den IDO MySQL-Treiber und richten die Datenbankverbindung auf Ihrem Master-Server ein.

Das Icinga2-Repository stellt den icinga2-ido-mysql bereit Paket. Das Paket ist ein Datenbanktreiber, der für MySQL- und MariaDB-Server funktioniert.

1. Führen Sie den Befehl unten aus, um icinga2-ido-mysql zu installieren Paket.

sudo apt install -y icinga2-ido-mysql

2. Wählen Sie Ja aus wenn Sie dazu aufgefordert werden, den Treiber einzurichten und eine Datenbank zu erstellen, wie unten gezeigt. Die Konfiguration legt icinga2 als Datenbankbenutzer fest und generiert eine neue Datei, /etc/icinga2/features-available/ido-mysql.conf .

3. Wählen Sie nun Ja um das ido-mysql zu aktivieren Funktion auf Icinga2, die automatisch eine neue Datenbank und einen neuen Benutzer für Icinga2 erstellt.

4. Geben Sie ein Passwort für den MariaDB-Benutzer icinga2 ein und wählen Sie OK um die icinga2-ido-mysql-Installation abzuschließen.

5. Führen Sie als Nächstes cat aus Befehl unten, um den Inhalt von /etc/icinga2/features-available/ido-mysql.conf zu prüfen Datei.

cat /etc/icinga2/features-available/ido-mysql.conf

Unten sehen Sie die Details für die MariaDB-Datenbank, die mit Ihren Angaben übereinstimmt.

6. Führen Sie icinga2 aus Befehl unten an enable die ido-mysql Besonderheit.

sudo icinga2 feature enable ido-mysql

7. Führen Sie abschließend die folgenden Befehle aus, um den icinga2 neu zu starten und zu überprüfen Dienst status .

# restart service
sudo systemctl restart icinga2

# verifying service
sudo systemctl status icinga2

Ähnlich sehen Sie unten, dass die ido-mysql-Funktion aktiviert ist und der icinga2-Dienst aktiv ist (wird ausgeführt).

Icinga2-API konfigurieren

Sie haben gerade den Icinga2 IDO MySQL-Treiber installiert und die Datenbankverbindung konfiguriert. Aber um den Icinga2-Überwachungsstapel über HTTP-Anforderungen zu verwalten und zu konfigurieren, konfigurieren Sie die Icinga2-API.

Der Icinga2-Überwachungsstapel ist auch ein verteiltes Überwachungssystem.

1. Führen Sie den folgenden Befehl auf Ihrem Masterserver aus, um die Icinga2-API zu aktivieren, TLS-Zertifikate für Icinga2 zu generieren und Icinga2-Konfigurationen zu aktualisieren.

sudo icinga2 api setup

2. Bearbeiten Sie nun die /etc/icinga2/conf.d/api-users.conf Datei in Ihrem Texteditor und füllen Sie die folgende Konfiguration aus. Notieren Sie sich die API-Benutzeranmeldeinformationen, die Sie bereitstellen, da Sie sie später benötigen.

Ersetzen Sie das Passwort bei Bedarf durch ein entsprechend starkes.

/** api for icingaweb2 */
object ApiUser "icingaweb2" {
  password = "passwordapiicngaweb2"
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}

3. Führen Sie zuletzt den folgenden Befehl zu restart aus die icinga2 Service und wenden Sie die neue Konfiguration an.

sudo systemctl restart icinga2

Installieren und Konfigurieren von icingaweb2 auf dem Master-Server

Sie benötigen ein Dashboard, um Ihre Hosts besser überwachen zu können, nachdem Sie die Icinga2-API aktiviert und den neuen API-Benutzer konfiguriert haben. Wie? Sie installieren und konfigurieren Icingaweb2 auf dem Master-Server.

Icingaweb2 ist das Web-Front-End für den Icinga2-Monitoring-Stack, geschrieben in PHP, und bietet ein reaktionsschnelles und erweiterbares Monitoring-Dashboard.

1. Führen Sie den folgenden Befehl aus, um Icingaweb2 mit Komponenten zu installieren, die für die Handhabung der Icingaweb2-Webanwendung erforderlich sind.

sudo apt install icingaweb2 libapache2-mod-php icingacli -y

2. Führen Sie als Nächstes icingacli aus Befehl unten, um ein Token zum Einrichten von Icingaweb2 zu generieren. Die Icingaweb2-Installation wird dieses Token später benötigen, also notieren Sie es.

sudo icingacli setup token create

3. Führen Sie mysql aus Befehl unten, um sich bei der MySQL-Shell anzumelden und einen neuen Benutzer zu erstellen (root ) für Icingaweb2.

mysql -u root -p

4. Führen Sie nun die folgenden Abfragen aus, um eine neue Datenbank und den Benutzer icingaweb2 zu erstellen mit einem Passwort. Sie können den Benutzernamen und das Passwort nach Belieben festlegen.

CREATE DATABASE icingaweb2;
GRANT ALL ON icingaweb2.* TO [email protected] IDENTIFIED BY 'strongpasswordicingaweb2';
FLUSH PRIVILEGES;

5. Führen Sie zuletzt exit aus um sich von der MySQL-Shell abzumelden.

exit

Einrichten der Icingaweb2-Installation

Sie haben Icingaweb2 auf dem Master-Server installiert und das Setup-Token für einen neuen Benutzer generiert. Aber um auf das icingaweb2-Dashboard zuzugreifen, richten Sie Ihre icingaweb2-Installation über Ihren Webbrowser ein.

1. Öffnen Sie Ihren Webbrowser und navigieren Sie zur IP-Adresse des Masterservers, gefolgt vom URL-Pfad /icingaweb2/setup (d. h. http://172.16.1.10/icingaweb2/setup) .

2. Geben Sie als Nächstes das Icingaweb2-Setup-Token ein, das Sie im Abschnitt „Installieren und Konfigurieren von icingaweb2 auf dem Master-Server“ (Schritt 2) generiert haben, und klicken Sie auf Weiter .

3. Akzeptieren Sie die Standardeinstellungen (Überwachung ) in den Modulen Seite und klicken Sie auf Weiter .

4. Wählen Sie Datenbank im Authentifizierungstyp Dropdown-Feld und klicken Sie auf Weiter . Dieser Authentifizierungstyp sichert das Administrations-Dashboard von Icingaweb2.

An diesem Punkt beginnt Icingaweb2 mit der Überprüfung der Systemanforderungen für die Installation.

5. Stellen Sie sicher, dass alle Statusanforderungen grün sind, mit Ausnahme von PostgreSQL, und klicken Sie auf Weiter .

Ignorieren Sie die PostgreSQL-Fehlermeldung. Sie verwenden MariaDB als Datenbank-Backend.

6. Stellen Sie nun dieselben Werte, die Sie im Abschnitt „Installieren und Konfigurieren von icingaweb2 auf dem Master-Server“ (Schritt vier) festgelegt haben, für die Datenbankressource bereit Formular unten.

Klicken Sie auf Konfiguration validieren, um sicherzustellen, dass die Konfiguration funktioniert, und klicken Sie dann auf Weiter, nachdem die Meldung Die Konfiguration wurde erfolgreich validiert angezeigt wird.

7. Verlassen Sie das Authentifizierungs-Backend mit dem Standardwert (icingaweb2) als Back-End-Name und klicken Sie auf Weiter.

8. Geben Sie Anmeldeinformationen für das erste Administratorkonto von Icingaweb2 ein und klicken Sie auf Weiter . Notieren Sie sich die Zugangsdaten, da Sie sie später benötigen, um sich beim Icingaweb2-Dashboard anzumelden.

9. Belassen Sie die Standardprotokollierungswerte in der Anwendungskonfiguration für Icingaweb2 und klicken Sie auf Weiter .

10. Überprüfen Sie als Nächstes die Konfigurationseinstellungen und klicken Sie auf Weiter um die Installation von icingaweb2 zu bestätigen.

11. Klicken Sie nun auf Weiter um mit der Einrichtung des Überwachungsmoduls für Icingaweb2 fortzufahren.

12. Geben Sie den Datenbanknamen und den Benutzer für Icinga2 entsprechend an, wie unten gezeigt. Die Datenbankdetails für Icinga2 sind in /etc/icinga2/features-available/ido-mysql.conf verfügbar Datei.

Klicken Sie auf Konfiguration validieren, vergewissern Sie sich, dass die Datenbankverbindung erfolgreich ist, und klicken Sie dann auf Weiter.

13. Geben Sie den Icinga2-API-Benutzer und das Passwort ein, die in /etc/icinga2/conf.d/api-users.conf gespeichert sind Datei in die Felder unten.

Klicken Sie auf die Schaltfläche „Konfiguration validieren“, vergewissern Sie sich, dass die Meldung „Die Konfiguration wurde erfolgreich validiert“ angezeigt wird, und klicken Sie auf „Weiter“.

14. Akzeptieren Sie die standardmäßigen benutzerdefinierten Variablen auf der Überwachungssicherheit Einstellung und klicken Sie auf Weiter . Diese Variablen tragen dazu bei, Ihre Überwachungsumgebung vor neugierigen Blicken zu schützen.

15. Überprüfen Sie die Konfiguration des Überwachungsmoduls und klicken Sie auf Fertig stellen um die Installation abzuschließen.

16. Wenn die Installation von icingaweb2 abgeschlossen ist, sehen Sie die Herzlichen Glückwunsch! Icinga Web 2 wurde erfolgreich eingerichtet Nachricht, wie unten gezeigt.

Klicken Sie auf „Bei Icinga Web 2 anmelden“ und Ihr Browser leitet Sie zur Anmeldeseite von icingaweb2 weiter (Schritt 17).

17. Geben Sie Ihren Admin-Benutzer und Ihr Passwort für icingaweb2 ein und klicken Sie auf Anmelden um auf das Icinga-Dashboard zuzugreifen.

18. Klicken Sie abschließend auf Übersicht —> Dienste , und Sie sehen den Status Ihres Masters Server ähnlich wie unten.

Icinga2-Masterserver initialisieren

Sie haben den Icinga2-Überwachungsstapel erfolgreich installiert, um den Status Ihres Master-Servers zu überwachen. Jetzt initialisieren Sie den Master-Server als Master-Knoten für den Icinga2-Monitoring-Stack. Der Master-Knoten ist der Hauptcontroller des Icinga2 Distributed Monitoring Stacks.

1. Führen Sie den folgenden Befehl auf dem Terminal Ihres Master-Servers aus, um icinga2 zu initialisieren Master node .

sudo icinga2 node wizard

2. Drücken Sie n um einen Agenten/Satellitenknoten (Icinga2-Masterknoten) einzurichten.

3. Drücken Sie beim allgemeinen Namen (CN) die EINGABETASTE Aufbau. Icinga2 erkennt automatisch den FQDN des Servers.

4. Geben Sie als Nächstes den Namen der Masterzone als master.example.lan an , und drücken Sie N um das Hinzufügen globaler Zonen zu überspringen. Die standardmäßigen globalen Zonen synchronisieren alle Konfigurationsobjekte in icinga2.

5. Belassen Sie den API-Bind-Host und -Port als Standard und drücken Sie die EINGABETASTE. Die API kommuniziert zwischen dem Icinga2-Knoten mit TLS-verschlüsselten Verbindungen.

6. Geben Sie Y ein um die gesamte Konfiguration in /etc/icinga2/conf.d/ zu deaktivieren -Verzeichnis, da Sie die Icinga2-Zonenkonfiguration verwenden, die Sie später erstellen werden.

7. Führen Sie nun den systemctl aus Befehl unten, um den icinga2-Dienst neu zu starten und die Konfiguration anzuwenden.

sudo systemctl restart icinga2

8. Führen Sie zuletzt den folgenden Befehl aus, um das Ticket für die Registrierung von client01 zu generieren mit Icinga2.

sudo icinga2 pki ticket --cn 'client01.example.lan'

Kopieren Sie das generierte Ticket, mit dem Sie Client01 später als Icinga2-Agent registrieren.

Icinga2-Agent auf dem Client-Server initialisieren

Nachdem Sie den Master-Server als Master-Knoten initialisiert haben, richten Sie auch den Icinga2-Agenten auf client01 ein, um den Client01-Rechner mit Icinga2 zu überwachen.

1. Melden Sie sich bei client01 an und folgen Sie den Schritten, die Sie im Abschnitt „Initialisieren des Icinga2-Masterservers“ (Schritte eins bis drei) ausgeführt haben, um den Icinga2-Agenten zu initialisieren.

2. Geben Sie als Nächstes den übergeordneten Endpunkt als master.example.lan an , und geben Sie Y ein um die Verbindung mit dem Eltern-/Master-Knoten herzustellen.

3. Geben Sie die IP-Adresse des Masterservers ein (172.16.1.10 ) und belassen Sie den Endpunkt-Port als Standard.

4. Geben Sie nun N ein wenn Sie aufgefordert werden, weitere Endpunkte hinzuzufügen.

5. Geben Sie Y ein um die Informationen zu bestätigen und das Zertifikat für den Icinga2-Master-Server hinzuzufügen.

6. Geben Sie das Ticket ein, das Sie im letzten Schritt des Abschnitts „Initialisieren des Icinga2-Masterservers“ generiert haben, um den Agentenknoten zu registrieren (client01.example.lan).

7. Drücken Sie die EINGABETASTE, um die Standardwerte für API-Bind-Host und -Port zu akzeptieren.

8. Geben Sie als Nächstes Y ein zweimal, um Konfigurationen und Befehle vom übergeordneten/Master-Knoten zu akzeptieren.

9. Drücken Sie die EINGABETASTE, um den Standardnamen für die lokale Zone zu akzeptieren, aber geben Sie den übergeordneten Zonennamen ein, der mit dem Zonennamen übereinstimmen sollte (master.example.lan ) auf dem Masterserver.

10. Geben Sie jetzt N ein um das Hinzufügen globaler Zonen zu überspringen, und geben Sie Y ein um Konfigurationen auf /etc/icinga2/conf.d zu deaktivieren Verzeichnis.

11. Führen Sie zuletzt den folgenden Befehl aus, um den Icinga2-Dienst neu zu starten und die Konfigurationsänderungen anzuwenden. sudo systemctl restart icinga2

sudo systemctl restart icinga2

Erstellen der Zonenkonfiguration auf dem Masterserver

Nachdem die verteilte Überwachung aus dem Weg geräumt ist, erstellen Sie ein neues Zonenverzeichnis und definieren die Überwachungskonfiguration für den Client-Agent.

1. Führen Sie mkdir aus Befehl unten, um ein neues Verzeichnis als Standardzone zu erstellen (master.example.lan ) auf Icinga2.

sudo mkdir -p /etc/icinga2/zones.d/master.example.lan/

2. Als nächstes erstellen Sie eine Konfigurationsdatei (client01.example.lan.conf ) in /etc/icinga2/zones.d/master.example.lan/ Verzeichnis. Füllen Sie die Datei mit der folgenden Konfiguration.

Der folgende Code definiert die Endpunkte, Zonen und das Host-Objekt zur Überwachung der Server.

// Endpoints
object Endpoint "client01.example.lan" {
}
// Zones
object Zone "client01.example.lan" {
    endpoints = [ "client01.example.lan" ]
    parent = "master.example.lan"
}
// Host Objects
object Host "client01.example.lan" {
    check_command = "hostalive"
    address = "172.16.1.30"
    vars.client_endpoint = name
}

3. Erstellen Sie eine weitere Konfigurationsdatei, kopieren Sie den folgenden Code, fügen Sie ihn in die Datei ein und speichern Sie ihn unter /etc/icinga2/zones.d/master.example.lan/services.conf.

Diese Konfiguration unten überwacht einige grundlegende Dienste auf dem client01-Computer.

 // Ping
 apply Service "Ping" {
 check_command = "ping4"
 assign where host.address // check executed on master
 }
 // System Load
 apply Service "System Load" {
 check_command = "load"
 command_endpoint = host.vars.client_endpoint // Check executed on client01
 assign where host.vars.client_endpoint
 }
 // SSH Service
 apply Service "SSH Service" {
 check_command = "ssh"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }
 // Icinga 2 Service
 apply Service "Icinga2 Service" {
 check_command = "icinga"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }

4. Führen Sie nun den icinga2 aus Befehl unten, um die Icinga2-Konfiguration zu überprüfen.

sudo icinga2 daemon -C

Wenn alles gut geht, sehen Sie eine Ausgabe ähnlich der untenstehenden.

5. Führen Sie zuletzt den folgenden Befehl aus, um den Icinga2-Dienst neu zu starten und die Konfigurationsänderungen zu übernehmen.

sudo systemctl restart icinga2

Überprüfung auf dem Icinga2-Dashboard

Sie haben alle Ressourcen konfiguriert, müssen aber noch testen, ob sie alle funktionieren. Sie überprüfen die Ergebnisse Ihrer Arbeit, indem Sie das Icinga2-Dashboard überprüfen.

Gehen Sie zurück zum Icinga2-Dashboard und klicken Sie auf Übersicht —> Hosts , wie unten gezeigt, und Sie sehen, dass der client01 ist UP .

Klicken Sie nun auf Dienste Menü, um alle überwachten Dienste mit dem Icinga2-Überwachungsstapel auf client01 anzuzeigen.

Schlussfolgerung

Dieses Tutorial soll Ihnen beim Einrichten des Icinga2-Überwachungsstapels auf dem Ubuntu-Server helfen. Sie haben auch gelernt, wie Sie Distributed Monitoring mit einem Icinga2-Agenten einrichten, um eine umfangreiche Infrastruktur zu überwachen.

Nun, was kommt als nächstes? Vielleicht lernen Sie, den Icinga Director einzurichten, um Ihre Überwachung zu vereinfachen?


Linux
  1. Überwachen Sie Ihren Linux-Server mit Checkmk

  2. Überwachung von Linux- und Windows-Hosts mit Glances

  3. 3 nützliche Dinge, die Sie mit dem IP-Tool in Linux tun können

  4. So überwachen Sie die Sicherheit von Linux-Servern mit Osquery

  5. Überwachen des Mikrofonpegels mit einem Befehlszeilentool unter Linux

So überwachen Sie schnell mehrere Hosts unter Linux

So überwachen Sie Ihre Linux-Server mit Checkmk

So finden Sie Dateien mit dem fd-Befehl in Linux

So installieren Sie das Gtop-Systemüberwachungstool unter Linux

So überwachen Sie Ihre Linux-Server mit Checkmk

So installieren Sie das Icinga 2-Überwachungstool unter Rocky Linux 8