Graylog Howto Teil 1: Installation von Graylog unter Debian 12 “Bookworm”

Ich habe in den letzten Wochen mehrfach für Kunden die Installation von Graylog durchgeführt, daher habe ich mir gedacht, ich veröffentliche die Installationsanleitung und die Schritte mal auf meinem Blog.

Übersicht und Anmerkungen

Graylog ist eine Software, die in der Lage ist, Logfiles von vielen unterschiedlichen Systemen einzusammeln und zu verarbeiten. Es gibt sie in unterschiedlichen Versionen, die sich im Funktionsumfang und im Preis unterscheiden. Die Variante, die ich hier in der Anleitung installiere, ist die freie und kostenlose Version. Damit kann man schon recht viel erreichen.

Mit Graylog kann ich Logfiles in vielen Varianten und von vielen unterschiedlichen Geräten sammeln, in einer Datenbank speichern und dann auswerten. Das bringt unter anderem den Vorteil, dass ich deutlich länger in die Vergangenheit schauen kann, weil der Speicherplatz für die Logfiles auf den Systemen selbst meist limitiert ist. Wenn ich spezielle Vorfälle vermeiden möchte, oder eine aktive Warnung bekommen möchte, ist dies ebenfalls möglich. Dies könnte z.B. eine Warnung sein, wenn sich jemand versucht mit einem Admin-Account in meiner Domäne anzumelden, wenn ein neuer Administrator erstellt wird oder wenn es mehr als fünf fehlgeschlagene Anmeldungen per SSH auf meinem Linux-System gibt. Tritt dieser Fall auf, kann ich über unterschiedliche Arten und Wege benachrichtigt werden. Das könnte klassisch eine Email sein, ich könnte mich aber auch per Slack oder Teams benachrichtigen lassen. Weiterhin lassen sich Dashboards erzeugen, die z.B. auf einem Monitor in meiner IT-Abteilung den Stand der letzten 24 Stunden zeigen. Der Fantasie sind hierbei keinerlei Grenzen gesetzt.

Graylog und Debian 12 ist zum Zeitpunkt der Erstellung von diesem Artikel (11. März 2024) möglich, einige Anleitungen zeigen allerdings Debian 11 oder 10. Da ich aber einen möglichst langen Wartungszeitraum haben möchte, bevorzuge ich die Version 12. Wir sind aktuell bei Version 12.5.0.

Die Installation von Debian

Die Installation der Basis ist recht einfach, es gibt keine großen Anforderungen oder Besonderheiten. Wichtig ist, dass System entsprechend den Anforderungen zu gestalten und insbesondere bei der Größe der Festplatte(n) eine gute Auswahl zu treffen. In meinem Fall installiere ich das System als ein Standalone Server mit einer 1 TB großen (virtuellen) Festplatte, theoretisch wäre auch die Nutzung von mehreren Systemen im Cluster-Verbund möglich, das würde aber hier den Rahmen vollständig sprengen.

Der Download der aktuellen ISO-Datei ist wie immer unter https://www.debian.org/download möglich. Bei der Installation nutze ich Hyper-V als Basis, hier muss darauf geachtet werden, dass bei der Generation 2 der VM die Secure Boot-Einstellungen so umgestellt werden, dass Debian starten darf.

Der Rest der Installation ist recht selbsterklärend. Ich bevorzuge die Systeme in Englisch, und installiere grundsätzlich bei einem Server keinen Desktop, sondern ausschließlich die System-Tools und SSH für eine Administration aus der Ferne.

Nach der Grundinstallation melden wir uns an dem System an, die eigentliche Installation kann starten.

Kleiner Tipp vorweg: Ein Snapshot an dieser Stelle kann eine Neuinstallation ersparen, sollte es mal nicht so klappen wie gewünscht. Kostet nix, geht schnell, und spart im besten Fall einige Minuten Arbeit.

Vorbereitungen

Wir benötigen während der Installation ein paar Pakete, die wir als erstes installieren

apt install -y apt-transport-https uuid-runtime pwgen gnupg curl

Die Installation von Elasticsearch

Wir beginnen nun mit der Installation von Elasticsearch. Dies ist eine Komponente, mit der wir, wie der Name schon sagt, in unseren Daten suchen können. Graylog arbeitet alternativ auch mit OpenSearch zusammen, ich habe die Installationen aber jeweils mit Elasticsearch gemacht und bisher keine Nachteile oder Probleme feststellen können. Wichtig ist, dass wir die Version 7 installieren, die auch schon verfügbare Version 8 hat in meinen Tests nicht funktioniert.

Als erstes müssen wir den Schlüssel für das Repository hinzufügen und die Paketquellen aktualisieren, damit wir eine Installation vornehmen können.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list

apt update && apt install -y elasticsearch=7.10.2

Nachdem die Installation abgeschlossen ist, fügen wir noch ein paar Zeilen Code in die Konfigurationsdatei ein. Dies ist wichtig, damit ein existierenden Pfad für die Logfiles genutzt wird.

echo "cluster.name: graylog
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch" | tee /etc/elasticsearch/elasticsearch.yml

Jetzt können wir den Dienst auf Autostart setzen, starten, und danach den Zustand überprüfen. Hier sollte es keine Probleme oder Fehler geben.

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

Die Installation von MongoDB

Im nächsten Schritt installieren wir die Datenbank, in die unsere Daten gespeichert werden. Sofern man sich bei der Installation nicht allzu sicher ist, wäre es jetzt nochmal ein guter Zeitpunkt, einen Snapshot der VM zu erzeugen 🙂

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-7.gpg

echo "deb http://repo.mongodb.org/apt/debian $(lsb_release -cs)/mongodb-org/7.0 main" | tee /etc/apt/sources.list.d/mongodb-org.list

apt update && apt install -y mongodb-org mongodb-org-database mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools

Nach der Installation können wir hier ebenfalls den Dienst auf Autostart setzen, und die Datenbank starten.

systemctl daemon-reload
systemctl enable mongod
systemctl restart mongod

Nun erstellen wir eine neue Datenbank sowie einen Datenbank-Administrator. Hierfür benötigen wir ein komplexes, einmaliges Kennwort. Gute Kennwörter lassen sich z.B. mit diesem Kennwort-Generator erzeugen: https://www.faq-o-matic.net/richtigpferd/

mongosh

Hiermit wechseln wir in die Shell der Datenbank, und können ab hier die folgenden Befehle absetzen:

use graylog
db.createUser(
{
user: "graylog",
pwd: "Behaglich-Microsofts-Autoritaet-Ueberblick-3",
roles: [ "readWrite", "dbAdmin" ]
}
)
quit

Damit haben wir nun die Installation der Datenbank abgeschlossen. Nun beginnt der letzte Schritt der Installation, die eigentliche Installation von Graylog selbst.

Die Installation von Graylog

Die Installation selbst ist recht einfach, wir brauchen nur die Paketquelle und die Installation des Pakets. Ich nutze in meinem Fall die Version 5.1, mit der Nachfolge-Version 5.2 gibt es scheinbar noch ein Problem, die Anmeldung an der Webkonsole nach der Installation klappt nicht. Version 5.1 läuft sauber und macht das, was es soll.

wget https://packages.graylog2.org/repo/packages/graylog-5.1-repository_latest.deb

dpkg -i graylog-5.1-repository_latest.deb

apt update && apt install graylog-server

Nach der Installation benötigen wir nun zwei Kennwörter. Einmal den Zugang für den Admin-Account für Graylog, und einmal ein starkes Kennwort für die Konfiguration zur Absicherung der Kennwörter. Beginnen wir mit dem Admin-Account.

Der admin-Account

Um das Kennwort für den admin-Account zu setzen, müssen wir das Kennwort in Hash-Form in die Graylog-Konfiguration eintragen. Um das korrekt Format zu haben, kann der folgende Befehl genutzt werden:

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

Dieser Befehl fragt das admin-Kennwort ab und gibt es danach in der korrekten Form wieder aus. Unbedingt beide Werte sicher ablegen und speichern!

Secure Passwort

Das zweite Kennwort muss eine gewisse Länge haben, damit es sicher ist. Wir können uns auf der Konsole einfach ein Kennwort ausgeben lassen:

pwgen -N 1 -s 96

Auch das Kennwort bitte sicher speichern und aufbewahren. Sollten wir mal mehr als einen Graylog Server betreiben, muss dieser Wert auf allen Systemen identisch sein.

Die Anpassung der Graylog-Konfiguration

Nachdem wir die Kennwörter generiert haben, können wir die Konfiguration von Graylog anpassen.

nano /etc/graylog/server/server.conf

In dieser Datei passen wir ein paar Werte und Optionen an (bitte hier eure Werte eintragen, nicht meine!):

# Passwort_Secret anpassen
password_secret = 6R6DgRZa1d9Glc3pPDd0zkcLDyVe3cygudcZmpioUlBbHQWFoJFzt3YQnASGDYwLG0MbFGZpHgJkZq7liF6Pyjn5cNCKP5cG

# Admin-Kennwort in Hash-Form
root_password_sha2 = dc419a87f5431cc7a8f23a9eaeb643bee1cd8b09d4657cdcddf124d5b8dbe01b

# Email-Adresse des Admins
root_email = "jan@zueschen.eu"

# Eure Zeitzone, damit Logdateien in der korrekten Zeit dargestellt werden. Wichtig!
root_timezone = Europe/Berlin

# Die Bindung, worauf der Dienst im Netzwerk hört
http_bind_address = 0.0.0.0:9000

Nachdem die Konfiguration angepasst wurde, können wir den Dienst auf Autostart setzen, und danach starten.

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

Der erste Start

Nachdem die Installation abgeschlossen ist, können wir in einen Webbrowser wechseln und die IP-Adresse des Graylog-Servers auf Port 9000 aufrufen. Hat alles geklappt, erwartet uns die folgende Seite:

Hier können wir uns nun mit “admin” (Groß-Klein-Schreibung beachten!) und dem Kennwort, was wir gewählt haben, anmelden.

Fazit

Die Installation von Graylog ist schnell gemacht, wenn die Pakete und Versionen zueinander passen. Nach der eigentlichen Installation beginnt die Einrichtung und das erste Logging sowie eine erste Auswertung der gesammelten Logdateien. Teil 1 der kleinen Reihe ist hiermit beendet, in Teil 2 geht es weiter mit den ersten Einstellungen und Anpassungen.


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

4 Kommentare:

  1. Cool, danke. Freue mich auf den zweiten Beitrag. Nutzt du Graylog Open oder welche Lizenz? Mich interessiert vor allem die Anbindung von DCs und die Filterung das nur bestimmte, z.B. Fehlgeschlagene Anmeldungen ins Graylog geschickt werden.

    • Hi Chris,
      ich nutze die freie Variante aktuell, ich habe (noch) keinen Bedarf an einer Lizenz für die Zwecke, die ich brauche.
      Die Anbindung von DCs kommt auf jeden Fall noch, bei den Anmeldungen (insbesondere die fehlgeschlagenen) ist es eher so, dass man alles reinpumpt, und dann eine Filterung bzw. eine Alarmierung auf gewünschte Events macht.
      Schönen Gruß
      Jan

  2. Gibt es bei der freien Variante keine GB pro Tag Beschränkung?
    Ich pushe momentan Logs unserer PaloAlto Firewalls in Graylog. Mich würde interessieren, ob ich aus der Message IP Adressen filtern und diese in eine TXT exportieren kann.

  3. Was mit noch aufgefallen ist, dass du Elasticsearch nutzt, es wird aber Opensearch empfohlen.

    Graylog 5.0 adds support for OpenSearch 2.x versions. At this time the latest released version is OpenSearch 2.4. We have removed support for Elasticsearch 6.8, which reached its end-of-life date in February 2022. Support for Elasticsearch 7.10 remains in Graylog 5.0, but we recommend users upgrade to OpenSearch.

    https://go2docs.graylog.org/5-0/planning_your_deployment/upgrading_to_opensearch.htm

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert