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