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
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
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
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.
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
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
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.
Überprüfen des Status des Opensearch-Dienstes.
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.
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:
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
Gib erneut y ein, um den GPG-Schlüssel des Graylog-Repositorys hinzuzufügen.
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.
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
Ü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
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
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
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
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).
Wenn du den richtigen Benutzer und das richtige Passwort hast, wird das Graylog-Administrations-Dashboard in deinem Browser angezeigt.
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.
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.
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.
Als Nächstes scrollst du auf der unteren Seite nach unten und siehst den neuen Eingang graylog-alma mit dem Status running.
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
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.
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.