So installierst du Graylog 4 unter Ubuntu 22.04

Graylog ist ein kostenloses und quelloffenes Log-Monitoring-Tool zur Erfassung, Speicherung und Echtzeitanalyse von Terabytes an Maschinendaten. Es wurde für moderne Log-Analysen entwickelt, die es Nutzern ermöglichen, schnell und einfach die Bedeutung von Daten zu erkennen und schneller zu handeln. Es bietet außerdem Warnmeldungen und Suchsysteme für den Logverlauf, die ElasticSearch als Hauptindexdatenbank und MongoDB für die Speicherung von Metainformationen nutzen. Es hilft dir, große Datenmengen in einem einfachen, lesbaren Format zu überwachen, zu durchsuchen und zu analysieren.

In diesem Tutorial zeigen wir dir, wie du Graylog auf einem Ubuntu 22.04 Server installierst.

Voraussetzungen

  • Ein Server mit Ubuntu 22.04 und mindestens 4 GB RAM
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Erste Schritte

Zuerst musst du deine Systempakete auf die neueste Version aktualisieren. Du kannst sie alle mit dem folgenden Befehl aktualisieren:

apt update -y
apt upgrade

Nachdem du alle Pakete aktualisiert hast, musst du auch einige Abhängigkeiten auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:

apt install apt-transport-https gnupg2 uuid-runtime pwgen curl dirmngr -y

Sobald alle erforderlichen Abhängigkeiten installiert sind, kannst du mit dem nächsten Schritt fortfahren.

Java JDK installieren

Graylog erfordert, dass Java auf deinem Server installiert ist. Wenn es nicht installiert ist, kannst du es mit dem folgenden Befehl installieren:

apt install openjdk-11-jre-headless -y

Sobald Java installiert ist, kannst du die installierte Version von Java überprüfen, indem du den folgenden Befehl ausführst:

java -version

Du solltest die folgende Ausgabe erhalten:

openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Elasticsearch installieren und konfigurieren

Graylog verwendet Elasticsearch, um Logs von externen Ressourcen zu speichern. Daher musst du Elasticsearch in deinem System installieren.

Standardmäßig ist das Elasticsearch-Paket nicht im Standard-Repository von Ubuntu verfügbar. Daher musst du das Elasticsearch-Repository zu deinem System hinzufügen.

Lade zunächst den Elasticsearch GPG-Schlüssel herunter und füge ihn mit dem folgenden Befehl hinzu:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Als Nächstes fügst du das Elasticsearch-Repository mit dem folgenden Befehl hinzu:

echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Als Nächstes aktualisierst du das Repository und installierst Elasticsearch mit dem folgenden Befehl:

apt update -y
apt install elasticsearch-oss -y

Nach der Installation von Elasticsearch musst du die Elasticsearch-Konfigurationsdatei bearbeiten und den Clusternamen festlegen. Das kannst du mit dem folgenden Befehl tun:

nano /etc/elasticsearch/elasticsearch.yml

Setze den Clusternamen auf Graylog und füge eine weitere Zeile hinzu, wie unten gezeigt:

cluster.name: graylog
action.auto_create_index: false

Speichere und schließe die Datei, wenn du fertig bist. Starte dann den Elasticsearch-Dienst und aktiviere ihn mit folgendem Befehl, damit er beim Booten startet:

systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch

Du kannst den Status des Elasticsearch-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status elasticsearch

Du solltest die folgende Ausgabe erhalten:

? elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 07:05:27 UTC; 21s ago
       Docs: https://www.elastic.co
   Main PID: 74226 (java)
      Tasks: 48 (limit: 4579)
     Memory: 1.2G
        CPU: 22.739s
     CGroup: /system.slice/elasticsearch.service
             ??74226 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.t>

Sep 25 07:05:11 ubuntu2204 systemd[1]: Starting Elasticsearch...
Sep 25 07:05:27 ubuntu2204 systemd[1]: Started Elasticsearch.

Überprüfe nun die Antwort von Elasticcsearch mit folgendem Befehl:

curl -X GET http://localhost:9200

Du solltest die folgende Ausgabe erhalten:

{
  "name" : "ubuntu2204",
  "cluster_name" : "graylog",
  "cluster_uuid" : "6IWBEBx_THa2Gzqb7a1LTQ",
  "version" : {
    "number" : "7.10.2",
    "build_flavor" : "oss",
    "build_type" : "deb",
    "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
    "build_date" : "2021-01-13T00:42:12.435326Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

MongoDB Server installieren

Graylog verwendet MongoDB als Datenbank. Daher musst du die MongoDB-Datenbank auf deinem Server installieren. Standardmäßig ist das MongoDB-Paket nicht im Standard-Repository von Ubuntu enthalten. Daher musst du das offizielle MongoDB-Repository zu deinem System hinzufügen:

Du kannst es mit dem folgenden Befehl hinzufügen:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Sobald das Repository hinzugefügt ist, aktualisiere den Repository-Cache und installiere Graylog mit folgendem Befehl:

apt update -y
apt install -y mongodb-org

Sobald MongoDB installiert ist, starte den MongoDB-Dienst und aktiviere ihn mit folgendem Befehl, damit er beim Neustart des Systems startet:

systemctl enable --now mongod

Du kannst den MongoDB-Status auch mit dem folgenden Befehl überprüfen:

systemctl status mongod

Du solltest den MongoDB-Status in der folgenden Ausgabe sehen:

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 07:20:35 UTC; 8s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 77018 (mongod)
     Memory: 60.0M
        CPU: 936ms
     CGroup: /system.slice/mongod.service
             ??77018 /usr/bin/mongod --config /etc/mongod.conf

Sep 25 07:20:35 ubuntu2204 systemd[1]: Started MongoDB Database Server.

Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Graylog installieren und konfigurieren

Standardmäßig ist das Graylog-Paket nicht im Ubuntu-Standard-Repository verfügbar. Daher musst du das Graylog-Repository auf deinem Server installieren.

Du kannst das Graylog-Repository-Paket mit dem folgenden Befehl herunterladen:

wget https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.deb

Sobald der Download abgeschlossen ist, installierst du das heruntergeladene Paket mit dem folgenden Befehl:

dpkg -i graylog-4.3-repository_latest.deb

Als Nächstes aktualisierst du das Repository und installierst den Graylog-Server mit dem folgenden Befehl:

apt update -y
apt install graylog-server -y

Nach der Installation des Graylog-Servers musst du ein Geheimnis erzeugen, um die Benutzerpasswörter zu schützen. Du kannst es mit dem folgenden Befehl erzeugen:

pwgen -N 1 -s 96

Du solltest die folgende Ausgabe sehen:

d1fDH1NEOMgb3nxbFYY3eVpqzjOprwgPgFuGh2F0flDdZglJP2CxENV4WEeW8iqZXsjDEZgMob3oBvQYm62RXxoc33hKTPJa

Als Nächstes musst du auch ein sicheres Passwort für den Graylog-Admin-Benutzer erstellen. Du brauchst dieses Passwort, um dich bei der Graylog-Weboberfläche anzumelden. Du kannst es mit dem folgenden Befehl erzeugen:

echo -n "Enter Password: " && head -1

Du solltest die folgende Ausgabe sehen:

Enter Password: yourpassword
e472e1436cbe87774c1bc75d0a646d67e506bea1dff8701fd41f34bca33e1419

Bearbeite nun die Hauptkonfigurationsdatei von Graylog und definiere beide Passwörter:

nano /etc/graylog/server/server.conf

Füge beide Passwörter, die du oben generiert hast, wie unten gezeigt ein:

password_secret = Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
root_password_sha2 = e472e1436cbe87774c1bc75d0a646d67e506bea1dff8701fd41f34bca33e1419   

Als Nächstes musst du auch eine Bindungsadresse für deinen Server definieren, wie unten gezeigt:

http_bind_address = 127.0.0.1:9000

Speichere und schließe die Datei, wenn du fertig bist. Starte dann den Graylog-Dienst und aktiviere ihn mit folgendem Befehl, damit er beim Neustart des Systems startet:

systemctl daemon-reload
systemctl start graylog-server
systemctl enable graylog-server

Als Nächstes kannst du den Status des Graylog-Servers mit dem folgenden Befehl überprüfen:

systemctl status graylog-server

Du solltest die folgende Ausgabe sehen:

? graylog-server.service - Graylog server
     Loaded: loaded (/lib/systemd/system/graylog-server.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 07:25:13 UTC; 10s ago
       Docs: http://docs.graylog.org/
   Main PID: 78082 (graylog-server)
      Tasks: 44 (limit: 4579)
     Memory: 539.4M
        CPU: 18.488s
     CGroup: /system.slice/graylog-server.service
             ??78082 /bin/sh /usr/share/graylog-server/bin/graylog-server
             ??78119 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:-OmitStackTraceInFastThrow -Djdk.tls.acknowledgeC>

Sep 25 07:25:13 ubuntu2204 systemd[1]: Started Graylog server.
Sep 25 07:25:13 ubuntu2204 graylog-server[78119]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 a>
Sep 25 07:25:14 ubuntu2204 graylog-server[78119]: WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performan>
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: An illegal reflective access operation has occurred
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: Illegal reflective access by retrofit2.Platform (file:/usr/share/graylog-server/gr>
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: Please consider reporting this to the maintainers of retrofit2.Platform
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access >
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: All illegal access operations will be denied in a future release

Du kannst das Protokoll des Graylog-Servers auch mit dem folgenden Befehl überprüfen:

tail -f /var/log/graylog-server/server.log

Wenn der Graylog-Server erfolgreich gestartet wurde, solltest du die folgende Ausgabe erhalten:

2022-09-25T07:25:40.117Z INFO  [ServerBootstrap] Services started, startup times in ms: {FailureHandlingService [RUNNING]=73, GeoIpDbFileChangeMonitorService [RUNNING]=88, PrometheusExporter [RUNNING]=88, OutputSetupService [RUNNING]=89, JobSchedulerService [RUNNING]=89, InputSetupService [RUNNING]=90, BufferSynchronizerService [RUNNING]=91, LocalKafkaMessageQueueReader [RUNNING]=92, LocalKafkaMessageQueueWriter [RUNNING]=92, GracefulShutdownService [RUNNING]=93, MongoDBProcessingStatusRecorderService [RUNNING]=93, UserSessionTerminationService [RUNNING]=101, StreamCacheService [RUNNING]=133, LocalKafkaJournal [RUNNING]=134, UrlWhitelistService [RUNNING]=134, ConfigurationEtagService [RUNNING]=137, EtagService [RUNNING]=139, PeriodicalsService [RUNNING]=174, LookupTableService [RUNNING]=203, JerseyService [RUNNING]=4076}
2022-09-25T07:25:40.133Z INFO  [ServerBootstrap] Graylog server up and running.

Zu diesem Zeitpunkt ist der Graylog-Server gestartet und lauscht auf Port 9000. Du kannst dies mit dem folgenden Befehl überprüfen:

ss -antpl | grep 9000

Du solltest die folgende Ausgabe erhalten:

LISTEN            0                 4096                         [::ffff:127.0.0.1]:9000                                    *:*                users:(("java",pid=78119,fd=56))                                                                                                             

Nginx als Reverse Proxy für Graylog konfigurieren

Als Nächstes musst du Nginx als Reverse Proxy installieren und konfigurieren, damit du über Port 80 auf den Graylog-Server zugreifen kannst.

Installiere zunächst den Nginx-Server mit dem folgenden Befehl:

apt install nginx -y

Nach der Installation des Nginx-Servers erstellst du mit dem folgenden Befehl eine neue Konfigurationsdatei für den virtuellen Nginx-Host:

nano /etc/nginx/sites-available/graylog.conf

Füge die folgenden Zeilen hinzu:

server {
    listen 80;
    server_name graylog.example.org;

location /
    {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL http://$server_name/;
      proxy_pass       http://208.117.84.72:9000;
    }

}

Speichere und schließe die Datei, wenn du fertig bist. Überprüfe dann Nginx mit folgendem Befehl auf Syntaxfehler:

nginx -t

Du solltest die folgende Ausgabe erhalten:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Als Nächstes aktivierst du die Konfigurationsdatei für den virtuellen Nginx-Host mit folgendem Befehl:

ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/

Als Nächstes entfernst du die Nginx-Standarddatei für virtuelle Hosts:

rm -rf /etc/nginx/sites-enabled/default

Starte abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Als Nächstes überprüfst du den Status des Graylogs mit dem folgenden Befehl:

systemctl status nginx

Du solltest die folgende Ausgabe erhalten:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 07:30:45 UTC; 8s ago
       Docs: man:nginx(8)
    Process: 78980 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 78981 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 78982 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.3M
        CPU: 49ms
     CGroup: /system.slice/nginx.service
             ??78982 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??78983 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??78984 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Sep 25 07:30:45 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 25 07:30:45 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Zugriff auf die Graylog-Weboberfläche

Öffne nun deinen Webbrowser und gib die URL http://graylog.example.com ein. Du wirst zur Graylog-Anmeldeseite weitergeleitet (siehe unten):

Graylog Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Login. Auf der folgenden Seite solltest du das Graylog Dashboard sehen:

Graylog dashboard

Fazit

Herzlichen Glückwunsch! Du hast den Graylog-Server mit Nginx als Reverse Proxy auf Ubuntu 22.04 erfolgreich installiert und konfiguriert. Jetzt kannst du den Graylog erkunden und einen Eingang erstellen, um Rsyslog-Protokolle von externen Quellen zu empfangen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …