Wie man die zentrale Protokollerfassung und -analyse mit Graylog verwaltet

Graylog ist eine robuste Open-Source-Lösung zur zentralen Verwaltung von Logdateien. Es eignet sich hervorragend zum Sammeln, Visualisieren und Analysieren von Logs von verschiedensten Geräten – Linux-Servern, Windows-Rechnern, Netzwerkgeräten usw. Sind Ihre Logs verstreut und die Fehlersuche gleicht der Suche nach der Nadel im Heuhaufen? Dann kann Graylog Abhilfe schaffen. Nach der Installation stehen Ihnen Such-, Filter- und Dashboard-Funktionen nahezu sofort zur Verfügung. Doch die Einrichtung ist nicht trivial – insbesondere, wenn Sie noch keine Erfahrung mit Serverinstallationen oder Abhängigkeiten haben. Diese Anleitung führt Sie Schritt für Schritt durch die Installation des gesamten Pakets auf einem Linux-System, hauptsächlich Debian-basiert, sodass Sie es problemlos in Betrieb nehmen können.

Um Graylog zum Laufen zu bringen, müssen mehrere Komponenten installiert werden: MongoDB für Metadaten, OpenSearch (oder Elasticsearch) für die Protokollspeicherung und -suche, Java (OpenJDK) und der Graylog-Server selbst. Achten Sie auf die Hardware: Ihr Rechner sollte mindestens 2 GB RAM haben (bei größeren Installationen ist mehr RAM empfehlenswert).Linux macht die Sache bekanntlich oft unnötig kompliziert – Abhängigkeiten können Probleme verursachen, insbesondere bei neueren Debian- oder Ubuntu-Versionen. Wichtig ist, dass alle Voraussetzungen erfüllt sind, jede Komponente korrekt konfiguriert ist und die Dienste ordnungsgemäß starten. Das Ganze dauert zwar nicht fünf Minuten, aber sobald der Stack läuft, ist er äußerst leistungsstark für die Protokollverwaltung.

So installieren Sie den Graylog Stack auf Linux-Systemen

MongoDB und Abhängigkeiten einrichten

  • Installieren Sie zunächst GnuPG und curl, falls diese noch nicht auf dem System vorhanden sind – sie werden für die Einrichtung des Repositorys und die Schlüsselverwaltung benötigt.
  • Fügt das MongoDB 6.x-Repository hinzu, denn MongoDB 7 wird für Graylog noch nicht empfohlen – überspringt das nicht, sonst werden Updates ein Albtraum.
  • Verwenden$ sudo apt-get install gnupg curl
  • Anschließend den MongoDB-GPG-Schlüssel abrufen und das Repository hinzufügen:
  • bash $ curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg –dearmor $ echo „deb [signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main“ | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
  • Paketliste aktualisieren und MongoDB installieren:
  • $ sudo apt-get update
  • $ sudo apt-get install -y mongodb-org

Kurzer Hinweis: Bei manchen Konfigurationen führt die Installation von MongoDB 6.x zu Fehlern aufgrund nicht erfüllter Abhängigkeiten – hauptsächlich, weil libssl1.1 in neueren Debian/Ubuntu-Versionen nicht mehr verfügbar ist. Laden Sie in diesem Fall das benötigte libssl-Paket manuell herunter und installieren Sie es.

$ sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb $ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb 

Nach der Installation MongoDB starten und aktivieren:

$ sudo systemctl daemon-reload $ sudo systemctl enable mongod.service $ sudo systemctl restart mongod.service $ sudo systemctl --type=service --state=active | grep mongod

OpenSearch (oder Elasticsearch) installieren

  • Füge das OpenSearch-Repository hinzu, da Graylog gut mit OpenSearch 2.x funktioniert – Elasticsearch wird offiziell nicht mehr unterstützt.
  • Befehle:
  • $ sudo apt-get update && sudo apt-get install lsb-release ca-certificates curl gnupg2
  • GPG-Schlüssel abrufen und Repository hinzufügen:
  • bash $ curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg –dearmor –batch –yes -o /usr/share/keyrings/opensearch-keyring $ echo „deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main“ | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list $ sudo apt update

Während der Installation, ab OpenSearch 2.12, müssen Sie beim ersten Start ein Administratorpasswort festlegen:

$ sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom | head -c 32) apt-get install opensearch

Konfigurieren Sie die Einstellungen so, dass sie für eine einfache Einzelknoteninstallation funktionieren. Verwenden Sie dazu den Editor nano /etc/opensearch/opensearch.yml und passen Sie die folgenden Zeilen an:

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 indices.query.bool.max_clause_count: 32768 

Konfigurieren Sie außerdem E-Mail-Benachrichtigungen (für Warnmeldungen) in der Datei `/etc/opensearch/opensearch.yml`. Geben Sie dort die SMTP-Details wie Host, Port und Authentifizierungsinformationen für Gmail an. Wichtig: Sie benötigen ein E-Mail-Konto mit aktiviertem eingeschränktem App-Zugriff, wenn Sie Warnmeldungen über Gmail erhalten möchten (ein App-spezifisches Passwort ist jedoch empfehlenswerter).Dieser Schritt wird oft übersehen, aber ohne ihn funktionieren E-Mail-Benachrichtigungen nicht.

Die Größe des Java-Heaps ist entscheidend, insbesondere für das Ressourcenmanagement. Bearbeiten Sie die Datei `/etc/opensearch/ jvm.options` und setzen Sie die Parameter `–heap` -Xmsund ` -Xmx–heap` auf etwa die Hälfte Ihres gesamten Arbeitsspeichers. Wenn der Server beispielsweise 8 GB RAM hat, setzen Sie beide auf 4 GB.

-Xms4g -Xmx4g 

Zum Schluss sollten Sie den virtuellen Speicher von Linux so anpassen, dass OpenSearch reibungslos funktioniert:

$ sudo sysctl -w vm.max_map_count=262144 $ echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf 

OpenSearch starten und aktivieren:

$ sudo systemctl enable --now opensearch

Installation des Graylog-Servers

  • Füge das Graylog-Repository für Debian hinzu:
  • $ wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
  • Installieren und aktualisieren:
  • $ sudo dpkg -i graylog-5.2-repository_latest.deb
  • $ sudo apt-get update
  • Graylog-Server installieren:
  • $ sudo apt-get install graylog-server

Generieren Sie vor dem Start von Graylog sichere Geheimnisse, da diese für die Einrichtung zwingend erforderlich sind. Verwenden Sie pwgen (installieren Sie es gegebenenfalls), um ein zufälliges Geheimnis zu erstellen:

$ pwgen -N 1 -s 96

Generieren Sie den SHA-256-Hash für das Administratorpasswort, das Sie verwenden möchten:

$ echo -n "YourPassword" | sha256sum | awk '{ print $1 }'

Fügen Sie das generierte Geheimnis und den Hash in die Datei `/etc/graylog/server/server.conf` ein. Konfigurieren Sie anschließend die IP-Adresse und den Port der Weboberfläche – üblicherweise `http_bind_address` –, um sie erreichbar zu machen. Starten Sie danach den Graylog-Dienst.

$ sudo systemctl enable --now graylog-server

Erste Anmeldungen und Ersteinrichtung

Beim ersten Zugriff auf die Graylog-Weboberfläche werden Sie nach Ihrem zuvor festgelegten Passwort gefragt. Aufgrund bestimmter Workflow-Besonderheiten finden Sie jedoch ein temporäres Passwort in den Protokollen (ähnlich wie „eDLaYAlaeX“).Melden Sie sich mit diesen Anmeldedaten an und folgen Sie dem Einrichtungsassistenten. Die Einrichtung ist ganz einfach: Wählen Sie Ihre Eingabegeräte aus, richten Sie Benutzer ein und erstellen Sie Datenströme für Ihre Geräte. Um grundlegende Protokolle von Linux-Servern zu erhalten, richten Sie einfach einen Syslog-UDP-Eingang auf Port 514 (oder einem anderen Port Ihrer Wahl) ein und konfigurieren Sie Ihre Geräte so, dass sie die Protokolle dorthin senden.

Sobald Protokolle eingehen, nutzen Sie die Suchfunktion, um Ereignisse zu finden und Dashboards zu erstellen. Die Suche nach fehlgeschlagenen SSH-Versuchen sieht beispielsweise so aus: [Hier sollte der application_name:sshd AND message:Fail*Suchbegriff stehen].Mit den integrierten Tools lässt sich einfach filtern, aber es kann etwas Übung erfordern, sich mit der Syntax vertraut zu machen. Hier stoßen Benutzer oft auf Schwierigkeiten, also wundern Sie sich nicht, wenn Sie ein paar Versuche brauchen, um Ihre Suchvorgänge zu optimieren.

Und natürlich können Benachrichtigungen Gold wert sein. Sie können sich per E-Mail benachrichtigen lassen, wenn eine SSH-Anmeldung erfolgt oder bestimmte Fehlerprotokolle angezeigt werden. Gehen Sie einfach zu „Benachrichtigungen“, definieren Sie Ihre Suchkriterien und wählen Sie E-Mail- oder Slack-Benachrichtigungen. Ein wenig Einrichtung, aber sobald das erledigt ist, behält Graylog alles im Blick, auch wenn Sie nicht hinschauen.

Hoffentlich hilft Ihnen das, Graylog ohne größere Probleme einzurichten. Es ist zwar etwas mühsam, aber die dadurch gewonnene Transparenz in Ihrer Umgebung lohnt sich auf jeden Fall. Denken Sie daran: Geduld und sorgfältige Konfiguration sind entscheidend. Sobald alles eingerichtet ist, werden die Protokolle viel verständlicher und die Fehlersuche deutlich einfacher.

Zusammenfassung

  • Installieren Sie MongoDB, OpenSearch und den Graylog-Server sorgfältig und achten Sie auf die Abhängigkeiten.
  • Bearbeiten Sie die Konfigurationsdateien mit den richtigen Parametern – insbesondere den Speicher- und Netzwerkeinstellungen.
  • Richten Sie Ihre Syslog-Quellen so ein, dass Protokolle an die Eingänge von Graylog gesendet werden.
  • Erkunden Sie Suchfilter, Dashboards und Benachrichtigungen, sobald die Protokolle eintreffen.

Zusammenfassung

Die Einrichtung dieses Systems erfordert etwas Geduld, aber sobald es läuft, sind die Vorteile zentralisierter Protokolle enorm. Es ist eine sinnvolle Investition für die Fehlersuche, die Sicherheit und die Überwachung Ihres Netzwerks. Sollten Probleme auftreten, überprüfen Sie die Protokolle und Konfigurationen jedes Dienstes – oft sind es Kleinigkeiten wie Tippfehler oder Netzwerkprobleme, die die größten Schwierigkeiten verursachen. Hoffentlich hilft dies jemandem, ein frustrierendes Wochenende zu vermeiden.