Verwalten von Protokollen mit Graylog 2 unter Ubuntu 16.04

Einführung

Graylog ist eine leistungsstarke Open-Source-Protokollverwaltungsplattform. Es aggregiert und extrahiert wichtige Daten aus Serverprotokollen, die häufig mit dem Syslog-Protokoll gesendet werden. Außerdem können Sie die Protokolle in einer Weboberfläche durchsuchen und visualisieren.

In diesem Tutorial installieren und konfigurieren Sie Graylog unter Ubuntu 16.04 und richten eine einfache Eingabe ein, die Systemprotokolle empfängt.

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, benötigen Sie Folgendes:

  • Ein Ubuntu 16.04-Server mit mindestens 2 GB RAM, aktiviertem privatem Netzwerk und einem Benutzer ohne Rootberechtigung. Dies kann durch Befolgen derInitial Server Setup with Ubuntu 16.04 eingerichtet werden.

  • Oracle JDK 8 installiert. Befolgen Sie dazu den Abschnitt „Installieren des Oracle JDK“ inthis Java installation article.

  • Elasticsearch 2.x, das Sie installieren können, indem Sie die Schritte 1 und 2 derElasticsearch installation tutorial ausführen. Bestimmte Versionen von Graylog funktionieren nur mit bestimmten Versionen von Elasticsearch. Graylog 2.x funktioniert beispielsweise nicht mit Elasticsearch 5.x. Die genaue Version finden Sie inthis Greylog-Elasticsearch version comparison table. In diesem Tutorial werden Elasticsearch 2.4.4 und Graylog 2.2 verwendet.

  • MongoDB, die installiert werden kann, indemMongoDB tutorial befolgt wird.

[[Schritt-1 - Konfigurieren der Elasticsearch]] == Schritt 1 - Konfigurieren der Elasticsearch

Wir müssen die Elasticsearch-Konfigurationsdatei so ändern, dass der Clustername mit dem in der Graylog-Konfigurationsdatei festgelegten übereinstimmt. Zur Vereinfachung setzen wir den Namen des Elasticsearch-Clusters auf den Standard-Graylog-Namengraylog. Sie können den Wert beliebig festlegen, aber stellen Sie sicher, dass Sie die Graylog-Konfigurationsdatei aktualisieren, um diese Änderung widerzuspiegeln.

Öffnen Sie die Elasticsearch-Konfigurationsdatei in Ihrem Editor:

sudo nano /etc/elasticsearch/elasticsearch.yml

Suchen Sie die folgende Zeile:

/etc/elasticsearch/elasticsearch.yml

cluster.name: 

Ändern Sie den Wert voncluster.nameingraylog:

/etc/elasticsearch/elasticsearch.yml

cluster.name: graylog

Speichern Sie die Datei und beenden Sie Ihren Editor.

Da wir die Konfigurationsdatei geändert haben, müssen wir den Dienst neu starten, damit die Änderungen wirksam werden.

sudo systemctl restart elasticsearch

Nachdem Sie Elasticsearch konfiguriert haben, fahren Sie mit der Installation von Graylog fort.

[[Schritt-2 - Installieren von Graylog]] == Schritt 2 - Installieren von Graylog

In diesem Schritt installieren wir den Graylog-Server.

Laden Sie zunächst die Paketdatei mit der Graylog-Repository-Konfiguration herunter. Besuchen Sie dieGraylog download page, um die aktuelle Versionsnummer zu finden. Für dieses Tutorial verwenden wir Version2.2.

wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb

Installieren Sie als Nächstes die Repository-Konfiguration aus der Paketdatei.debund ersetzen Sie2.2 erneut durch die heruntergeladene Version.

sudo dpkg -i graylog-2.2-repository_latest.deb

Nachdem die Repository-Konfiguration aktualisiert wurde, müssen wir die neue Liste der Pakete abrufen. Führen Sie diesen Befehl aus:

sudo apt-get update

Installieren Sie als Nächstes das Paketgraylog-server:

sudo apt-get install graylog-server

Zuletzt starten Sie Graylog automatisch beim Systemstart mit dem folgenden Befehl:

sudo systemctl enable graylog-server.service

Graylog wurde erfolgreich installiert, aber noch nicht gestartet. Wir müssen es konfigurieren, bevor es gestartet wird.

[[Schritt-3 - Konfigurieren von Graylog]] == Schritt 3 - Konfigurieren von Graylog

Nachdem wir Elasticsearch konfiguriert und Graylog installiert haben, müssen wir einige Einstellungen in der Graylog-Standardkonfigurationsdatei ändern, bevor wir sie verwenden können. Die Konfigurationsdatei von Graylog befindet sich standardmäßig bei/etc/graylog/server/server.conf.

Zuerst müssen wir den Wert vonpassword_secreteinstellen. Graylog verwendet diesen Wert, um die gespeicherten Benutzerkennwörter zu sichern. Wir verwenden einen zufällig generierten 128-Zeichen-Wert.

Wir werdenpwgen verwenden, um das Passwort zu generieren. Installieren Sie es also, falls es noch nicht installiert ist:

sudo apt install pwgen

Generieren Sie das Kennwort und fügen Sie es in die Graylog-Konfigurationsdatei ein. Wir verwenden das Programmsed, um den Wert vonpassword_secretin die Graylog-Konfigurationsdatei einzufügen. Auf diese Weise müssen wir keine Werte kopieren und einfügen. Führen Sie diesen Befehl aus, um das Geheimnis zu erstellen und in der Datei zu speichern:

sudo -E sed -i -e "s/password_secret =.*/password_secret = $(pwgen -s 128 1)/" /etc/graylog/server/server.conf

Weitere Informationen zur Verwendung vonsed finden Sie unterthis DigitalOcean sed tutorial.

Als nächstes müssen wir den Wert vonroot_password_sha2einstellen. Dies ist einSHA-256 hash Ihres gewünschten Passworts. Wir werden erneut den Befehlsed verwenden, um die Graylog-Konfigurationsdatei zu ändern, sodass wir den SHA-256-Hash nicht manuell mitshasum generieren und in die Konfigurationsdatei einfügen müssen.

Führen Sie diesen Befehl aus, aber ersetzen Siepassword unten durch Ihr gewünschtes Standardadministratorkennwort:

[.note] #Note: Der Befehl enthält ein führendes Leerzeichen, das verhindert, dass Ihr Kennwort als einfacher Text in Ihrem Bash-Verlauf gespeichert wird.
#

 sudo sed -i -e "s/root_password_sha2 =.*/root_password_sha2 = $(echo -n 'password' | shasum -a 256 | cut -d' ' -f1)/" /etc/graylog/server/server.conf

Jetzt müssen wir noch einige Änderungen an der Konfigurationsdatei vornehmen. Öffnen Sie die Graylog-Konfigurationsdatei mit Ihrem Editor:

sudo nano /etc/graylog/server/server.conf

Suchen und ändern Sie die folgenden Zeilen, kommentieren Sie sie aus und ersetzen Siegraylog_public_ip durch die öffentliche IP Ihres Servers. Dies kann eine IP-Adresse oder ein vollqualifizierter Domänenname sein.

/etc/graylog/server/server.conf

...
rest_listen_uri = http://your_server_ip_or_domain:9000/api/

...
web_listen_uri = http://your_server_ip_or_domain:9000/

...

Speichern Sie die Datei und beenden Sie Ihren Editor.

Da wir die Konfigurationsdatei geändert haben, müssen wir den Dienstgraylog-serverneu starten (oder starten). Der Befehl restart startet den Server, auch wenn er gerade gestoppt ist.

sudo systemctl restart graylog-server

Überprüfen Sie als Nächstes den Status des Servers.

sudo systemctl status graylog-server

Die Ausgabe sollte ungefähr so ​​aussehen:

● graylog-server.service - Graylog server
   Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-03-03 20:10:34 PST; 1 months 7 days ago
     Docs: http://docs.graylog.org/
 Main PID: 1300 (graylog-server)
    Tasks: 191 (limit: 9830)
   Memory: 1.2G
      CPU: 14h 57min 21.475s
   CGroup: /system.slice/graylog-server.service
           ├─1300 /bin/sh /usr/share/graylog-server/bin/graylog-server
           └─1388 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSCon

Sie solltenactive für den Status sehen.

Wenn die Ausgabe meldet, dass das System nicht ausgeführt wird, überprüfen Sie/var/log/syslog auf Fehler. Stellen Sie sicher, dass Sie Java installiert haben, als Sie Elasticsearch installiert haben, und dass Sie alle Werte in Schritt 3 geändert haben. Der Versuch, den Graylog-Dienst erneut zu starten.

Wenn Sie eine Firewall mitufw konfiguriert haben, fügen Sie eine Firewall-Ausnahme für den TCP-Port9000 hinzu, damit Sie auf die Weboberfläche zugreifen können:

sudo ufw allow 9000/tcp

Sobald Graylog ausgeführt wird, sollten Sie mit Ihrem Webbrowser aufhttp://your_server_ip:9000 zugreifen können. Nach dem Neustart vongraylog-server müssen Sie möglicherweise bis zu fünf Minuten warten, bevor die Weboberfläche gestartet wird. Stellen Sie außerdem sicher, dass MongoDB ausgeführt wird.

Nachdem Graylog ordnungsgemäß ausgeführt wurde, können wir mit der Verarbeitung von Protokollen fortfahren.

[[Schritt-4 - Erstellen einer Eingabe]] == Schritt 4 - Erstellen einer Eingabe

Fügen wir Graylog eine neue Eingabe hinzu, um Protokolle zu erhalten. Eingaben teilen Graylog mit, welcher Port abgehört werden soll und welches Protokoll beim Empfang von Protokollen verwendet werden soll. Wir werden einen Syslog UDP-Eingang hinzufügen, der ein häufig verwendetes Protokoll ist.

Wenn Siehttp://your_server_ip:9000 in Ihrem Browser besuchen, wird eine Anmeldeseite angezeigt. Verwenden Sieadmin für Ihren Benutzernamen und das in Schritt 3 eingegebene Passwort für Ihr Passwort.

Nach dem Anmelden wird eine Seite mit dem Titel "Erste Schritte" angezeigt, die wie folgt aussieht:

Getting Started

Um die Eingabeseite anzuzeigen, klicken Sie in der Navigationsleiste auf die Dropdown-ListeSystem und wählen SieInputs aus.

Sie sehen dann ein Dropdown-Feld, das den TextSelect Input enthält. Wählen SieSyslog UDP aus dieser Dropdown-Liste aus und klicken Sie dann auf die SchaltflächeLaunch new input.

Ein Modal mit einem Formular sollte angezeigt werden. Füllen Sie die folgenden Details aus, um Ihre Eingabe zu erstellen:

  1. Wählen Sie fürNode Ihren Server aus. Es sollte das einzige Element in der Liste sein.

  2. Geben Sie fürTitle einen geeigneten Titel ein, z. B.Linux Server Logs.

  3. Verwenden Sie fürBind address die private IP Ihres Servers. Wenn Sie auch Protokolle von externen Servern erfassen möchten (nicht empfohlen, da Syslog die Authentifizierung nicht unterstützt), können Sie0.0.0.0 (alle Schnittstellen) festlegen.

  4. Geben Sie fürPort8514 ein. Beachten Sie, dass wir für dieses Lernprogramm Port8514 verwenden, da die Ports0 bis1024 nur vom Root-Benutzer verwendet werden können. Sie können jede Portnummer verwenden, die über1024liegt. Sie sollte in Ordnung sein, solange sie nicht mit anderen Diensten in Konflikt steht.

Klicken Sie aufSave. Die Liste der lokalen Eingaben wird aktualisiert und zeigt Ihre neuen Eingaben an, wie in der folgenden Abbildung dargestellt:

Screenshot of local inputs

Nachdem eine Eingabe erstellt wurde, können wir einige Protokolle an Graylog senden.

[[Schritt 5 - Konfigurieren von Servern zum Senden von Protokollen an Graylog]] == Schritt 5 - Konfigurieren von Servern zum Senden von Protokollen an Graylog

Wir haben einen Eingang konfiguriert und überwachen Port8514, aber wir senden noch keine Daten an den Eingang, sodass wir keine Ergebnisse sehen. rsyslog ist ein Software-Dienstprogramm, das zum Weiterleiten von Protokollen verwendet wird und unter Ubuntu vorinstalliert ist. Daher konfigurieren wir dies so, dass Protokolle an Graylog gesendet werden. In diesem Tutorial konfigurieren wir den Ubuntu-Server, auf dem Graylog ausgeführt wird, so, dass seine Systemprotokolle an die soeben erstellten Eingaben gesendet werden. Sie können diese Schritte jedoch auch auf allen anderen Servern ausführen.

[.Hinweis]##

Wenn Sie Daten von anderen Servern an Graylog senden möchten, müssen Sie eine Firewall-Ausnahme für den UDP-Port8514 hinzufügen.

sudo ufw allow 8514/udp

Erstellen und öffnen Sie eine neuersyslog-Konfigurationsdatei in Ihrem Editor.

sudo nano /etc/rsyslog.d/60-graylog.conf

Fügen Sie der Datei die folgende Zeile hinzu und ersetzen Sieyour_server_private_ip durch die private IP Ihres Graylog-Servers.

/etc/rsyslog.d/60-graylog.conf

*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format

Speichern und beenden Sie Ihren Editor.

Starten Sie den Dienstrsyslogneu, damit die Änderungen wirksam werden.

sudo systemctl restart rsyslog

Wiederholen Sie diese Schritte für jeden Server, von dem Sie Protokolle senden möchten.

Sie sollten nun in der Lage sein, Ihre Protokolle auf der Weboberfläche anzuzeigen. Klicken Sie in der Navigationsleiste auf die RegisterkarteSources, um ein Diagramm der Quellen anzuzeigen. Es sollte ungefähr so ​​aussehen:

Screenshot of sources

Sie können auch auf die RegisterkarteSearch in der Navigationsleiste klicken, um eine Übersicht der neuesten Protokolle anzuzeigen.

Weitere Informationen zu Suchvorgängen finden Sie inGraylog searching documentation.

Fazit

Sie haben jetzt einen funktionierenden Graylog-Server mit einer Eingabequelle, die Protokolle von anderen Servern erfassen kann.

Als Nächstes möchten Sie möglicherweise Dashboards, Warnungen und Streams einrichten. Dashboards bieten einen schnellen Überblick über Ihre Protokolle. Streams kategorisieren Nachrichten, die Sie mit Warnungen überwachen können. Weitere Informationen zum Konfigurieren der erweiterten Funktionen von Graylog finden Sie in denGraylog documentation.

Related