Graylog: Eingabetypen auswählen
Wie Sie den richtigen Graylog-Eingabetyp auswählen
👋 Willkommen bei der Stackhero-Dokumentation!
Stackhero bietet eine einsatzbereite Graylog Cloud-Lösung, die zahlreiche Vorteile bietet, darunter:
- Unbegrenzter und dedizierter SMTP-E-Mail-Server inklusive.
- Mühelose Updates mit nur einem Klick.
- Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://logs.ihre-firma.com).
- Optimale Performance und robuste Sicherheit durch eine private und dedizierte VM.
Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Graylog Cloud Hosting-Lösung von Stackhero auszuprobieren!
Graylog bietet verschiedene Eingabetypen an. Diese Eingaben ermöglichen es Ihnen, Logs an den Graylog-Server zu senden oder Graylog zu erlauben, Logs von einer anderen Quelle abzurufen.
In nahezu allen Fällen möchten Sie Daten von einer Anwendung oder einem Gerät an den Graylog-Server senden. Wir behandeln hier nicht die fortgeschrittenen Anwendungsfälle, in denen Graylog Logs von externen Quellen abholen soll. Falls Sie dies dennoch tun möchten, können Sie sicher sein, dass dies sehr unkompliziert einzurichten ist.
Um den besten Eingabetyp auszuwählen, müssen Sie zunächst das Log-Format bestimmen, das Sie an Graylog senden möchten. Wir empfehlen die Verwendung des GELF-Formats, wie unten beschrieben.
Anschließend müssen Sie das Protokoll auswählen: UDP oder TCP.
Auswahl des Eingabeformats
Die erste Entscheidung betrifft das Format Ihrer Log-Nachrichten. Es gibt drei Hauptoptionen: RAW/Plaintext, Syslog oder GELF.
RAW/Plaintext-Format
Dies ist das einfachste Format. Es funktioniert mit jedem System, da es eine vollständige Klartext-Nachricht sendet. Es ist sehr leicht zu verwenden und eignet sich perfekt für erste Tests, wie zum Beispiel das Senden einer Nachricht mit dem Tool netcat.
Zum Testen können Sie eine "Raw/Plaintext UDP"-Eingabe erstellen und dann einen Test-Log mit einem der folgenden Befehle senden:
- Unter macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Unter Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
Sehr einfach, oder? Da es sich jedoch um ein grundlegendes Format handelt, stoßen Sie schnell an Grenzen. Daher raten wir davon ab, es über einfache Tests hinaus zu verwenden.
Syslog-Format
Dies ist ein bekanntes Format, das weit verbreitet zum Speichern und Übertragen von Logs in Serverumgebungen genutzt wird. Es ist unter Linux, Windows, *BSD und anderen Betriebssystemen verfügbar.
Wenn Sie Syslog, Rsyslog oder einen anderen kompatiblen Dienst verwenden und Logs von einem Server an Graylog senden möchten, ist die syslog-Eingabe die einfachste Option.
Da GELF jedoch leistungsfähiger ist, empfehlen wir, sofern möglich, Nachrichten im GELF-Format zu senden, wie im Folgenden erläutert.
Beachten Sie, dass das Syslog-Format auf 1024 Zeichen begrenzt ist.
GELF-Format (empfohlen)
GELF steht für "Graylog Extended Log Format". Dieses Format wurde von Graylog entwickelt und ist mittlerweile in vielen Produkten weit verbreitet und als Standard etabliert.
Das GELF-Format ist leistungsstark, da es Logs strukturiert überträgt. Strukturiertes Logging ermöglicht es, mehrere Felder und Werte zu senden, anstatt nur eine unstrukturierte Textnachricht. Dadurch kann Graylog die Informationen leichter parsen und auswerten.
Wenn Sie beispielsweise ein Log mit einer IP-Adresse und einem Request-Typ senden möchten, können Sie eine Nachricht mit zwei Feldern namens ip und request_type übermitteln. In Graylog können Sie dann gezielt nach diesen Feldern suchen, etwa mit der Abfrage: request_type: POST.
GELF basiert auf JSON und muss mindestens die Felder version, host und short_message enthalten. Sie können beliebig viele weitere Felder hinzufügen, diese müssen jedoch mit einem Unterstrich (_) beginnen.
Ein einfaches Beispiel mit einem zusätzlichen Feld namens device_id sieht so aus:
{
"version": "1.1",
"host": "myIotDevice",
"short_message": "Something is happening",
"_device_id": "abcd"
}
Sie können dann in Graylog nach allen Nachrichten vom Gerät "abcd" mit der Abfrage device_id: abcd suchen.
Weitere Details zu GELF finden Sie in der offiziellen Spezifikation hier: https://docs.graylog.org/en/4.0/pages/gelf.html.
Wenn Sie Logs von Servern oder Anwendungen senden möchten, können Sie eine der vielen verfügbaren Bibliotheken nutzen, die Ihre Nachrichten automatisch erstellen und versenden. Beispiele finden Sie für Node.js, .NET und Python.
Das richtige Protokoll wählen
Nachdem Sie das passende Format ausgewählt haben (wir hoffen, Sie haben sich für GELF entschieden!), müssen Sie zwischen den Kommunikationsprotokollen TCP und UDP wählen.
UDP-Protokoll
Das UDP-Protokoll ist sehr einfach. Ihre Anwendung sendet die Nachricht an den Server, ohne eine Empfangsbestätigung zu erwarten. Es findet kein Dialog zwischen Client und Server statt, das heißt, der Server bestätigt den Empfang nicht.
Der Vorteil dieser Methode ist, dass die Performance Ihrer Anwendung nicht beeinträchtigt wird, falls Ihr Graylog-Server langsam oder nicht erreichbar ist. Der Nachteil ist, dass Sie nicht garantieren können, dass jede von Ihrer Anwendung gesendete Log-Nachricht auch tatsächlich beim Server ankommt. Zudem ist mit UDP keine Verschlüsselung möglich.
Vorteile
- Beeinträchtigt Ihre Anwendung nicht, wenn Graylog langsam oder nicht erreichbar ist.
Nachteile
- Einige Nachrichten können verloren gehen.
- Verschlüsselung ist nicht verfügbar.
- Die Nachrichtengröße ist auf 8192 Bytes begrenzt.
TCP-Protokoll
Das TCP-Protokoll hingegen ermöglicht einen Austausch zwischen Ihrer Anwendung und Graylog. Das bedeutet, Sie erhalten eine Bestätigung, dass die Nachricht von Graylog empfangen wurde.
Der Vorteil von TCP ist, dass Sie eine Nachricht erneut senden können, falls sie nicht von Graylog empfangen wurde (zum Beispiel, wenn der Server nicht erreichbar ist). Der Nachteil ist, dass Ihre Anwendung auf eine Antwort oder einen Timeout warten muss, falls Graylog langsam oder nicht erreichbar ist, was zu Verzögerungen führen kann.
Ein weiterer Vorteil ist, dass Sie Ihre Kommunikation mit TLS (auch als SSL bekannt) verschlüsseln können.
Vorteile
- Stellt sicher, dass die Nachricht empfangen wurde.
- Verschlüsselung ist verfügbar (TLS).
- Keine Begrenzung der Nachrichtengröße
Nachteile
- Kann den Sender verlangsamen, wenn Graylog langsam antwortet oder nicht erreichbar ist.
Fazit
Wir hoffen, dieser Leitfaden hat Ihnen die nötigen Informationen geliefert, um das beste Format und Protokoll für das Senden Ihrer Logs an Graylog auszuwählen.
Denken Sie daran, dass Sie mehrere Eingaben gleichzeitig betreiben können, indem Sie für jede einen eigenen Port verwenden. Beispielsweise könnten Sie eine "syslog UDP"-Eingabe auf Port 514 und eine "GELF TCP"-Eingabe auf Port 12201 betreiben.