Zum Hauptinhalt springen Skip to page footer

Graylog unter Debian 11 - Kostenlose Open-Source-Protokollverwaltungsplattform für zentrales Log-Management

| Tutorial | Debian Graylog

Graylog ist eine kostenlose Open-Source-Protokollverwaltungsplattform zum Sammeln, Speichern und Analysieren von Daten und Protokollen in Echtzeit. Es ist in Java geschrieben und basiert auf anderer Open Source Software wie MongoDB und Opensearch/Elasticsearch. Graylog ist eine der effizientesten, schnellsten und flexibelsten Plattformen für zentralisiertes Log-Management.

Hinweis

Hinweis: In dieser Anleitung wird davon ausgegangen, dass eine Firewall deaktiviert ist und der Datenverkehr über alle erforderlichen Ports fließen kann.

Voraussetzungen

Graylog 5.x benötigt die folgenden Voraussetzungen, um mit seinen Softwareabhängigkeiten kompatibel zu sein: 

  • OpenJDK 17 (Dieses ist in Graylog 5.0 integriert und muss nicht separat installiert werden.)
  • OpenSearch 1.x, 2.x oder Elasticsearch 7.10.2
  • MongoDB 5.x oder 6.x (Dies erfordert eine CPU mit AVX-Befehlen. Stellen Sie sicher, dass Ihre CPU AVX unterstützt und dass in virtuellen Umgebungen der AVX-Befehlssatz dem Hypervisor zur Verfügung gestellt wird.)

1. Installation von MongoDB

Graylog 5.0 ist kompatibel mit MongoDB 5.x-6.x.

Gehen Sie bei der Installation von MongoDB nach folgender Anleitung vor.

Hinweis

MongoDB empfiehlt Ihnen, Transparent Huge Pages zu deaktivieren: Deaktivieren Sie Transparent Huge Pages (THP). (Um MongoDB unter Debian zu installieren, bietet die offizielle MongoDB-Dokumentation eine hilfreiche Anleitung).

2. Installation von OpenSearch

Wenn Sie OpenSearch als Datenknoten verwenden wollen, gehen Sie nach folgender Anleitung vor, um OpenSearch 2.x zu installieren.

3. Graylog-Konfiguration für OpenSearch

Öffnen Sie die yml-Datei
sudo nano /etc/opensearch/opensearch.yml
Aktualisieren Sie die folgenden Parameter für einen ungesicherten Betriebszustand (einzelner Knoten).
cluster.name: graylog
node.name: ${HOSTNAME}
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
discovery.type: single-node
network.host: 0.0.0.0
action.auto_create_index: false
plugins.security.disabled: true
Aktivieren Sie die JVM-Optionen:
sudo nano /etc/opensearch/jvm.options
Aktualisieren Sie nun die Xms- und Xmx-Einstellungen mit der Hälfte des installierten physikalischen Systemspeichers, wie im folgenden Beispiel gezeigt.
## JVM configuration
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://opensearch.org/docs/opensearch/install/important-settings/
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms2g
-Xmx2g
Konfigurieren Sie die Kernelparameter:
sudo sysctl -w vm.max_map_count=262144
sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
Aktivieren Sie schließlich den Systemdienst:
sudo systemctl daemon-reload
sudo systemctl enable opensearch.service
sudo systemctl start opensearch.service

Installation von Graylog

Installieren Sie nun die Graylog Repository Konfiguration und Graylog selbst mit den folgenden Befehle
wget https://packages.graylog2.org/repo/packages/graylog-5.0-repository_latest.deb
sudo dpkg -i graylog-5.0-repository_latest.deb
sudo apt-get update && sudo apt-get install graylog-server
Ausgabe:
Holen:1 http://security.debian.org/debian-security bullseye-security InRelease [48,4 kB]
Ign:2 http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 InRelease
OK:3 https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable InRelease
OK:4 https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable InRelease
OK:5 https://deb.debian.org/debian bullseye InRelease
Holen:6 https://deb.debian.org/debian bullseye-updates InRelease [44,1 kB]
Holen:7 https://deb.debian.org/debian-security bullseye-security InRelease [48,4 kB]
Holen:8 https://deb.debian.org/debian bullseye-backports InRelease [49,0 kB]
Holen:9 http://security.debian.org/debian-security bullseye-security/main Sources [202 kB]
Holen:10 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [245 kB]
Holen:11 http://security.debian.org/debian-security bullseye-security/main Translation-en [162 kB]
Holen:12 http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 Release [2.036 B]
Holen:13 https://packages.graylog2.org/repo/debian stable InRelease [58,1 kB]
Holen:14 http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 Release.gpg [801 B]
Holen:15 https://deb.debian.org/debian-security bullseye-security/main amd64 Packages [245 kB]
Holen:16 https://deb.debian.org/debian-security bullseye-security/main Translation-en [162 kB]
Holen:17 http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0/main amd64 Packages [25,1 kB]
Holen:18 https://packages.graylog2.org/repo/debian stable/5.0 amd64 Packages [7.466 B]
Es wurden 1.300 kB in 1 s geholt (998 kB/s).
Paketlisten werden gelesen… Fertig
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  uuid-runtime
Die folgenden NEUEN Pakete werden installiert:
  graylog-server uuid-runtime
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 4 nicht aktualisiert.
Es müssen 299 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 419 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
Holen:1 http://security.debian.org/debian-security bullseye-security/main amd64 uuid-runtime amd64 2.36.1-8+deb11u1 [101 kB]
Holen:2 https://packages.graylog2.org/repo/debian stable/5.0 amd64 graylog-server amd64 5.0.8-1 [299 MB]
Es wurden 299 MB in 39 s geholt (7.578 kB/s).
Vormals nicht ausgewähltes Paket uuid-runtime wird gewählt.
(Lese Datenbank ... 256940 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../uuid-runtime_2.36.1-8+deb11u1_amd64.deb ...
Entpacken von uuid-runtime (2.36.1-8+deb11u1) ...
Vormals nicht ausgewähltes Paket graylog-server wird gewählt.
Vorbereitung zum Entpacken von .../graylog-server_5.0.8-1_amd64.deb ...
Entpacken von graylog-server (5.0.8-1) ...
uuid-runtime (2.36.1-8+deb11u1) wird eingerichtet ...
Lege Gruppe »uuidd« (GID 127) an ...
Fertig.
Warnung: Auf das von Ihnen angegebene Home-Verzeichnis /run/uuidd kann nicht zugegriffen werden: No such file or directory
Lege Systembenutzer »uuidd« (UID 119) an ...
Lege neuen Benutzer »uuidd« (UID 119) mit Gruppe »uuidd« an ...
Erstelle Home-Verzeichnis »/run/uuidd« nicht.
Created symlink /etc/systemd/system/sockets.target.wants/uuidd.socket → /lib/systemd/system/uuidd.socket.
uuidd.service is a disabled or a static unit, not starting it.
graylog-server (5.0.8-1) wird eingerichtet ...
################################################################################
Graylog does NOT start automatically!

Please run the following commands if you want to start Graylog automatically on system boot:

    sudo systemctl enable graylog-server.service

    sudo systemctl start graylog-server.service

################################################################################
Trigger für man-db (2.9.4-2) werden verarbeitet ...

Bearbeiten Sie die Konfigurationsdatei

Lesen Sie die Anweisungen in der Konfigurationsdatei, die sich unter /etc/graylog/server/server.conf befindet, und ändern Sie sie nach Bedarf. Fügen Sie auch password_secret und root_password_sha2 hinzu, da diese obligatorisch sind und Graylog ohne sie nicht gestartet werden kann.

1. Um Ihr root_password_sha2 zu erstellen, führen Sie den folgenden Befehl aus.

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

2. Um ein password_secret zu erzeugen.

< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;
http_bind_address

Um eine Verbindung zu Graylog herstellen zu können, sollten Sie http_bind_address auf den öffentlichen Hostnamen oder eine öffentliche IP-Adresse für den Rechner setzen, mit dem Sie eine Verbindung herstellen können. Weitere Informationen zu diesen Einstellungen finden Sie unter Konfigurieren der Webschnittstelle.

Tipp

Wenn Sie ein Single-Node-Setup betreiben und HTTPS für die Graylog-Weboberfläche und die Graylog-REST-API verwenden möchten, ist es möglich, NGINX oder Apache als Reverse-Proxy zu verwenden.

mongodb_uri

Wenn Sie, wie im Tutorial “MongoDB 6.0 Community Edition: Installation und Konfiguration” unter “Aktivieren der MongoDB-Authentifizierung” beschrieben, für MongoDB eine Authentifizierung eingerichtet haben, müssen Sie noch die Einstellung für mongodb_uri anpassen.

Hierfür müssen Sie zuvor in MongoDB eine Collection einrichten, einen Benutzer anlegen und diesem Rechte auf die Collection geben.

Melden Sie sich in MongoDB an:
mongosh -u mongoAdmin -p
Wechseln Sie in die Collection "graylog"
use graylog

Sollte es die Collection “graylog” innerhalb von MongoDB noch nicht geben, wird diese jetzt automatisch erstellt.

db.createUser({
  user: "graylog",
  pwd: "graylog123!",
  roles: [
    { role: "readWrite", db: "graylog" },
    { role: "dbAdmin", db: "graylog" }
  ]
})

Sie können natürlich einen anderen Benutzernamen und ein anderes Passwort wählen.

Durch den Befehl wird der Benutzer angelegt und erhält auf die Collection Schreib- und Leserechte.

mongodb_uri = mongodb://mongodb_benutzer:mongodb_passwort@localhost:27017/graylog

3. Graylog aktivieren

Der letzte Schritt besteht darin, Graylog während des Starts des Betriebssystems zu aktivieren und zu überprüfen, ob es läuft.

sudo systemctl daemon-reload
sudo systemctl enable graylog-server
sudo systemctl start graylog-server
sudo systemctl --type=service --state=active | grep graylog

Sie können nun Nachrichten in Ihre Graylog-Instanz aufnehmen und die Nachrichten mit Extraktoren extrahieren oder Pipelines verwenden, um mit den Nachrichten zu arbeiten.