Graylog: Eingabetypen auswählen
Wie man den richtigen Graylog-Eingabetyp auswählt
👋 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 eine Vielzahl von Eingaben. Diese Eingaben ermöglichen es Ihnen, Logs an den Graylog-Server zu senden oder Graylog zu erlauben, Logs von einer anderen Quelle abzurufen.
In fast jedem Fall möchten Sie Daten von einer Anwendung oder einem Gerät an den Graylog-Server senden. Wir werden die fortgeschrittenen Fälle, in denen Sie möchten, dass Graylog Logs von woanders abruft, nicht behandeln. Wenn Sie dies jedoch tun möchten, seien Sie versichert, es ist sehr einfach.
Um den besten Eingabetyp auszuwählen, müssen Sie zuerst das Log-Format bestimmen, das Sie an Graylog senden möchten. Wir empfehlen die Verwendung des GELF-Formats, wie unten beschrieben.
Als Nächstes müssen Sie das Protokoll auswählen: UDP oder TCP.
Auswahl des Eingabeformats
Die erste Entscheidung ist die Wahl des Formats 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 Klartextnachricht sendet. Es ist sehr einfach zu verwenden und perfekt für erste Tests, wie das Senden einer Nachricht mit dem Dienstprogramm netcat.
Um es zu testen, können Sie eine "Raw/Plaintext UDP"-Eingabe erstellen und dann ein Test-Log mit einer der folgenden Befehlszeilen senden:
- Von macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Von Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
Es ist sehr einfach, nicht wahr? Da es sich jedoch um ein grundlegendes Format handelt, werden Sie bald auf Einschränkungen stoßen. Daher raten wir davon ab, es für mehr als einfache Tests zu verwenden.
Syslog-Format
Dies ist ein bekanntes Format, das weit verbreitet ist, um Logs in Serverumgebungen zu speichern und zu senden. Sie finden es in Linux, Windows und *BSD, unter anderen Betriebssystemen.
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, wenn möglich, Nachrichten im GELF-Format zu senden, wie unten erklärt.
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 erstellt und hat sich in vielen Produkten als Standard etabliert.
Das GELF-Format ist leistungsstark, da es Logs strukturiert sendet. Strukturiertes Logging ermöglicht es Ihnen, mehrere Felder und Werte zu übertragen, anstatt nur eine unstrukturierte Textnachricht. Dies erleichtert es Graylog, die Informationen zu analysieren und abzurufen.
Wenn Sie beispielsweise ein Log senden möchten, das eine IP-Adresse und einen Anfragetyp enthält, können Sie eine Nachricht mit zwei Feldern namens ip und request_type senden. Auf der Graylog-Seite können Sie direkt in diesen Feldern suchen, z. B. alle Anfragen mit der Abfrage: request_type: POST.
GELF basiert auf JSON und muss mindestens die Felder version, host und short_message enthalten. Sie können dann zusätzliche Felder hinzufügen, die mit einem Unterstrich (_) beginnen müssen.
Ein einfaches Beispiel für eine Nachricht 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 alle Nachrichten vom Gerät "abcd" auf Graylog mit der Abfrage: device_id: abcd suchen.
Für weitere Details zu GELF können Sie die offizielle Spezifikation hier einsehen: 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 verwenden, die Ihre Nachrichten automatisch erstellen und senden. Beispiele sind verfügbar für Node.js, .NET und Python.
Das richtige Protokoll wählen
Sobald Sie das geeignete Format ausgewählt haben (wir hoffen, Sie haben GELF gewählt!), müssen Sie ein Kommunikationsprotokoll zwischen TCP und UDP wählen.
UDP-Protokoll
Das UDP-Protokoll ist recht einfach. Ihre Anwendung sendet die Nachricht an den Server, ohne eine Empfangsbestätigung zu benötigen. Es gibt keinen Dialog zwischen dem Client und dem Server, was bedeutet, dass der Server nicht bestätigt, dass er die Nachricht erhalten hat.
Der Vorteil dieses Ansatzes ist, dass, wenn Ihr Graylog-Server langsam oder ausgefallen ist, dies die Leistung Ihrer Anwendung nicht beeinträchtigt. Der Nachteil ist, dass Sie nicht sicher sein können, dass jede von Ihrer Anwendung gesendete Log-Nachricht den Server erreicht. Außerdem ist Verschlüsselung mit UDP nicht verfügbar.
Vorteile
- Beeinträchtigt Ihre Anwendung nicht, wenn Graylog langsam oder ausgefallen 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 tauscht im Gegensatz zu UDP Informationen zwischen Ihrer Anwendung und Graylog aus. Das bedeutet, dass Sie eine Bestätigung erhalten, dass die Nachricht von Graylog empfangen wurde.
Der Vorteil von TCP ist, dass Sie eine Nachricht erneut senden können, wenn sie von Graylog nicht empfangen wird (zum Beispiel, wenn der Server ausgefallen ist). Der Nachteil ist, dass, wenn Graylog langsam oder nicht reagiert, Ihre Anwendung auf eine Antwort oder einen Timeout warten muss, was sie potenziell verlangsamen kann.
Ein weiterer Vorteil ist, dass Sie Ihre Kommunikation mit TLS (auch bekannt als SSL) verschlüsseln können.
Vorteile
- Stellt sicher, dass die Nachricht empfangen wurde.
- Verschlüsselung ist verfügbar (TLS).
- Keine Größenbeschränkung für Nachrichten
Nachteile
- Kann den Sender verlangsamen, wenn Graylog langsam reagiert oder ausgefallen ist.
Fazit
Wir hoffen, dass dieser Leitfaden Ihnen die notwendigen Informationen gegeben hat, um das beste Format und Protokoll für das Senden Ihrer Logs an Graylog auszuwählen.
Denken Sie daran, dass Sie mehrere Eingaben gleichzeitig ausführen können, indem Sie für jede unterschiedliche Ports verwenden. Zum Beispiel könnten Sie eine "syslog UDP"-Eingabe auf Port 514 parallel zu einer "GELF TCP"-Eingabe auf Port 12201 haben.