Graylog - Remote Log Server Management eines Proxmox VE Clusters

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

Mithilfe von Graylog lassen sich Protokolle bzw. Logs von Server-Systemen in einem Cluster erstellen. Dieser Artikel zeigt die Installation und Konfiguration eines Graylog Servers auf einem Proxmox VE Host- oder Gast-System.

Diese Logs sind bei der Administration von Server-Systemen von zentraler Bedeutung. Durch Auswertung von Logs wird man über Veränderungen am System informiert und kann so den Ursprung von Problemen besser eingrenzen und eine bessere Verfügbarkeit des Systems gewährleisten. Auch kann nach dem Ausfall eines Servers oder eines Clusters mithilfe von Logs die Fehlerbehebung besser geplant werden.

Voraussetzungen

Vor der Nutzung von Graylog sind folgende Ressourcen notwendig:

  • Eine virtuelle Maschine (VM) oder ein Server mit Debian 11.X/12.X mit IP-Konfiguration des Systems inkl. Route ins Internet
  • Bei der Installation in einer VM auf Proxmox VE muss der CPU-Type auf host gestellt sein, ansonsten wird MongoDB nicht gestartet

Planen Sie außerdem ausreichend Speicherkapazität ein. Die gesammelten Logs verwenden über längere Zeit hinweg einiges an Speicherplatz.

Installation und Konfiguration

Im folgenden werden die Schritte zur Installation und Konfiguration von Graylog in Debain 12 erläutert.

MongoDB Installation

Als Datenbank für die in Graylog gesammelten Logs verwenden wir MongoDB.

Zuerst wird das MongoDB Repository zur Source List hinzugefügt, 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 alle Befehlen ein sudo gesetzt werden.

apt-get install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
   --dearmor
echo "deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

apt-get update
apt-get install -y mongodb-org

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.

apt-get update && sudo apt-get -y install lsb-release ca-certificates curl gnupg2

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

OPENSEARCH_INITIAL_ADMIN_PASSWORD=<custom-admin-password> apt-get -y install opensearch=2.15.0

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 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 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 Paket auf den Server:

wget https://packages.graylog2.org/repo/packages/graylog-6.1-repository_latest.deb
dpkg -i graylog-6.1-repository_latest.deb
apt-get update
apt-get 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. Beispielhaft 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.

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:

Nachdem der Server gestartet wurde, muss nun noch die die richtige URL für die erstmalige Konfiguration von Graylog festgestellt werden.

Dafür müssen die Logs von Graylog aufgerufen werden, diese befinden sich meist unter /var/log/graylog-server/server.log

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 Installation können Sie mithilfe von nano die folgende Datei erstellen und in 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 Sie in der Weboberfläche Ihre gesammelten Logs sehen und haben erfolgreich einen Graylog-Server eingerichtet.

Autor: Harald Peterhansl

Harald Peterhansl ist seit 2022 bei der Thomas-Krenn tätig. Als Mitarbeiter in der Abteilung Hardware Service kümmert er sich um den Aufbau von Teststellungen und dem Testen von verschiedensten Server-Komponenten, und die Reparatur von defekten Kundensystemen.


Autor: Niklas Pauli

Niklas Pauli arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte am Gymnasium Freyung seine Allgemeine Hochschulreife und anschließend seine Ausbildung als Fachinformatiker für Systemintegration bei der Thomas-Krenn.AG. Nach seiner Ausbildung beschäftigt er sich weiterhin mit den Themengebieten Proxmox VE inkl. Ceph, Backup (Proxmox, Veeam, SEP) oder dem Thomas-Krenn-Wiki.

Das könnte Sie auch interessieren

Clamscan Monitoring Plugin
GPU Sensor Monitoring Plugin
IPMI Sensor Monitoring Plugin