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

check java

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

Mongodb Repo hinzufügen

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

mongodb installieren

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.

gpg-Schlüssel hinzufü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

Mongodb-Dienst prüfen

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

elasticsearch repository hinzufügen

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

elasticsearch installieren

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.

gpg-Schlüssel hinzufügen

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

elasticsearch konfigurieren

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

elasticsearch prüfen

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

elasticsearch testen

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

graylog repo hinzufügen

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

graylog installieren

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.

gpg-Schlüssel hinzufügen

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

pwgen installieren

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

Passwort generieren geheim

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.

graylog konfigurieren

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

start graylog

Ü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

SEL:inux-Verwaltungstools installieren

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„.

graylog login

Nun solltest du das neue Fenster des Graylog Server Administrations-Dashboards sehen.

graylog Dashboard

Um einen neuen Graylog Input zu erstellen, klicke auf das Menü„System“ und wähle„Inputs„.

Eingabe erstellen

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.

syslog udp input erstellen

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.

syslog udp Eingangskonfigurationen

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.

graylog input udp läuft

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

rsyslog prüfen

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.

Zentrales Log mit Graylog-Server

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.

Das könnte dich auch interessieren …