Wie man ein zentrales Log-System mit Graylog unter Debian 11 einrichtet

Graylog ist eine kostenlose und quelloffene Plattform für das Log-Management, mit der du deine Daten und Logs erfassen, speichern und in Echtzeit analysieren kannst. Sie ist in Java geschrieben und baut auf Open-Source-Software wie MongoDB und Elasticsearch auf. Graylog ist eine der effizientesten, schnellsten und flexibelsten Plattformen für zentrales Log-Management.

Mit Graylog kannst du sowohl strukturierte als auch unstrukturierte Daten aus nahezu jeder Datenquelle senden und analysieren.

In diesem Tutorial zeigen wir dir, wie du Graylog als zentralisiertes Logging-System auf dem Debian 11 System installierst und konfigurierst. Außerdem zeigen wir dir, wie du den Nginx-Webserver als Reverse-Proxy für den Graylog-Server einrichtest.

Voraussetzungen

  • Ein Linux Debian 11 Server – mindestens mit 4 GB RAM.
  • Ein Nicht-Root-Benutzer mit sudo- oder Administrator-Rechten.

Grundlegende Pakete installieren Abhängigkeiten

In der ersten Phase dieses Tutorials wirst du einige grundlegende Paketabhängigkeiten installieren, darunter Java und GnuPG.

Bevor du mit der Installation der Pakete beginnst, führe den folgenden apt-Befehl aus, um dein aktuelles Debian-Repository zu aktualisieren und aufzufrischen.

sudo apt update

Installiere nun einige Paketabhängigkeiten für Graylog mit dem unten stehenden Befehl.

sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget

Gib Y ein, um die Installation zu bestätigen und drücke ENTER, um fortzufahren.

grundlegende Abhängigkeiten installieren

Nachdem die Installation abgeschlossen ist, gehst du zum nächsten Schritt über, um die weiteren Graylog-Abhängigkeiten MongoDB und Elasticsearch zu installieren.

Installation von MongoDB

Graylog verwendet die NoSQL-Datenbank MongoDB, um alle Informationen über die Graylog-Konfiguration, Streams, Alarme, Benutzer, zwischengespeicherte Streams usw. zu speichern. Alle Informationen, die du auf den Graylog-Weboberflächen siehst, werden in der NoSQL-Datenbank MongoDB gespeichert, mit Ausnahme der Logs selbst. Die aktuelle Version von Graylog benötigt MongoDB v4 bis v4.4.

Führe die folgenden Befehle aus, um den MongoDB GPG-Schlüssel und das Repository zu deinem Debian-Server hinzuzufügen.

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

Aktualisiere dein Debian-Repository mit dem folgenden Befehl.

sudo apt update

Wie du auf dem Screenshot unten sehen kannst, wurde das MongoDB-Repository zu deinem Debian-Server hinzugefügt.

mongodb Repository hinzufügen

Als Nächstes installierst du die MongoDB-Pakete mit dem folgenden apt-Befehl.

sudo apt install -y mongodb-org

Die Installation der MongoDB-Datenbank beginnt nun.

mongodb installieren

Nachdem die MongoDB-Installation abgeschlossen ist, führe den folgenden Befehl aus, um den systemd manager neu zu laden. Dies ist notwendig, bevor du den MongoDB-Dienst startest.

sudo systemctl daemon-reload

Führe nun den folgenden Befehl aus, um den MongoDB-Dienst zu aktivieren und neu zu starten. Der MongoDB-Dienst wird nun gestartet und läuft automatisch beim Systemstart.

sudo systemctl enable mongod.service
sudo systemctl restart mongod.service

Überprüfe den MongoDB-Dienst mit dem folgenden Befehl.

sudo systemctl status mongod

Wie du auf dem folgenden Screenshot sehen kannst, läuft der MongoDB-Dienst und ist aktiviert.

mongodb starten und verifizieren

Gehe nun zum nächsten Schritt über und installiere Elasticsearch.

Installation von Elasticsearch

Nachdem du die NoSQL-Datenbank MongoDB installiert hast, musst du nun Elasticsearch installieren. Der Graylog-Server nutzt Elasticsearch als Suchmaschine zum Durchsuchen von Logs. In der aktuellen Version benötigt Graylog die Elasticsearch v6.8 oder v7.x bis v7.10.

Bevor du Elasticsearch installierst, führe den folgenden Befehl aus, um den Elasticsearch GPG-Schlüssel und das Repository zu deinem Debian-System hinzuzufügen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Aktualisiere nun dein Debian-Repository.

sudo apt update

Im folgenden Screenshot wird das Elasticsearch-Repository zum Debian-Server hinzugefügt.

elasticsearch repository hinzufügen

Als Nächstes installierst du die Elasticsearch-Pakete mit dem folgenden apt-Befehl.

sudo apt install elasticsearch-oss

Die Installation von Elasticsearch wird gestartet.

elasticsearch installieren

Nachdem die Installation abgeschlossen ist, führe den folgenden Befehl aus, um die Konfiguration zur Elasticsearch-Konfigurationsdatei /etc/elasticsearch/elasticsearch.yml hinzuzufügen. Die folgende Konfiguration erstellt einen neuen Elasticsearch-Cluster mit dem Namen„graylog“ und deaktiviert die automatische Erstellung eines Index in Elasticsearch.

sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null << EOT
cluster.name: graylog
action.auto_create_index: false
EOT

elasticsearch einrichten

Bevor du den Elasticsearrch-Dienst startest, führe den folgenden Befehl aus, um den systemd manager neu zu laden.

sudo systemctl daemon-reload

Führe nun die folgenden Befehle aus, um den Elasticsearch-Dienst zu aktivieren und neu zu starten. Dadurch wird Elasticsearch zum Systemstart hinzugefügt und der Dienst gestartet.

sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service

Überprüfe abschließend den Elasticsearch-Dienst mit dem folgenden Befehl.

sudo systemctl status elasticsearch.service

Im folgenden Screenshot siehst du, dass der Elasticsearch-Dienst läuft und aktiviert ist.

elasticsearch starten und verifizieren

Außerdem kannst du die Installation von Elasticsearch überprüfen, indem du mit curl auf Elasticsearch zugreifst. Elasticsearch läuft auf dem Standardport 9200, also führe den folgenden curl-Befehl aus.

curl http://localhost:9200/

Jetzt siehst du die folgende Ausgabe. Elasticsearch v7.x mit dem Cluster namens graylog ist auf dem Debian-Server installiert.

verifiziere elasticsearch

Jetzt kannst du den Graylog-Server auf dem Debian-Server installieren.

Graylog Server installieren und konfigurieren

Um die Graylog-Installation zu starten, musst du die .deb-Datei des Graylog-Repositorys herunterladen und mit dem folgenden Befehl installieren.

wget https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.deb
sudo dpkg -i graylog-4.2-repository_latest.deb

Aktualisiere nun dein Debian-Repository.

sudo apt update

Unten siehst du, dass das Graylog-Repository zum Debian-Server hinzugefügt wurde.

graylog repository hinzufügen

Als Nächstes installierst du die Graylog-Pakete auf deinem Debian-Server mit dem unten stehenden apt-Befehl.

sudo apt install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins

Die Graylog-Installation wird nun gestartet.

graylog installieren

Nachdem die Installation abgeschlossen ist, führe den folgenden Befehl aus, um das Graylog password_secret zu erzeugen, das für die Passwortverschlüsselung und das Salting verwendet wird. Das Graylog password_secret muss dasselbe sein, wenn du einen Graylog-Cluster mit mehreren Knoten betreibst. Außerdem brauchst du eine zufällige Zeichenfolge und eine Zahl von mindestens 65 für das Graylog password_secret.

pwgen -N 1 -s 96

Kopiere die generierte Zufallszeichenfolge für das Graylog password_secret in deine Notiz.

Als Nächstes führst du den folgenden Befehl aus, um das verschlüsselte Passwort mit sha256 zu erzeugen. Dieses Passwort wird als Graylog-Administrationspasswort verwendet.

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

Gib dein Passwort für das Graylog-Administrationspasswort ein. Du siehst dann das verschlüsselte Passwort sha256. Kopiere das verschlüsselte Passwort auf deinen Zettel.

Passwort geheim und Passwort sha256 generieren

Als nächstes bearbeitest du die Graylog-Serverkonfiguration /etc/graylog/server/server.conf mit dem nano-Editor.

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

Kopiere das generierte Graylog password_secret und das Graylog-Administrationspasswort und füge es wie unten beschrieben in root_password_sha2 ein.

password_secret = Eqq4M8EHpKbGfgi6C05t19hJ5WmF3nkVS8yjwclYHtvwsTXRulNHEsaWuy85QUTNIUc6b2ovfRjvR7yD5kwNTPAJCCw39T3d
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223

Speichere und schließe die Datei, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um den systemd manager neu zu laden, bevor du den Graylog-Serverdienst startest.

sudo systemctl daemon-reload

Aktiviere und starte den Graylog-Serverdienst mit dem unten stehenden Befehl.

sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service

Graylog-Dienst starten

Wenn der Graylog-Server läuft, überprüfe ihn mit dem folgenden Befehl.

sudo systemctl status graylog-server.service

Im folgenden Screenshot siehst du, dass der Graylog-Serverdienst läuft und aktiviert ist.

Überprüfe den Graylog-Dienst

Die Graylog-Installation ist nun abgeschlossen und der Server läuft auf dem standardmäßigen localhost mit Port 9000.

Nginx als Reverse Proxy einrichten

Nachdem du die Installation und Konfiguration des Graylog-Servers abgeschlossen hast, installierst und konfigurierst du nun den Nginx-Webserver als Reverse-Proxy für den Graylog-Server. So kannst du Graylog mit deinem Domainnamen betreiben.

Installiere das Nginx-Paket auf deinem Debian-Server mit folgendem Befehl.

sudo apt install nginx -y

Die Installation wird gestartet.

Nach Abschluss der Installation erstellst du mit dem nano-Editor einen neuen virtuellen Nginx-Host oder Serverblock /etc/nginx/sites-available/graylog.conf.

sudo nano /etc/nginx/sites-available/graylog.conf

Füge die folgende Nginx-Konfiguration hinzu. Damit wird Nginx als Reverse Proxy für den Graylog-Server auf http://127.0.0.1:9000/ aktiviert:

server
{
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name graylog.example.org;

    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL http://$server_name/;
      proxy_pass       http://127.0.0.1:9000;
    }
}

Speichere und schließe die Datei, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um die Konfiguration graylog.conf zu aktivieren. Überprüfe dann die nginx-Konfiguration.

sudo ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/
sudo nginx -t

Vergewissere dich, dass du eine Meldung wie test successful erhältst.

Starte schließlich den Nginx-Dienst neu, um die neue Konfiguration des virtuellen Hosts mit folgendem Befehl anzuwenden.

sudo systemctl restart nginx

Öffne nun deinen Webbrowser und rufe die Domain für die Graylog-Installations-URL auf.

http://graylog.hwdomain.io/

Du siehst die unten stehende Graylog-Anmeldeseite. Gib den Standardbenutzer admin mit deinem Passwort ein (das root_password_sha2) und klicke auf die Schaltfläche Anmelden.

graylog Login-Seite

Nachdem du dich angemeldet hast, siehst du das Graylog-Dashboard wie unten abgebildet.

graylog Dashboard

Du hast nun Graylog unter dem Nginx Reverse Proxy ausgeführt.

Fazit

Herzlichen Glückwunsch! Du hast nun die Installation und Konfiguration des Graylog-Servers auf dem Debian 11-Server abgeschlossen. Außerdem hast du die Konfiguration von Nginx als Reverse Proxy für den Graylog-Server abgeschlossen.

Das könnte dich auch interessieren …