Graylog: Kies invoertypen
Hoe u het juiste Graylog-invoertype kiest
👋 Welkom bij de Stackhero documentatie!
Stackhero biedt een kant-en-klare Graylog cloud oplossing die tal van voordelen biedt, waaronder:
- Onbeperkte en toegewijde SMTP e-mailserver inbegrepen.
- Moeiteloze updates met slechts één klik.
- Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://logs.uw-bedrijf.com).
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Graylog cloud hosting oplossing van Stackhero te proberen!
Graylog biedt een verscheidenheid aan invoeropties. Deze invoeropties stellen u in staat om logs naar de Graylog-server te sturen of Graylog logs van een andere bron te laten ophalen.
In bijna alle gevallen wilt u gegevens van een applicatie of apparaat naar de Graylog-server sturen. We behandelen niet de geavanceerde gevallen waarin u wilt dat Graylog elders logs ophaalt. Als u dit echter wilt doen, wees gerust, het is heel eenvoudig.
Om het beste invoertype te kiezen, moet u eerst beslissen over het logformaat dat u naar Graylog wilt sturen. We raden aan om het GELF-formaat te gebruiken, zoals hieronder beschreven.
Vervolgens moet u het protocol selecteren: UDP of TCP.
Het invoerformaat selecteren
De eerste beslissing is het kiezen van het formaat van uw logberichten. Er zijn drie hoofdopties: RAW/Plaintext, Syslog of GELF.
RAW/Plaintext-formaat
Dit is het eenvoudigste formaat. Het werkt met elk systeem omdat het een volledig platte tekstbericht verzendt. Het is zeer eenvoudig te gebruiken en perfect voor initiële tests, zoals het verzenden van een bericht met behulp van de hulpprogramma netcat.
Om het te testen, kunt u een "Raw/Plaintext UDP"-invoer maken en vervolgens een testlog verzenden met een van de volgende opdrachtregels:
- Vanaf macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Vanaf Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
Het is heel eenvoudig, nietwaar? Omdat het echter een basisformaat is, zult u snel beperkingen tegenkomen. Daarom raden we af om het te gebruiken voor meer dan eenvoudige tests.
Syslog-formaat
Dit is een bekend formaat dat veel wordt gebruikt om logs op te slaan en te verzenden in serveromgevingen. U kunt het vinden op Linux, Windows en *BSD, onder andere besturingssystemen.
Als u Syslog, Rsyslog of een andere compatibele service gebruikt en logs van een server naar Graylog wilt verzenden, is de syslog-invoer de eenvoudigste optie.
Omdat GELF echter krachtiger is, raden we aan om, indien mogelijk, berichten in GELF-formaat te verzenden, zoals hieronder uitgelegd.
Merk op dat het syslog-formaat beperkt is tot 1024 tekens.
GELF-formaat (aanbevolen)
GELF staat voor "Graylog Extended Log Format". Dit formaat is gemaakt door Graylog en is breed geaccepteerd door veel producten, waardoor het een standaard is geworden.
Het GELF-formaat is krachtig omdat het logs op een gestructureerde manier verzendt. Gestructureerd loggen stelt u in staat om meerdere velden en waarden te verzenden in plaats van een enkel ongestructureerd tekstbericht. Dit maakt het voor Graylog gemakkelijker om de informatie te parseren en op te halen.
Als u bijvoorbeeld een log wilt verzenden die een IP-adres en een verzoektype bevat, kunt u een bericht verzenden met twee velden genaamd ip en request_type. Aan de Graylog-kant kunt u direct zoeken op deze velden, zoals zoeken naar alle verzoeken met de query: request_type: POST.
GELF is gebaseerd op JSON en moet ten minste de velden version, host en short_message bevatten. U kunt vervolgens extra velden toevoegen, die voorafgegaan moeten worden door een underscore (_).
Een eenvoudig bericht met een extra veld genaamd device_id ziet er bijvoorbeeld zo uit:
{
"version": "1.1",
"host": "myIotDevice",
"short_message": "Something is happening",
"_device_id": "abcd"
}
U kunt vervolgens zoeken naar alle berichten van het apparaat "abcd" op Graylog met de query: device_id: abcd.
Voor meer details over GELF kunt u de officiële specificatie hier raadplegen: https://docs.graylog.org/en/4.0/pages/gelf.html.
Als u logs wilt verzenden vanaf servers of applicaties, kunt u een van de vele beschikbare bibliotheken gebruiken die automatisch uw berichten maken en verzenden. Voorbeelden zijn beschikbaar voor Node.js, .NET, en Python.
Het juiste protocol kiezen
Zodra u het juiste formaat hebt geselecteerd (we hopen dat u GELF hebt gekozen!), moet u een communicatieprotocol kiezen tussen TCP en UDP.
UDP-protocol
Het UDP-protocol is vrij eenvoudig. Uw applicatie stuurt het bericht naar de server zonder een ontvangstbevestiging te vereisen. Er is geen dialoog tussen de client en de server, wat betekent dat de server niet bevestigt dat het bericht is ontvangen.
Het voordeel van deze aanpak is dat als uw Graylog-server traag of niet beschikbaar is, dit geen invloed heeft op de prestaties van uw applicatie. Het nadeel is dat u niet zeker kunt zijn dat elke log die vanuit uw applicatie wordt verzonden de server bereikt. Bovendien is versleuteling niet beschikbaar met UDP.
Voordelen
- Heeft geen invloed op uw applicatie als Graylog traag of niet beschikbaar is.
Nadelen
- Sommige berichten kunnen verloren gaan.
- Versleuteling is niet beschikbaar.
- Berichtgrootte is beperkt tot 8192 bytes.
TCP-protocol
Het TCP-protocol, in tegenstelling tot UDP, wisselt informatie uit tussen uw applicatie en Graylog. Dit betekent dat u een bevestiging ontvangt dat het bericht door Graylog is ontvangen.
Het voordeel van TCP is dat u een bericht opnieuw kunt verzenden als het niet door Graylog wordt ontvangen (bijvoorbeeld wanneer de server niet beschikbaar is). Het nadeel is dat als Graylog traag of niet reageert, uw applicatie moet wachten op een antwoord of een timeout, wat het mogelijk kan vertragen.
Een ander voordeel is dat u uw communicatie kunt versleutelen met TLS (ook bekend als SSL).
Voordelen
- Zorgt ervoor dat het bericht is ontvangen.
- Versleuteling is beschikbaar (TLS).
- Geen beperking op berichtgrootte
Nadelen
- Kan de zender vertragen als Graylog traag reageert of niet beschikbaar is.
Conclusie
We hopen dat deze gids u de nodige informatie heeft gegeven om het beste formaat en protocol te kiezen voor het verzenden van uw logs naar Graylog.
Onthoud dat u meerdere invoeren tegelijkertijd kunt uitvoeren door verschillende poorten voor elk te gebruiken. U kunt bijvoorbeeld een "syslog UDP"-invoer op poort 514 hebben naast een "GELF TCP"-invoer op poort 12201.