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):
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:
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.