So installierst du das Graylog Centralized Log Management System auf Rocky Linux
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 diesem Lernprogramm wirst du das zentralisierte Log Management mit Graylog auf dem Rocky Linux Server einrichten. Dieses Tutorial beinhaltet die grundlegende Installation einiger Graylog-Abhängigkeiten wie Elasticsearch und MongoDB. Außerdem richtest du den Graylog-Input ein und sendest die Logs vom Linux-Rechner über den Syslog-Ingest an den Graylog-Server.
Voraussetzungen
Für dieses Tutorial benötigst du die folgenden Voraussetzungen:
- Einen Server, auf dem Rocky Linux 8 läuft.
- Einen Nicht-Root-Benutzer mit sudo/Administrator-Rechten.
- Eine laufende und aktivierte Firewalld.
Java OpenJDK installieren
Der Graylog Server ist ein Anwendungsserver, der hauptsächlich in Java geschrieben wurde. Um Graylog zu installieren, musst du das Java OpenJDK auf deinem Rocky Linux System installieren. Zum Zeitpunkt der Erstellung dieses Artikels benötigt der Graylog Server mindestens Java v8 oder höher.
Im Rocky Linux Repository gibt es mehrere Java OpenJDK Versionen, die du installieren kannst. Du kannst alle verfügbaren OpenJDK-Versionen mit dem unten stehenden Befehl überprüfen.
sudo dnf search openjdk
In dieser Demo wirst du das Java OpenJDK v11 für den Graylog Server installieren und verwenden. Führe den folgenden dnf-Befehl aus, um java OpenJDK auf deinem Rocky Linux System zu installieren.
Wenn du aufgefordert wirst, die Installation zu bestätigen, gib„y“ ein und drücke ENTER.
sudo dnf install java-11-openjdk-devel
Wenn die Installation von java OpenJDK abgeschlossen ist, führe den folgenden„java„-Befehl aus, um die Version von Java OpenJDK zu überprüfen und zu bestätigen. Du solltest sehen, dass OpenJDK v11 auf deinem Rocky Linux System installiert ist.
java version
Installation der NoSQL-Datenbank MongoDB
Jetzt installierst du die NoSQL-Datenbank MongoDB als Abhängigkeiten für den Graylog Server. MongoDB wird für die Speicherung der Daten des Graylog Servers verwendet.
Um MongoDB zu installieren, musst du das MongoDB-Repository hinzufügen. Dann kannst du die MongoDB-Pakete installieren.
Führe den folgenden Befehl aus, um das MongoDB-Repository für das Rocky Linux-System hinzuzufügen.
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/8/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc EOF
Führe nun den unten stehenden dnf-Befehl aus, um die Liste der verfügbaren Repositorys auf deinem System zu prüfen und zu verifizieren. Du solltest sehen, dass das Repository„mongodb“ hinzugefügt wurde.
sudo dnf repolist
Als nächstes installierst du das MongoDB-Paket mit dem folgenden dnf-Befehl. Wenn du aufgefordert wirst, die Installation zu bestätigen, gib„y“ ein und drücke ENTER, um fortzufahren.
sudo dnf install mongodb-org
Außerdem wirst du aufgefordert, den GPG-Schlüssel des MongoDB-Repositorys zu bestätigen. Gib„y“ ein, um den MongoDB-GPG-Schlüssel zu bestätigen und hinzuzufügen.
Wenn die MongoDB-Installation abgeschlossen ist, führe den folgenden Befehl aus, um den systemd manager neu zu laden und die neue MongoDB-Dienstdatei anzuwenden.
sudo systemctl daemon-reload
Starte nun den MongoDB-Dienst mit dem Namen„mongod“ mit dem folgenden Systembefehl. Aktiviere dann den Dienst„mongod„, damit er beim Systemstart automatisch gestartet wird.
sudo systemctl enable mongod sudo systemctl start mongod
Führe abschließend den folgenden systemctl-Befehl aus, um den„mongod„-Dienst zu überprüfen. Du solltest sehen, dass der MongoDB-Dienst„mongod“ läuft und beim Systemstart aktiviert ist.
sudo systemctl status mongod
Installation von Elasticsearch
Elasticsearch ist die Suchmaschine für den Graylog Server Log Management Stack. Zum Zeitpunkt der Erstellung dieses Artikels musst du Elasticsearch v7.x installieren.
Die aktuelle Version von Graylog Server läuft nur mit Elasticsearch v7.x. Wenn du die neueste Elasticsearch wie v8.x oder v9.x installierst, bekommst du einen Fehler.
Führe nun den folgenden Befehl aus, um das Elasticsearch v7.x Repository für das Rocky Linux System einzurichten.
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
Führe den folgenden Befehl aus, um die Liste der Repositories auf deinem System zu prüfen und zu verifizieren. Du wirst sehen, dass das Elasticsearch v7.x Repository hinzugefügt wurde.
sudo dnf repolist
Als Nächstes installierst du das Elasticsearch-Paket mit dem unten stehenden dnf-Befehl. Wenn du aufgefordert wirst, die Installation zu bestätigen, gibst du zur Bestätigung„y“ ein und drückst ENTER.
sudo dnf install elasticsearch
Außerdem wirst du aufgefordert, den GPG-Schlüssel zum Elasticsearch-Repository hinzuzufügen. Gib„y“ ein, um den GPG-Schlüssel hinzuzufügen. Die Installation ist damit abgeschlossen.
Als Nächstes musst du den Elasticsearch-Server für die Basisinstallation einrichten, die von Graylog Server verwendet wird.
Bearbeite die Standard-Elasticsearch-Konfigurationsdatei„/etc/elasticsearch/elasticsearch.yml“ mit dem folgenden Befehl.
sudo nano /etc/elasticsearch/elasticsearch.yml
Füge die folgende grundlegende Elasticsearch-Konfiguration hinzu und entkommentiere sie.
cluster.name: graylog-rocky8 action.auto_create_index: false
Speichere und schließe die Datei, wenn du fertig bist.
Außerdem kannst du die maximale Speicherzuweisung für den Elasticsearch-Server festlegen, indem du die Datei„/etc/elasticsearch/jvm.options“ mit dem unten stehenden Befehl bearbeitest.
sudo nano /etc/elasticsearch/jvm.options
Entkommentiere und ändere die Standardkonfiguration wie unten angegeben. Du kannst die maximale Speicherzuweisung hier mit dem maximalen Speicher deines Servers abgleichen.
-Xms1g -Xmx1g
Speichere und schließe die Datei, wenn du fertig bist.
Führe nun den folgenden systemctl-Befehl aus, um den systemd-Manager neu zu laden und eine neue Servicedatei für den Elasticsearch-Server anzuwenden.
sudo systemctl daemon-reload
Starte und aktiviere den Elasticsearch-Server mit dem unten stehenden Befehl. Der Elasticsearch-Dienst wird beim Systemstart automatisch gestartet und der aktuelle Status von Elasticsearch sollte jetzt „running“ lauten.
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch
Führe abschließend den folgenden Befehl aus, um den Elasticsearch-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft. Du solltest die Ausgabe sehen, dass der Elasticsearch-Dienst läuft und aktiviert ist.
sudo systemctl status ealsticsearch
Außerdem kannst du mit dem folgenden curl-Befehl auf deinen Elasticsearch-Server zugreifen. Du solltest die Ausgabe der grundlegenden Informationen über deinen Elasticsearch-Server erhalten, einschließlich des Clusternamens, der Cluster-UUID, der Elasticsearch-Version und der Lucene-Version (der Kern von Elasticsearch).
curl localhost:9200
Installation von Graylog Server
Nachdem du das Java OpenJDK, MongoDB und Elasticsearch installiert hast, musst du nun den Graylog Server installieren. Zuvor musst du das Graylog Repository auf dem Rocky Linux Server einrichten. Dann kannst du mit der Konfiguration des Graylog Servers beginnen. Dazu gehört die Konfiguration der Passwortauthentifizierung für Graylog und die Einrichtung der http_bind_address, die vom Graylog Server verwendet wird.
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version von Graylog Server v4.3. Führe den folgenden Befehl aus, um das Graylog-Repository zu deinem Server hinzuzufügen.
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.rpm
Überprüfe die Liste der Repositories für Graylog Server mit dem folgenden Befehl. Du solltest sehen, dass das Graylog Server Repository hinzugefügt wurde.
sudo dnf repolist
Als Nächstes führst du den folgenden dnf-Befehl aus, um das Graylog Server-Paket zu installieren. Wenn du aufgefordert wirst, die Installation zu bestätigen, gibst du zur Bestätigung„y“ ein und drückst ENTER.
sudo dnf install graylog-server graylog-integrations-plugins
Außerdem wirst du aufgefordert, den GPG-Schlüssel zum Graylog Server-Repository hinzuzufügen. Gib„y“ ein, um den GPG-Schlüssel zu deinem System hinzuzufügen, und drücke ENTER. Die Installation von Graylog Server ist damit abgeschlossen.
Jetzt richtest du den grundlegenden Graylog Server ein. Zuvor führst du den folgenden dnf-Befehl aus, um das Paket„pwgen“ zu installieren. Gib„y“ ein, wenn du aufgefordert wirst, die Installation zu bestätigen und drücke ENTER.
Das pwgen-Paket bietet ein Kommandozeilen-Tool zum Erzeugen von Geheimnissen und Passwörtern, die für die Einrichtung des Graylog-Servers verwendet werden.
sudo dnf install pwgen
Als Nächstes führst du den folgenden pwgen-Befehl aus, um das„password_secret“ für den Graylog Server zu erzeugen. Kopiere das erzeugte Geheimnis unbedingt in deine Notiz.
sudo pwgen -N 1 -s 96
Führe nun den folgenden Befehl aus, um das sha256-Hash-Passwort„root_password_sha2“ für den Graylog Server zu generieren. Dieses Passwort wird verwendet, um sich am Dashboard des Graylog Servers anzumelden. Achte darauf, dass du ein sicheres Passwort verwendest und kopiere das generierte sha256 Hash-Passwort in deine Notiz.
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Als Nächstes bearbeitest du die Graylog Server-Konfigurationsdatei „/etc/graylog/server/server.conf“ mit dem folgenden Befehl.
sudo nano /etc/graylog/server/server.conf
Ändere den Wert der Optionen„password_secret“ und„root_password_sha2“ mit deinem generierten Passwort. Außerdem kannst du den Standardbenutzernamen für die Anmeldung am Graylog Server in der Option„graylog_username“ ändern.
password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111
Ändere nun die Option „http_bind_address“ mit der internen IP-Adresse deines Servers. Außerdem ist der Standardport für den Graylog Server TCP ‚9000‘.
http_bind_address = 0.0.0.0:9000
Speichere und schließe die Datei, wenn du fertig bist.
Führe nun den folgenden systemctl-Befehl aus, um den systemd-Manager neu zu laden und die Graylog Server-Dienstdatei anzuwenden.
sudo systemctl daemon-reload
Starte und aktiviere den Dienst„graylog-server“ mit dem folgenden systemctl-Befehl. Der Graylog Server sollte nun laufen und aktiviert sein. Er wird beim Systemstart automatisch gestartet.
sudo systemctl enable graylog-server sudo systemctl start graylog-server
Überprüfe und verifiziere den„graylog-server„-Dienst mit dem folgenden Befehl. Du solltest die Ausgabe sehen, dass der Graylog Server läuft, aktiviert ist und beim Systemstart automatisch gestartet wird.
sudo systemctl status graylog-server
Zuletzt musst du den Port„9000„, der vom Graylog Server verwendet wird, zur Firewalld hinzufügen.
Führe den folgenden Befehl firewall-cmd aus, um den Port„9000“ zur Firewalld hinzuzufügen. Lade dann die Firewall-Regeln neu, um die neuen Änderungen zu übernehmen.
sudo firewall-cmd --add-port=9000/tcp --permanent sudo firewall-cmd --reload
SELinux einrichten
Wenn du den Graylog Server mit aktiviertem SELinux im „erzwingenden“ Modus betreibst, musst du die SELinux-Regeln für den Graylog Server einrichten.
Bevor du SELinux verwaltest, führe den unten stehenden dnf-Befehl aus, um das Kommandozeilentool zur Verwaltung von SELinux zu installieren. Wenn du aufgefordert wirst, die Installation zu bestätigen, gib„y“ ein und drücke ENTER.
sudo dnf install policycoreutils policycoreutils-python-utils
Als Nächstes führst du den folgenden Befehl aus, um die SELinux-Regeln für den Graylog Server, Elasticsearch und MongoDB hinzuzufügen.
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
Jetzt kannst du auf deinen Graylog Server zugreifen.
Neuen Graylog-Eingang erstellen
Um Logs von deinen Anwendungen oder Clients empfangen zu können, musst du einen Eingang auf deinem Graylog Server einrichten. Es gibt mehrere Arten von Graylog-Eingängen, die du verwenden kannst; Einzelheiten findest du in der Graylog-Dokumentation. Der Graylog-Eingang läuft über das TCP/UDP-Protokoll und kann Logs in verschiedenen Formaten empfangen, z. B. Syslog, GELF, CEF oder RAW. Außerdem kannst du Logs auch über das TCP/HTTPS-Protokoll empfangen.
In dieser Demo erstellst du einen Graylog-Eingang, der dazu dient, Logs von einem Linux-Computer-Client zu empfangen. Dieser Eingang verwendet „Syslog UDP“ und empfängt die Logmeldungen vom Client-Rechner über das UDP-Protokoll.
Öffne deinen Webbrowser und rufe die IP-Adresse des Servers auf, gefolgt von dem Graylog-Server-Port „9000“ (d.h. http://192.168.5.100:9000/). Du wirst die Anmeldeseite deiner Graylog Server-Installation sehen.
Um dich im Graylog Server Dashboard anzumelden, gibst du deinen Benutzernamen und dein Passwort ein. Klicke dann auf„Anmelden„.
Nun solltest du das neue Fenster des Graylog Server Administrations-Dashboards sehen.
Um einen neuen Graylog Input zu erstellen, klicke auf das Menü„System“ und wähle„Inputs„.
Wähle den Typ des Inputs und klicke auf„Neuen Input starten„. In diesem Beispiel wirst du einen neuen Input-Typ„Syslog UDP“ erstellen. Alle Linux-Client-Rechner werden Protokolle über das Syslog UDP-Protokoll an diesen Eingang senden.
Gib nun die Details deines neuen Eingangs wie folgt ein:
- Titel: Wir werden den Titel„syslog-udp-input“ verwenden.
- Bindungsadresse: Gib die interne IP-Adresse deines Graylog-Servers ein, oder du kannst„0.0.0.0“ verwenden, wenn du dich im internen Netzwerk befindest.
- Port: In diesem Beispiel verwenden wir den UDP-Port„5142“ für diese Eingabe.
Klicke jetzt auf„Speichern„, um den Eingang hinzuzufügen.
Jetzt solltest du den Status deines Graylog-Eingangs mit dem Status„läuft“ sehen. Und ganz unten solltest du Detailinformationen zu deinem Graylog-Eingang sehen.
Gehe schließlich zurück zu deinem Graylog-Server und führe den folgenden Firewall-Befehl aus, um den UDP-Port„5142“ hinzuzufügen, der vom„syslog-udp-input“ verwendet wird.
sudo firewall-cmd --add-port=5142/udp --permanent sudo firewall-cmd --reload
Log über Ingest Syslog an den Graylog Server senden
Du hast den Graylog Syslog UDP Input auf dem Graylog Server erstellt. Jetzt richtest du einen Linux-Rechner so ein, dass er Rsyslog verwendet, um Logs an den Graylog Server zu senden. In diesem Beispiel verwenden wir den Rocky-Linux-Clinet-Rechner mit dem Hostnamen„linux-host1“ und der IP-Adresse des Graylog-Servers„192.168.5.100„.
Verbinde dich mit deinem Linux-Client-Rechner und führe den folgenden Befehl aus, um den „rsyslog“-Dienst auf deinem Linux-Rechner zu überprüfen. Du solltest die Ausgabe erhalten, dass der „rsyslog“-Dienst läuft.
sudo systemctl status rsyslog
Als Nächstes erstellst du eine neue zusätzliche rsyslog-Konfigurationsdatei, mit der du die Logs an den Graylog-Server sendest. Führe den folgenden Befehl aus, um eine neue Datei„/etc/rsyslog.d/graylog.conf“ zu erstellen.
sudo nano /etc/rsyslog.d/graylog.conf
Füge die folgende Konfiguration in die Datei ein. Mit dieser Konfiguration sendet der rsyslog-Dienst auf dem‚linux-host1‚ Protokolle an den Graylog Server Input, der auf der Server-IP-Adresse‚192.168.5.100‚ mit dem UDP-Port‚5142‚ läuft.
*.*@192.168.5.100:5142;RSYSLOG_SyslogProtocol23Format
Speichere und schließe die Datei, wenn du fertig bist.
Führe nun den folgenden systemctl-Befehl aus, um den Dienst„rsyslog“ neu zu starten und die neuen Änderungen in der Konfigurationsdatei zu übernehmen. Der rsyslog-Dienst sendet nun Systemprotokolle an den Graylog-Server. Du kannst einige Minuten warten.
sudo systemctl restart rsyslog
Als Nächstes kehrst du zum Graylog Server Administrations-Dashboard zurück. Klicke dann auf das Menü„Suchen„. Jetzt solltest du die Logs vom Rechner„linux-host1“ sehen und sie sind auf dem Graylog Server verfügbar.
Fazit
In diesem Lernprogramm hast du gelernt, wie du den Graylog Server auf dem Rocky Linux Server installierst. Dazu gehört auch die Installation von einigen Abhängigkeiten wie Java OpenJDK, Elasticsearch und MongoDB. Außerdem hast du den Graylog Server auf Rocky Linux mit aktiviertem SELinux mit erzwingendem Modus und aktivierter Firewalld konfiguriert.
Am Ende hast du gelernt, wie du den Graylog Input mit dem Typ „Syslog UDP“ einrichtest, der als zentrales Log-Management-System für Linux-Rechner verwendet werden kann. Außerdem hast du gelernt, wie du Protokolle von den Linux-Rechnern über den Rsyslog-Dienst an den Graylog-Server senden kannst. Du hast nun auch weitere Eingänge für deine Anwendungen eingerichtet oder neue Linux-Maschinen zum Graylog Server hinzugefügt.