So installierst du Graylog unter AlmaLinux 9

Graylog ist eine kostenlose und quelloffene Log-Management-Plattform zum Erfassen, Speichern und Analysieren deiner Daten und Logs in Echtzeit. 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 dieser Anleitung gehen wir auf die Installation von Graylog als zentralisiertes Log Management System auf dem AlmaLinux 9 Server ein. Du installierst den Graylog-Server und richtest dann die Eingänge für die Clients ein, die Logs an den Graylog-Server senden.

Voraussetzungen

Damit du diesen Leitfaden durcharbeiten kannst, musst du folgende Voraussetzungen erfüllen:

  • Einen AlmaLinux 9 Server mit mindestens 4 GB Arbeitsspeicher – In diesem Fall verwenden wir einen AlmaLinux Server mit 8 GB Arbeitsspeicher und der IP-Adresse 192.168.10.20.
  • Ein Nicht-Root-Benutzer mit Administrator-Rechten.

Repositories einrichten

Zu Beginn dieser Anleitung fügst du neue Repositories zu deinem AlmaLinux 9 Rechner hinzu. Du wirst das Repository von MongoDB 6.x, Opensearch 2.x und Graylog 5.x zu deinem System hinzufügen.

Führe zunächst den unten stehenden dnf-Befehl aus, um curl auf deinem System zu installieren.

sudo dnf install curl -y

Curl installieren

Kopiere nun den folgenden Befehl und führe ihn aus, um das MongoDB-Repository hinzuzufügen. Der Graylog-Server benötigt mindestens MongoDB v6.x.

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-6.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

Als Nächstes führst du den folgenden Befehl aus, um das Opensearch-Repository hinzuzufügen. Opensearch ist eine Alternative zu Elasticsearch, die für die neue Graylog-Version empfohlen wird. In diesem Fall werden wir Opensearch v2.x verwenden.

sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo

Hinzufügen von mongodb und opensearch repository

Führe nun den unten stehenden Befehl aus, um das Graylog-Repository zu deinem System hinzuzufügen. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version des Graylog-Servers v5.1.

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-5.1-repository_latest.rpm

Graylog Repo hinzufügen

Führe abschließend den Befehl dnf aus, um die verfügbaren Repositories auf deinem AlmaLinux Server zu überprüfen.

sudo dnf repolist

Wenn du erfolgreich warst, solltest du das Repository von MongoDB 6.x, Opensearch 2.x und dem Graylog Server sehen.

Auflistung der Repositories

Installieren der Abhängigkeiten

Nachdem du die Repositories hinzugefügt hast, installierst du MongoDB 6.x und Opensearch 2.x über den DNF-Paketmanager. MongoDB wird für String-Daten verwendet und Opensearch ist die Hauptsuchmaschine für den Graylog-Server.

Führe den folgenden dnf-Befehl aus, um MongoDB und Opensearch zu installieren. Gib y ein, wenn du zur Bestätigung aufgefordert wirst, und drücke dann ENTER.

sudo dnf install mongodb-org opensearch

mongodb opensearch installieren

Sobald MongoDB und Opensearch installiert sind, führe den Befehl systemctl aus, um den systemd Manager neu zu laden.

sudo systemctl daemon-reload

Starte und aktiviere dann den MongoDB-Dienst mit dem unten stehenden Befehl.

sudo systemctl start mongod
sudo systemctl enable mongod

Starte und aktiviere den Opensearch-Dienst mit dem unten stehenden Befehl.

sudo systemctl start opensearch
sudo systemctl enable opensearch

start enable mongodb opensearch

Führe abschließend den unten stehenden Befehl aus, um den Status der Dienste MongoDB und Opensearch zu überprüfen. Wenn der Dienst läuft, sollte er aktiv sein (ausgeführt).

sudo systemctl status mongod
sudo systemctl status opensearch

Überprüfe den Status des MongoDB-Dienstes.

mongodb prüfen

Überprüfen des Status des Opensearch-Dienstes.

Überprüfung der Eröffnungssuche

Opensearch konfigurieren

Für den Einsatz von Graylog wird empfohlen, Opensearch als Standardsuchmaschine zu verwenden. Eine Alternative zu Opensearch ist Elasticsearch, allerdings wird nur Elasticsearch v7.x unterstützt. Im folgenden Abschnitt wirst du Opensearch als Standardsuchmaschine für deinen Graylog-Server einrichten.

Öffne zunächst die Standardkonfiguration von Opensearch /etc/opensearch/opensearch.yml mit dem folgenden Befehl des nano-Editors.

sudo nano /etc/opensearch/opensearch.yml

Entferne den Kommentar zum Parameter cluster.name und gib den Namen deines Opensearch-Clusters ein, node.name und gib den Hostnamen deines Systems ein, dann network.host und gib deine interne IP-Adresse ein. In diesem Fall lautet der Clustername graylog mit dem Hostnamen graylog-alma und der IP-Adresse 192.168.10.20 (dies läuft in einem lokalen Netzwerk).

cluster.name: graylog
node.name: graylog-alma
network.host: 0.0.0.0

Füge die folgenden Zeilen hinzu, um Opensearch als einzelnen Knoten/Server einzurichten und deaktiviere auto_create_index und das Sicherheits-Plugin (nur zu Testzwecken).

discovery.type: single-node
action.auto_create_index: false
plugins.security.disabled: true

Speichere die Datei und beende den Editor, wenn du fertig bist.

Öffne nun die Datei /etc/opensearch/jvm.options mit dem nano-Editor, um die maximale Speicherzuweisung für den Opensearch-Dienst festzulegen.

sudo nano /etc/opensearch/jvm.options

Ändere die Standard-Speicherzuweisung für deine Opensearch-Installation. In diesem Fall sollte Opensearch mit einem maximalen Arbeitsspeicher von 2 GB laufen.

-Xms2g
-Xmx2g

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

Als Nächstes öffnest du die Datei /usr/lib/tmpfiles.d/opensearch.conf mit dem folgenden Editor-Befehl nano.

sudo nano /usr/lib/tmpfiles.d/opensearch.conf

Ändere den Standardpfad von /var/run/opensearch in /run/opensearch. In diesem Verzeichnis werden zusätzliche Dateien für Opensearch gespeichert, die durch diese Konfiguration automatisch erstellt werden.

/run/opensearch

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

Danach führst du den folgenden Befehl aus, um die vm.max_map_count auf 262144 zu erhöhen. Dies wird von Opensearch benötigt und um es dauerhaft zu machen, fügst du einen neuen Parameter zur Datei /etc/sysctl.conf hinzu.

sudo sysctl -w vm.max_map_count=262144
sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

Führe nun den folgenden systemctl-Befehl aus, um den Opensearch-Dienst neu zu starten und die vorgenommenen Änderungen zu übernehmen.

sudo systemctl restart opensearch

Opensearch sollte auf der lokalen IP-Adresse deines Servers laufen. In diesem Fall läuft es auf 192.168.10.20 mit dem Standardport 9200.

configure opensearch

Führe den folgenden curl-Befehl aus, um auf deine Opensearch-Installation zuzugreifen.

curl 192.168.10.20:9200

Wenn die Opensearch-Konfiguration erfolgreich war, solltest du die detaillierten Informationen über deine Opensearch-Installation wie folgt sehen:

Überprüfung der Eröffnungssuche

An diesem Punkt sind Opensearch und MongoDB bereit. Im nächsten Abschnitt wirst du mit der Installation und Konfiguration des Graylog-Servers beginnen.

Graylog Server installieren und konfigurieren

In diesem Abschnitt installierst du den Graylog Server v5.x auf deinem AlmaLinux 9 Rechner und konfigurierst Graylog als zentrales Log-Management für deine Infrastruktur.

Führe den folgenden dnf-Befehl aus, um das Paket graylog-server zu installieren. Gib y ein, um die Installation zu bestätigen und drücke ENTER, um fortzufahren.

sudo dnf install graylog-server

graylog-server installieren

Gib erneut y ein, um den GPG-Schlüssel des Graylog-Repositorys hinzuzufügen.

gpg-Schlüssel importieren

Sobald der Graylog-Server installiert ist, führe den folgenden Befehl aus, um das Passwort_secret für den Graylog-Server zu generieren. Kopiere die zufällige Zeichenfolge, die du erzeugt hast.

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

Führe nun den folgenden Befehl aus, um das root_password_sha2 für deinen Graylog-Server zu generieren. Dieses Passwort wird für die Anmeldung im Graylog-Administrations-Dashboard verwendet.

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

Gib dein Passwort ein und kopiere das generierte Hash-Passwort.

Passwort geheim und Root-Passwort sha2 generieren

Im folgenden Beispiel, JmGGtkruJ80LjnQBnz8QZ0gHjKpBZwWmH7JF0ZBa9iBS999bTlQfViaQj7jAH-XgIVcdVcDVYyy3x5Dh7fEXCPhbrSUXX1G1 ist das geheime Passwort und 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 ist das generierte root_password_sha2 Passwort für deinen Graylog Server.

Als nächstes öffnest du die Graylog-Konfiguration /etc/graylog/server/server.conf mit dem nano-Editor.

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

Gib das generierte Passwortgeheimnis in den Parameter password_secret ein und ändere das Standardpasswort root_password_sha2 mit dem neuen Passwort, das du generiert hast.

password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX
...
root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111

Entferne den Kommentar zum Parameter http_bind_address und ändere die IP-Adresse in deine interne IP-Adresse, gefolgt von dem Standard-Port 9000 des Graylog-Servers.

http_bind_address = 192.168.10.20:9000

Speichere die Datei und schließe den Editor.

Führe nun den Befehl systemctl aus, um den systemd Manager neu zu laden.

sudo systemctl daemon-reload

Starte und aktiviere dann den Graylog-Server mit dem unten stehenden Befehl.

sudo systemctl start graylog-server
sudo systemctl enable graylog-server

start enable graylog

Überprüfe abschließend den Status des Graylog-Servers mit dem folgenden Befehl. Wenn Graylog läuft, solltest du auf deinem Terminal die Ausgabe active (läuft) erhalten.

sudo systemctl status graylog-server

Überprüfung des Graylog-Dienstes

Außerdem kannst du den Graylog-Server auch überprüfen, indem du die Liste der offenen Ports auf deinem System mit dem ss-Befehl unten überprüfst.

ss -tulpn | grep 9000

Wenn du erfolgreich bist, solltest du sehen, dass der Graylog-Server den Port 9000 verwendet.

Firewalld und SELinux konfigurieren

Nachdem du den Graylog-Server installiert und konfiguriert hast, musst du im nächsten Schritt SELinux und Firewalld einrichten. In diesem Fall läuft SELinux im erzwingenden Modus und die Firewalld läuft.

Führe den folgenden dnf-Befehl aus, um die SELinux-Verwaltungstools auf deinem AlmaLinux-Server zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke dann ENTER, um fortzufahren.

sudo dnf install policycoreutils policycoreutils-python-utils

Installation der Selinux-Tools

Führe nun den folgenden Befehl aus, um einige SELinux-Richtlinien hinzuzufügen und Ports für einige Dienste wie Graylog Server Port 9000, MongoDB Port 27017 und Opensearch Port 9200 zuzulassen.

sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

selinux Einrichtung

Als Nächstes führst du den Befehl firewall-cmd aus, um den Port 9000 des Graylog-Servers zur Firewalld hinzuzufügen, und lädst die Firewalld neu, um die Änderungen zu übernehmen.

sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

Führe abschließend den folgenden Befehl aus, um die Liste der Firewall-Regeln deines Systems zu überprüfen. Stelle sicher, dass Port 9000 in deiner Firewalld verfügbar ist.

sudo firewall-cmd --list-all

firewalld einrichten

Zugriff auf den Graylog Server

Nachdem du SELinux und firewalld erfolgreich konfiguriert hast, kannst du nun auf deine Graylog-Serverinstallation zugreifen.

Starte deinen bevorzugten Webbrowser und rufe die IP-Adresse deines AlmaLinux-Servers auf, gefolgt von Port 9000 (d.h.: http://192.168.10.20:9000/). Wenn die Graylog-Installation erfolgreich war, solltest du die Graylog-Anmeldeseite wie die folgende sehen.

Melde dich mit dem Standardbenutzer admin und dem Passwort an, das du erstellt hast (das root_password_sha2 Passwort).

graylog login

Wenn du den richtigen Benutzer und das richtige Passwort hast, wird das Graylog-Administrations-Dashboard in deinem Browser angezeigt.

graylog Dashboard

Ersten Graylog-Eingang erstellen

Nachdem du dich am Graylog-Server angemeldet hast, musst du als Erstes neue Eingänge erstellen, die als Log-Empfänger vom Zielüberwachungssystem verwendet werden. Es gibt zwei Arten von Graylog-Eingängen, Listener-Eingänge und Pull-Eingänge.

Beispiele für Listener-Eingänge sind Syslog TCP/UDP, Beats TCP, GELF TCP, CEF TCP und Netflow TCP. Beispiele für Pull-Inputs sind CEF AMQP und Kafka, Raw/Plaintext AMQP und Kafka sowie Syslog AMQP und Kafka.

Im folgenden Abschnitt wirst du den ersten Graylog-Eingang mit Syslog UDP erstellen.

Klicke auf das Menü System und wähle Inputs.

Eingabe erstellen

Wähle den Input-Typ, den du erstellen möchtest, aus dem Dropdown-Menü und klicke auf Neuen Input starten. In diesem Fall erstellen wir einen Eingang vom Typ Syslog UDP.

Eingaben erstellen

Gib den Namen des Eingangs, die interne IP-Adresse und den Port ein, an dem der neue Eingang ausgeführt werden soll. In diesem Fall erstellen wir einen Syslog UDP-Eingang graylog-alma, der auf der internen IP-Adresse 0.0.0.0 mit Port 5142 läuft.

erste Eingabe erstellen

Als Nächstes scrollst du auf der unteren Seite nach unten und siehst den neuen Eingang graylog-alma mit dem Status running.

Die Eingabe läuft

Gehe zurück zum Terminalserver und führe den Befehl firewall-cmd aus, um den Port 5142 zu öffnen, der vom graylog-alma-Eingang verwendet wird.

sudo firewall-cmd --add-port=5142/udp --permanent
sudo firewall-cmd --reload

Überprüfe die Liste der offenen Ports in der Firewall mit dem folgenden Befehl. Vergewissere dich, dass Port 5142 in der Firewalld verfügbar ist.

sudo firewall-cmd --list-all

Firewalld-Eingaben hinzufügen

Senden des Logs an Graylog über Rsyslog

Nachdem du den Syslog UDP-Eingang auf dem Graylog-Server eingerichtet hast, kannst du nun Logmeldungen an den Graylog-Server senden. Im folgenden Abschnitt wirst du Logs von einem Linux-Rechner über Rsyslog an den Graylog-Server senden.

Erstelle eine neue zusätzliche Rsyslog-Konfiguration /etc/rsyslog.d/graylog.conf mit dem folgenden nano-Editor-Befehl.

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

Füge die folgende Konfiguration ein und achte darauf, dass du die IP-Adresse und den Port mit den Angaben der Eingabe graylog-alma änderst.

*.*@192.168.10.20:5142;RSYSLOG_SyslogProtocol23Format

Speichere und beende die Datei, wenn du fertig bist.

Führe nun den folgenden systemctl-Befehl aus, um den Rsyslog-Dienst neu zu starten und die Änderungen zu übernehmen. Nach dem Neustart von Rsyslog sendet der Zielcomputer Protokolle an den Graylog-Server über das Syslog-Protokoll an den Eingang graylog-alma.

sudo systemctl restart rsyslog

Als Nächstes kehrst du zum Graylog-Administrations-Dashboard zurück und klickst auf das Menü Stream. Wenn deine Installation erfolgreich war, solltest du die Detailprotokolle des Zielrechners auf dem Graylog-Server sehen.

Graylog Strom

Fazit

Herzlichen Glückwunsch, du hast die Installation von Graylog als zentrales Log-Management-System auf deinem AlmaLinux 9 System abgeschlossen! Du hast Graylog mit MongoDB und Opensearch installiert und auch den ersten Graylog-Eingang über Syslog UDP konfiguriert. Jetzt kannst du verschiedene Arten von Graylog-Eingängen ausprobieren oder den Graylog-Einsatz mit mehreren Servern einrichten.

Das könnte dich auch interessieren …