Graylog - Remote Log Server Management eines Proxmox VE Clusters

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Dieser Artikel zeigt, wie Sie einen Graylog-Server auf einer Virtuellen Maschine oder einem Server aufsetzen können, um von Ihrem Proxmox VE Cluster Logs zu sammeln. Logs sind von zentraler Bedeutung wenn es um die Administration eines Produktivsystems geht. Die Auswertung dieser Logs erfüllen den Zweck über Veränderungen am System informiert zu werden, den Ursprung eines Problems eingrenzen zu können oder auch um die Verfügbarkeit des Systems gewährleisten zu können. Dies kann vor allem nach einem Ausfall eines Servers oder eines gesamten Clusters nützlich sein, um das weitere Vorgehen / das Troubleshooting sinnvoll zu planen, um schnellstmöglich die Systeme wieder lauffähig zu bekommen.

Aktuell ist es ohne Workaround noch nicht möglich MongoDB auf Debian 12.X zu installieren, deshalb wird bei dieser Anleitung noch auf Debian 11.X zurückgegriffen.

Voraussetzungen

  • Eine VM oder ein Server mit Debian 11.X installiert, IP-Konfiguration des Systems inkl. Route ins Internet
  • Bei einer Installation in einer VM unter Proxmox VE, ist es wichtig zu beachten, dass der CPU-Type auf host gestellt ist, ansonsten wird MongoDB nicht gestartet
  • Ausreichend verfügbare Speicherkapazität, da die gesammelten Logs über längere Zeit hinweg, einiges an Speicherplatz benötigen werden

Installation und Konfiguration

MongoDB Installation

Da Graylog eine Datenbank benötigt, um die gesammelten Logs abzuspeichern, wird bei dieser Anleitung MongoDB verwendet. Dazu muss zuerst das MongoDB Repository zur Source List hinzugefügt werden, um es anschließend installieren zu können. Führen Sie folgende Befehle aus, um die Pakete zu installieren:

Hinweis: Falls Sie nicht als Root-User angemeldet sind, müssen vor allen Befehlen ein sudo gesetzt werden.

apt install wget && gnupg -y
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list

apt update
apt install mongodb-org -y

systemctl daemon-reload
systemctl enable mongod.service
systemctl restart mongod.service
systemctl --type=service --state=active | grep mongod

OpenSearch

Als Nächstes muss das OpenSearch Package heruntergeladen und installiert werden. OpenSearch ist ein Open Source Tool zur Darstellung und Auswertung von Logdateien. Es müssen einige Vorherkehrungen getroffen werden um OpenSearch nutzen zu können:

Hinweis: Ab OpenSearch Version 2.12 muss ein initiales Passwort angegeben werden, ansonsten schlägt die Installation fehl.

wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.12.0/opensearch-2.12.0-linux-x64.deb

env OPENSEARCH_INITIAL_ADMIN_PASSWORD=<custom-admin-password> dpkg -i opensearch-2.12.0-linux-x64.deb

Nach der Installation von OpenSearch wird dieser Prompt angezeigt, obwohl die Installation erfolgreich war:

# NOT starting on installation, please execute the following statements to configure opensearch service to start automatically using systemd

systemctl daemon-reload
systemctl enable opensearch.service

# You can start opensearch service by executing
systemctl start opensearch.service

# Create opensearch demo certificates in /etc/opensearch/ See demo certs creation log in /var/log/opensearch/install_demo_configuration.log

Dieser Prompt sagt aus, dass OpenSearch zuerst aktiviert werden muss, damit es automatisch gestartet wird. Dies kann zum aktuellen Zeitpunkt noch ignoriert werden, da dies später in der Anleitung gemacht wird.

Graylog Konfiguration

Als Nächstes müssen einige Anpassungen bei OpenSearch vorgenommen werden, um später die Anbindung an Graylog zu ermöglichen.

Öffnen Sie die dazu zu Beginn mit nano folgende Datei:

nano /etc/opensearch/opensearch.yml

Folgende Parameter sollten in dieser Datei nun angepasst werden, um ein minimales Setup einzurichten:

cluster.name: graylog node.name: ${HOSTNAME} path.data: /var/lib/opensearch path.logs: /var/log/opensearch network.host: 0.0.0.0 action.auto_create_index: false plugins.security.disabled: true discovery.type: single-node


Nun müssen die Parameter Xms und Xmx angepasst werden. Xmx gibt hierbei maximalen Speicherzuweisungspool für eine Java Virtual Machine (JVM) an, während Xms den anfänglichen Speicherzuweisungspool angibt.

nano /etc/opensearch/jvm.options

Nach der Speicherung dieser Datei, muss ein Parameter für den Virtual Memory gesetzt werden:

sysctl -w vm.max_map_count=262144
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

Anschließend kann, wie bereits vorhin schon gefordert, der Service aktiviert und gestartet werden:

systemctl daemon-reload
systemctl enable opensearch.service
systemctl start opensearch.service

Graylog Installation

Laden Sie für die Installation von Graylog zu Beginn das Packet auf den Server:

wget https://packages.graylog2.org/repo/packages/graylog-5.0-repository_latest.deb
dpkg -i graylog-5.0-repository_latest.deb
apt update
apt install graylog-server

Um auf die Weboberfläche zugreifen und Server anbinden zu können, muss dem Graylog-Server ein Passwort und eine IP-Adresse hinterlegt werden. Beispielshaft wird in dieser Anleitung auf http zurückgegriffen. Wenn diese Parameter nicht gesetzt sind, ist es nicht möglich Graylog zu starten. Erstellen Sie zu Beginn ein password_secret:

< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;

Erstellen Sie zusätzlich ein root_password_sha2:

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

Diese beiden Passwörter beziehungsweise Hashwerte müssen aus der Shell kopiert werden und in folgende Datei eingefügt werden:

nano /etc/graylog/server/server.conf

Anschließend kann der Graylog-Server gestartet werden und Sie können sich mit der IP + Port auf die GUI verbinden.

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

Hinweis: Um den Status der gesamten Dienste zu überprüfen können Sie systemctl status <Service> anwenden Um Inputs zu erstellen, befolgen Sie folgende Anleitung:

Hier wurde für die Bind-Adresse testweise 0.0.0.0 konfiguriert, somit werden Logs von allen, unter Port 8006 erreichbaren, Servern gesammelt.

Proxmox VE Konfiguration

Nun können Sie mit der Einrichtung auf der Seite von Proxmox VE beginnen. Dazu muss das Paket rsyslog nachinstalliert werden, um die Logs an den Graylogserver zu senden:

apt update &&
apt install rsyslog -y

Nach der erfolgreichen Situation können Sie mithilfe von nano die folgende Datei erstellen und die Zeile 2 einfügen. Hierfür muss die IP-Adresse und der Port auf den vorher konfigurierten Socket abgeändert werden.

nano /etc/rsyslog.d/60-graylog.conf
*.*@10.2.1.137:8006;RSYSLOG_SyslogProtocol23Format

Falls der Dienst noch nicht automatisch gestartet worden ist, kann dieser noch manuell gestartet werden:

systemctl start rsyslog.service

Nachdem beide Dienste laufen, können sehen Sie in der Weboberfläche Ihre gesammelten Logs und Sie haben erfolgreich einen Graylog-Server eingerichtet. Somit können Sie mit der Erstellung von Dashboards beginnen.

Foto Niklas Pauli.jpg

Autor: Niklas Pauli

Niklas Pauli arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte am Gymnasium Freyung seine Allgemeine Hochschulreife und ist seit 2021 als Azubi zum Fachinformatiker für Systemintegration bei Thomas-Krenn beschäftigt. Dabei beschäftigt sich Herr Pauli unter anderem mit Proxmox Virtualisierung oder dem Thomas-Krenn-Wiki.

Icon-LinkedIn.png

Das könnte Sie auch interessieren

Clamscan Monitoring Plugin
Dashing-Icinga Dashboard
Monitoring eines Proxmox Clusters mit checkmk