Nagios Tutorial - Kontinuierliche Überwachung mit Nagios



Nagios-Lernprogramm: Nagios überwacht Ihre gesamte IT-Infrastruktur, um sicherzustellen, dass Systeme, Anwendungen, Dienste und Geschäftsprozesse ordnungsgemäß funktionieren.

Nagios Tutorial:

Ich glaube, es gibt nur sehr wenige Beiträge auf Nagios und nicht viele relevante Informationen, die über das Internet verfügbar sind. Ich denke, dieser Beitrag gibt Ihnen eine gute Klarheit über dieses Überwachungstool. Nagios überwacht Ihre gesamte IT-Infrastruktur, um sicherzustellen, dass Systeme, Anwendungen, Dienste und Geschäftsprozesse ordnungsgemäß funktionieren.Es ist ein wesentlicher Bestandteil des DevOps-Lebenszyklus und ein Muss für .In diesem Nagios-Tutorial werde ich die folgenden Themen behandeln:

  1. Warum brauchen wir eine kontinuierliche Überwachung?
  2. Was ist kontinuierliche Überwachung?
  3. Was ist Nagios?
  4. Wie installiere ich Nagios?
  5. Hinzufügen eines Remote-Servers mithilfe von NRPE (Nagios Remote Plugin Executor).

Beginnen wir mit diesem Nagios-Tutorial, indem wir verstehen, warum wir eine kontinuierliche Überwachung benötigen, da alles aus einem bestimmten Grund existiert. Versuchen wir also, diesen Grund herauszufinden.





Warum brauchen wir eine kontinuierliche Überwachung?

Kontinuierliche Überwachungstools beheben alle Systemfehler (wenig Speicher, nicht erreichbarer Server usw.), bevor sie sich negativ auf Ihre Unternehmensproduktivität auswirken.

Wichtige Gründe für die Verwendung eines Überwachungstools sind:



  • Es erkennt Netzwerk- oder Serverprobleme
  • Es bestimmt die Grundursache für Probleme
  • Es gewährleistet die Sicherheit und Verfügbarkeit des Dienstes
  • Es überwacht und behebt Probleme mit der Serverleistung
  • Damit können wir Infrastruktur-Upgrades planen, bevor veraltete Systeme zu Ausfällen führen
  • Es kann beim ersten Anzeichen eines Problems auf Probleme reagieren
  • Es kann verwendet werden, um Probleme automatisch zu beheben, wenn sie erkannt werden
  • Es stellt sicher, dass Ausfälle der IT-Infrastruktur nur minimale Auswirkungen auf das Unternehmensergebnis haben
  • Es kann Ihre gesamte Infrastruktur und Geschäftsprozesse überwachen

Ja, es macht eine Menge cooler Arbeit, aber was ist das?

Was ist kontinuierliche Überwachung?

Lassen Sie mich zunächst sagen, wo die kontinuierliche Überwachung im DevOps-Lebenszyklus liegt. Betrachten Sie das folgende Diagramm:

DevOps Life-Cyce - Nagios-Tutorial - Edureka



Wenn Sie sich das Diagramm ansehen, müssen Sie denken, dass dies die letzte Phase im DevOps-Lebenszyklus ist, aber dies ist nicht der Fall. Ein DevOps-Lebenszyklus hat kein Ende, und das ist der Grund für das Unendlichkeitssymbol. Die kontinuierliche Überwachung wird angezeigt, sobald die Anwendung auf den Produktionsservern bereitgestellt wird.

Bei der kontinuierlichen Überwachung geht es um die Fähigkeit eines Unternehmens, die in seiner Infrastruktur auftretenden Angriffe zu erkennen, zu melden, zu reagieren, einzudämmen und abzuschwächen.

Kontinuierliche Überwachung ist eigentlich nicht neu, es gibt sie schon seit einiger Zeit. Seit Jahren führen unsere Sicherheitsexperten statische Analysen von Systemprotokollen, Firewallprotokollen, IDS-Protokollen, IPS-Protokollen usw. durch. Sie lieferten jedoch keine ordnungsgemäße Analyse und Reaktion. Mit dem heutigen Ansatz der kontinuierlichen Überwachung können wir alle oben diskutierten Ereignisse zusammenfassen, miteinander verknüpfen, vergleichen und dann die Risikostellung des Unternehmens abschätzen.

Wenn wir alle diese Teile nehmen und die Verknüpfung zwischen ihnen sicherstellen. Dies ist der Kern der kontinuierlichen Überwachung.

Lassen Sie mich dies anhand eines Anwendungsfalls erklären.Betrachten Sie das folgende Diagramm:

Lassen Sie mich nun das obige Diagramm erklären:

  1. Wir verfügen über verschiedene Sicherheitstools wie Firewall, IDS, Endpunktschutz usw., die mit einem Sicherheitsinformations- und Ereignisverwaltungssystem verbunden sind.
  2. Um eine kontinuierliche Überwachung zu erreichen, müssen alle Teile miteinander sprechen. Lassen Sie mich das Ihnen erklären.
  3. Wir verfügen also über Sicherheitstools und eine Reihe von „Endpunkten“, darunter Clients und Server, Router, Switches, mobile Geräte usw.
  4. Diese beiden Gruppen können dann über eine gemeinsame Sprache und automatisierter mit einem Sicherheitsinformations- und Ereignisverwaltungssystem (SIEM) kommunizieren.
  5. Mit diesem SIEM sind zwei wichtige Komponenten verbunden, die erste ist ein Data Warehouse. Jetzt verbinden wir mit diesem Data Warehouse 'Analytics' und 'Security Intelligence'.
  6. Security Intelligence (SI) sind die Informationen, die für den Schutz eines Unternehmens vor externen und Insider-Bedrohungen relevant sind, sowie die Prozesse, Richtlinien und Tools, mit denen diese Informationen gesammelt und analysiert werden.
  7. Dieses SIEM ist auch mit einem „Governance-Risiko- und Compliance-System“ verbunden, das im Wesentlichen Dashboarding bietet.
  8. Diesem „Governance Risk and Compliance System“ fügen wir eine Risikodatenbank hinzu. Dies gibt uns 'umsetzbare Intelligenz'.
  9. Actionable Intelligence ist nichts anderes als Informationen, auf die reagiert werden kann, mit der weiteren Implikation, dass Aktionen durchgeführt werden sollte genommen werden.

Hier überwachen wir die Ereignisse auf laufender Basis und bestimmen, welches Risiko wir haben. Damit können wir die Ereignisse am SIEM korrelieren. Wir können das Netzwerkverhalten und die Erkennung von Anomalien in der 'Analytics Engine' durchführen. Darum geht es bei der kontinuierlichen Überwachung:

Die Integration einer OrganisationSicherheitstools,die Aggregation,Normalisierung undKorrelation der Daten, die von den Sicherheitstools erzeugt werden. Die Analyse dieser Daten basiert auf den Risikozielen und dem Bedrohungswissen des Unternehmens und reagiert nahezu in Echtzeit auf die identifizierten Risiken.

'Wenn Sie es nicht messen können, können Sie es nicht verwalten'. Ich hoffe du weißt wovon ich rede.

Als nächstes werde ich Ihnen in diesem Nagios-Tutorial eines der bekanntesten Überwachungstools „Nagios“ vorstellen.

Was ist Nagios?

Nagios wird zur kontinuierlichen Überwachung von Systemen, Anwendungen, Diensten und Geschäftsprozessen usw. in einer DevOps-Kultur verwendet. Im Falle eines Fehlers kann Nagios das technische Personal auf das Problem aufmerksam machen und so mit den Korrekturprozessen beginnen, bevor Ausfälle Geschäftsprozesse, Endbenutzer oder Kunden betreffen. Mit Nagios müssen Sie nicht erklären, warum sich ein unsichtbarer Infrastrukturausfall auf das Unternehmensergebnis auswirkt.

Lassen Sie mich Ihnen erklären, wie Nagios funktioniert.Betrachten Sie das folgende Diagramm:

Nagios läuft auf einem Server, normalerweise als Daemon oder Service.

Es werden regelmäßig Plugins ausgeführt, die sich auf demselben Server befinden. Sie kontaktieren Hosts oder Server in Ihrem Netzwerk oder im Internet. Die Statusinformationen können über die Weboberfläche angezeigt werden. Sie können auch E-Mail- oder SMS-Benachrichtigungen erhalten, wenn etwas passiert.
Der Nagios-Daemon verhält sich wie ein Scheduler, der bestimmte Skripte zu bestimmten Zeitpunkten ausführt. Es speichert die Ergebnisse dieser Skripte und führt andere Skripte aus, wenn sich diese Ergebnisse ändern.

Plugins: Diesesind kompilierte ausführbare Dateien oder Skripte (Perl-Skripte, Shell-Skripte usw.), die über eine Befehlszeile ausgeführt werden können, um den Status oder einen Host oder Dienst zu überprüfen. Nagios verwendet die Ergebnisse der Plugins, um den aktuellen Status der Hosts und Dienste in Ihrem Netzwerk zu ermitteln.

Lassen Sie uns nun die Architektur diskutieren.

Nagios Architektur:

  • Nagios basiert auf einer Server- / Agentenarchitektur.
  • Normalerweise wird in einem Netzwerk ein Nagios-Server auf einem Host ausgeführt, und Plugins interagieren mit lokalen und allen Remote-Hosts, die überwacht werden müssen.
  • Diese Plugins senden Informationen an den Scheduler, der diese in einer GUI anzeigt.

Ich muss Ihnen auch NRPE (Nagios Remote Plugin Executor) erklären.

Mit dem NRPE-Addon können Sie Nagios-Plugins auf Remote-Linux / Unix-Computern ausführen. Der Hauptgrund dafür ist, dass Nagios „lokale“ Ressourcen (wie CPU-Auslastung, Speichernutzung usw.) auf Remotecomputern überwachen kann. Da diese öffentlichen Ressourcen normalerweise keinen externen Computern ausgesetzt sind, muss ein Agent wie NRPE auf den Remote-Linux / Unix-Computern installiert werden.

Betrachten Sie das folgende Diagramm:

  • Das Plugin check_nrpe befindet sich auf dem lokalen Überwachungscomputer.
  • Der NRPE-Daemon wird auf dem Remote-Linux / Unix-Computer ausgeführt.
  • Zwischen dem Überwachungshost und dem Remote-Host besteht eine SSL-Verbindung (Secure Socket Layer) (siehe Abbildung oben).

In diesem Nagios-Tutorial ist es Zeit für einige Zum Anfassen .

Beginnen wir mit der Installation von Nagios Core

Installieren Sie Nagios Core:

Der gesamte Installationsprozess von Nagios kann in vier Schritten zusammengefasst werden:

  1. Installieren Sie die erforderlichen Pakete auf dem Überwachungsserver
  2. Installieren Sie Nagios Core, Nagios Plugins und NRPE (Nagios Remote Plugin Executor).
  3. Legen Sie das Nagios-Passwort für den Zugriff auf das Webinterface fest
  4. Installieren Sie NRPE im Client

Schritt 1: Installieren Sie die erforderlichen Pakete auf dem Überwachungsserver:

Besuchen Sie die Website: http://dl.fedoraproject.org/pub/epel/6/

Klicken Sie auf i386 und Sie werden zu einer Seite weitergeleitet.

Da ich CentOS 6 verwende, klicke ich mit der rechten Maustaste und kopiere den Linkspeicherort von epel-release-6-8.noarch.rpm ‘, Wie im obigen Screenshot gezeigt.

Öffnen Sie das Terminal und verwenden Sie U / min -Uvh Befehl und fügen Sie den Link ein.

Wir müssen ein weiteres Repository herunterladen, um die Website zu besuchen. http://rpms.famillecollet.com/enterprise/ '

Klicken Sie mit der rechten Maustaste und kopieren Sie den Linkspeicherort für ' Remi-Release-6.rpm '

Öffnen Sie das Terminal erneut und verwenden Sie U / min -Uvh Befehl und fügen Sie den Link ein.

Gut, also sind wir mit den Voraussetzungen fertig. Fahren wir mit dem nächsten Schritt fort.

Schritt - 2: Installieren Sie Nagios Core, Nagios Plugins und NRPE (Nagios Remote Plugin Executor):

Führen Sie den folgenden Befehl im Terminal aus:

yum -y install nagios nagios-plugins-all nagios-plugins-nrpe nrpe httpd php

Dadurch werden Nagios, Nagios Plugins, Plugins für NRPE, NRPE, Apache und PHP installiert

Der Apache-Webserver ist erforderlich, um den aktuellen Webserverstatus zu überwachen.

PHP wird verwendet, um dynamischen Inhalt des Site-Datums zu verarbeiten.

Als nächstes müssen wir den Apache- und Nagios-Dienst aktivieren:

chkconfig httpd on && chkconfig nagios on

Unser nächster Schritt ist, Nagios und Apache zu starten:

service httpd start && service nagios start

Jetzt werde ich einen Swap-Speicher von mindestens 1 GB aktivieren. Es ist Zeit, die Auslagerungsdatei selbst mit dem Befehl dd zu erstellen:

dd if = / dev / zero von = / swap bs = 1024 count = 2097152

Swap wird im Wesentlichen verwendet, um einige Informationen, auf die nicht so häufig zugegriffen wird, aus dem RAM freizugeben und auf eine bestimmte Partition auf unserer Festplatte zu verschieben.

Nachdem Sie die Swap-Partition erstellt haben, verwenden Sie den Befehl mkswap um die Swap-Partition einzurichten. Dadurch wird die Auslagerungsdatei vorbereitet, indem ein Linux-Auslagerungsbereich erstellt wird.

mkswap / swap

Um zu verhindern, dass die Datei weltweit lesbar ist, sollten Sie die richtigen Berechtigungen für die Auslagerungsdatei einrichten:

Chownwurzel. / swap chmod 0600 / swap

Wenn Sie keine Fehler sehen, ist Ihr Swap Space einsatzbereit. Geben Sie Folgendes ein, um es sofort zu aktivieren:

Swapon / Swap

Diese Datei bleibt auf dem virtuellen privaten Server, bis der Computer neu gestartet wird. Sie können sicherstellen, dass der Swap dauerhaft ist, indem Sie ihn der fstab-Datei hinzufügen.

echo / swap swap swap default 0 0 >> / etc / fstab

Der Betriebssystemkern kann anpassen, wie oft er auf den Austausch über einen Konfigurationsparameter angewiesen ist, der als bekannt ist Swappiness .

Geben Sie Folgendes ein, um die aktuellen Swappiness-Einstellungen zu ermitteln:

cat / proc / sys / vm / swappiness

Swapiness kann ein Wert zwischen 0 und 100 sein. Swapiness nahe 100 bedeutet, dass das Betriebssystem häufig und normalerweise zu früh tauscht. Obwohl Swap zusätzliche Ressourcen bereitstellt, ist RAM viel schneller als Swap Space. Jedes Mal, wenn etwas aus dem RAM in den Swap verschoben wird, wird es langsamer.

Ein Swappiness-Wert von 0 bedeutet, dass der Betrieb nur dann auf Swap angewiesen ist, wenn dies unbedingt erforderlich ist. Wir können die Swappiness mit dem Befehl sysctl anpassen. Damit Ihr VPS diese Einstellung bei jedem Start automatisch anwendet, können Sie die Einstellung zur Datei /etc/sysctl.conf hinzufügenDatei:

echo vm.swappiness = 0 >> /etc/sysctl.conf && sysctl -p

Schließlich sind wir mit dem zweiten Schritt fertig.

Fahren wir fort und legen Sie das Nagios-Passwort fest, um auf die Weboberfläche zuzugreifen.

Schritt - 3: Legen Sie das Nagios-Passwort für den Zugriff auf das Webinterface fest:

Legen Sie das Kennwort für den Zugriff auf die Weboberfläche fest und verwenden Sie den folgenden Befehl:

htpasswd -c / etc / nagios / passwd nagiosadmin

Geben Sie das Passwort ein und bestätigen Sie es, indem Sie es erneut eingeben.

Öffnen Sie nun den Browser. Geben Sie hier Ihre öffentliche IP oder Ihren Hostnamen / Nagios ein. Betrachten Sie das folgende Beispiel:

Geben Sie hier den Benutzernamen und das Passwort an. Standardmäßig lautet der Benutzername Nagiosadmin, und Passwort ist das, was Sie im vorherigen Schritt festgelegt haben. Drücken Sie abschließend OK.

Danach werden Sie zum Nagios Core-Dashboard weitergeleitet.

Sie können auf Hosts klicken und sehen, welche Hosts Ihr Nagios Core derzeit überwacht.

Sie können feststellen, dass nur ein Host überwacht wird, d. H. Localhost. Wenn mein Nagios Core einen Remote-Host überwachen soll, muss ich NRPE auf diesem Remote-Host installieren. Dies bringt uns zum nächsten Schritt: Installieren Sie NRPE auf dem Client / Computer, den Nagios überwachen soll.

Schritt - 4: Installieren Sie NRPE im Client:

Okay, dann installieren wir NRPE auf dem Client-Computer.

Zunächst müssen Sie die erforderlichen Pakete wie auf meinem Nagios-Server installieren. Führen Sie also einfach dieselben Befehle aus und beachten Sie die folgenden Screenshots:

Installieren Sie nun Nagios, Nagios Plugins und NRPE im Client:

yum -y installiere nagios nagios-plugins-all nrpe

Aktivieren Sie nach der Installation den NRPE-Dienst:

chkconfig nrpe on


Unser nächster Schritt ist die Bearbeitung der, nrpe.cfg Datei. Ich werde das benutzen wir Editor, Sie können auch einen anderen Editor auswählen:

Sie müssen die IP-Adresse Ihres Überwachungsservers in der zulässigen Hostzeile hinzufügen. Beachten Sie den folgenden Screenshot:

Hier lautet die IP-Adresse meines Überwachungsservers 192.168.56.101.

Jetzt müssen wir Firewall-Regeln einrichten, um die Verbindung zwischen Überwachungsserver und Client zu ermöglichen.

iptables -N NRPE

- Mit der Option wird die neue Regel an das Ende einer Kette angehängt. Wenn Sie es an einer anderen Stelle in der Kette platzieren möchten, können Sie die Option -I verwenden, mit der Sie die Position der neuen Regel angeben können.

Der folgende Befehl akzeptiert TCP-Anforderungen an den Ports 5666.

iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j NRPE iptables -I NRPE -s 192.168.56.101 -j ACEPPT iptables -A NRPE -s 0/0 -j DROP

Dadurch werden iptables grundsätzlich so konfiguriert, dass sie Pakete von einem bestimmten Host akzeptieren, in meinem Fall - 192.168.56.101, und die Pakete von anderen Hosts werden verworfen.

Jetzt werde ich diese Konfigurationen speichern:

/etc/init.d/iptables speichern

Starten Sie jetzt den NRPE-Dienst.

Service nrpe Start

Kehren Sie nun zum Überwachungsserver zurück.

Hier muss ich die Datei nagios.cfg bearbeiten.

vi /etc/nagios/nagios.cfg

Kommentieren Sie die Zeile aus - cfg_dir = etc / nagios / servers

Erstellen Sie für diesen Zweck ein 'Server' -Verzeichnis mkdir Befehl.

mkdir / etc / nagios / servers /

Ändern Sie Ihr Arbeitsverzeichnis in Server.

cd / etc / nagios / servers

Erstellen Sie eine neue Datei in diesem Verzeichnis mit der Erweiterung .cfg und bearbeiten Sie sie. Ich werde es als client.cfg benennen und verwenden wir Editor.

vi /etc/nagios/servers/client.cfg

Fügen Sie hier die folgenden Zeilen hinzu:

So legen Sie den Klassenpfad in Java über die Eingabeaufforderung fest

Dies schließt im Wesentlichen die Art von Diensten ein, die ich überwachen möchte. Geben Sie den Hostnamen des Computers und dessen IP-Adresse an, die Nagios überwachen soll.

Ebenso können Sie eine Anzahl von Diensten hinzufügen, die Sie überwachen möchten. Dieselben Konfigurationen können verwendet werden, um n Clients hinzuzufügen.

Letzter Schritt Jungs, stellen Sie die Ordnerberechtigungen richtig ein und starten Sie Nagios neu.

chown -R Nagios. / etc / nagios /

Starten Sie nun Nagios neu

Service Nagios neu starten

Öffnen Sie den Browser und geben Sie erneut ein Hostname oder öffentliche IP / Nagios /. In meinem Fall ist es localhost / nagios /.

Klicken Sie auf Hosts, um alle Computer anzuzeigen, die Nagios derzeit überwacht.

Hier können Sie feststellen, dass derzeit der Client-Computer überwacht wird (Hostname des Computers, den Nagios überwachen soll). Grundsätzlich haben wir einen Remote-Host mit NRPE hinzugefügt.

Ich hoffe, Sie haben es genossen, dieses Nagios-Tutorial zu lesen. Ich werde bald weitere Blogs über Nagios veröffentlichen.

Wenn Sie dieses Nagios-Tutorial für relevant befunden haben, lesen Sie das von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack und GIT für die Automatisierung mehrerer Schritte in SDLC zu erlangen.

Hast du eine Frage an mich? Bitte erwähnen Sie es in den Kommentaren und ich werde mich bei Ihnen melden.