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.name
ingraylog
:
/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.deb
und 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_secret
einstellen. 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_secret
in 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_sha2
einstellen. 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-server
neu 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:
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:
-
Wählen Sie fürNode Ihren Server aus. Es sollte das einzige Element in der Liste sein.
-
Geben Sie fürTitle einen geeigneten Titel ein, z. B.
Linux Server Logs
. -
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 Sie
0.0.0.0
(alle Schnittstellen) festlegen. -
Geben Sie fürPort
8514
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 über1024
liegt. 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:
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 Dienstrsyslog
neu, 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:
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.