Zentraler Syslog-Server mit Graylog

Einleitung

Zentrale Syslog-Server sollten jedem Admin ein Begriff sein, dennoch nutzen viele keinen dieser Syslog-Server. Das liegt daran, dass diese oft nur über die Konsole erreichbar sind und durch die Rotation der Logfiles wird die Suche meistens etwas aufwändiger.
Genau hier setzt die Software Graylog an. Sie hilft Ihnen dabei Ordnung in die Menge der Logfiles zu bringen und vereinfacht und beschleunigt die Suche nach Einträgen.

Im folgenden Artikel möchte ich Ihnen die Installation und die grundlegende Einrichtung zeigen. Sollten Sie hierbei Fragen haben so kontaktieren Sie uns gerne.

In diesem Artikel gehe ich auf die Installation und die grundlegende Konfiguration ein.

Installation

Voraussetzungen

Für die Installation von Graylog wird installiertes Ubuntu 20.04 benötigt, auf welchem ich Ihnen die Installation zeigen werde.

Im ersten Schritt benötigen Sie einige Pakete, die mit den folgenden Befehlen einfach installiert werden können. Sie können dabei alle einfach Befehle kopieren und direkt ausführen.

Zuerst benötigen Sie ein paar Voraussetzungen, MongoDB als Datenbank sowie Elasticsearch für die Suchfunktion:

sudo apt update && apt -y upgrade
sudo apt -y install apt-transport-https openjdk-17-jre-headless uuid-runtime pwgen
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update
sudo apt -y install mongodb-org
wget -q https://artifacts.elastic.co/GPG-KEY-elasticsearch -O myKey
sudo apt-key add myKey
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
sudo apt update && sudo apt -y install elasticsearch-oss

Damit Elasticsearch funktioniert müssen Sie diesem noch den Namen des Graylog-Clusters mitteilen sowie die Erstellung des Auto-Index deaktivieren, dies wird von Graylog später übernommen.

sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null <<EOT
cluster.name: graylog
action.auto_create_index: false
EOT

Starten Sie nun die Dienste der beiden installierten Pakete:

### Dienst anlegen und starten
sudo systemctl daemon-reload
sudo systemctl enable mongod.service
sudo systemctl restart mongod.service
sudo systemctl --type=service --state=active | grep mongod

### Dienst anlegen und starten
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service
sudo systemctl --type=service --state=active | grep elasticsearch

Wenn alles geklappt hat sollten Sie nun die folgenden 2 Zeilen bei Ihnen auf dem System sehen können:

Wenn sie nicht der Fall ist gab es bei der Installation einen Fehler, dieser kann in den Logfiles der einzelnen Dienste nachgelesen werden.

Graylog

Für die Installation von Graylog sind ein paar mehr Schritte nötig.

Im ersten Schritt generieren Sie am besten direkt die Passwörter, die in den folgenden Schritten benötigt werden. Kopieren Sie diese also am einfachsten in ein Notepad oder dergleichen.

Das Passwort für den System-User erstellen Sie mit folgendem Befehl:

pwgen -N 1 -s 96

Dieses Passwort wird dann noch mit einem SHA-256 Schlüssel versehen. Merken Sie sich diese Passwort. Tragen Sie bei der Eingabeaufforderung einfach ein gewünschtes Passwort ein mit dem Sie sich später auch an der Weboberfläche anmelden wollen.

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

Nun können wir Graylog installieren. Dazu führen Sie bitte die folgenden Befehle aus:

wget https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.deb
sudo dpkg -i graylog-4.3-repository_latest.deb
sudo apt update && sudo apt -y install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins

Nun müssen Sie in der Konfigurationsdatei ein paar Einstellungen vornehmen.
Zuerst öffnen Sie die Datei /etc/graylog/server/server.conf und suchen Sie nach dem String „add_password_secret“.
Tragen Sie nun hier das oben mittels pwgen erstelle Kennwort ein.

Unter dem Punkt „root_password_sha2“ tragen Sie das über „Enter Password“ erstellte Passwort ein. Dieses wird dann später für den Login auf die WebGUI benötigt.

Im nächsten Schritt muss noch die „http_bind_address“ angepasst werden. Entfernen Sie die hier hinterlegte IP 127.0.0.1 und tragen Sie die IP des Servers entsprechend ein.

Ohne diesen beiden Einträge wird Graylog nicht starten.

Die Zeilen sollten nun wie folgt aussehen:

--- /etc/graylog/server/server.conf
[...]
password_secret = BffUvS7mTSTgrQ8oETLDU27cktSz68cPH.....................
[...]
root_password_sha2 = 7e4de05cccb5ae414e985a803a2f41.....................
[...]

http_bind_address = 192.168.x.y:9000
[...]

Speichern Sie nun die Datei ab und schließen Sie sie.

Starten Sie nun die Graylog Dienste:

sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
sudo systemctl --type=service --state=active | grep graylog

Sobald in der Datei /var/log/graylog-server/server.log folgendes steht:
INFO [ServerBootstrap] Graylog server up and running.
läuft der Server und kann nun konfiguriert werden.

Konfiguration

Wenn alles korrekt installiert wurde und Sie die Webseite öffnen, sollten Sie mit dem folgenden Anmeldebildschirm begrüßt werden:

Hier können Sie sich nun mit dem Benutzer „admin“ und dem zuvor eingegebenen Kennwort anmelden.

Die Startseite ist zu Beginn relativ leer, deshalb beginnen wir nun damit diese mit Leben zu füllen.

Dazu erstellen Sie über den Menüpunkt „System / Inputs“ -> „Inputs“ einen neuen Listener, an den dann die Logdaten geschickt werden können.

Über das Dropdownmenü unter „Select input“ wählen Sie nun ganz unten den Punkt „Syslog UDP“ aus und bestätigen Sie die Auswahl mit einem Klick auf den grünen Button „Launch new input“.

Es erscheint nun ein Popup, in dem Sie lediglich 2 Felder ausfüllen müssen.

Unter „Title“ hinterlegen Sie den Namen und unter „Port“ hinterlegen Sie den Netzwerkport, der für den Empfang der Nachrichten geöffnet wird. Auf Grund von Sicherheitsmechanismen unter Linux können Sie hier keinen Port unter 1024 nutzen, deshalb hab ich in diesem Beispiel den Port 51401 gewählt.

Nun sollten Sie das folgende Fenster sehen können:

Anschließend können Sie den Host so konfigurieren, dass dieser seine Logs an den neuen Server sendet. Nach einer Weile erhalten Sie dann folgendes Bild.

Sie haben nun erfolgreich einen Syslog-Server aufgebaut, der per Web erreichbar ist und eine schnelle Volltextsuche durch alle Logfiles beinhaltet.

Zusätzlich lassen sich hier noch weitere Inputs definieren auf anderen Ports, so dass Sie weitere Geräte hierauf loggen lassen können.

Sollten Sie bei der Einrichtung des Servers ebenfalls Unterstützung benötigen, zögern Sie nicht uns zu kontaktieren.

Dadurch haben Sie eine einzige zentrale Instanz, auf der alle Logfiles abgelegt werden.

Sicherheitshalber sollten Sie diesen Server auch sichern, hier können wir Sie gerne mit unserer Lösung ADMIN-BACKUP unterstützen. Kontaktieren Sie uns gerne dazu.

Sascha Jelinek