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 verschillende soorten inputs. Met deze inputs kunt u logs naar de Graylog-server sturen of Graylog logs laten ophalen van een andere bron.
In vrijwel alle gevallen wilt u data van een applicatie of apparaat naar de Graylog-server sturen. We behandelen hier niet de geavanceerde gevallen waarbij Graylog logs van elders moet ophalen. Mocht u dit toch willen doen, wees gerust: het is zeer eenvoudig te realiseren.
Om het beste invoertype te kiezen, moet u eerst bepalen welk logformaat u naar Graylog wilt sturen. Wij raden aan het GELF-formaat te gebruiken, zoals hieronder uitgelegd.
Vervolgens kiest u het protocol: UDP of TCP.
Het invoerformaat kiezen
De eerste stap 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 tekstboodschap verstuurt. Het is zeer gemakkelijk te gebruiken en ideaal voor eerste tests, zoals het versturen van een bericht met het hulpprogramma netcat.
Om te testen kunt u een "Raw/Plaintext UDP" input aanmaken en vervolgens een testlog sturen met een van de volgende commando's:
- 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
Heel eenvoudig, toch? Omdat het echter een basaal formaat is, zult u al snel tegen beperkingen aanlopen. Daarom raden wij af dit formaat te gebruiken voor meer dan simpele tests.
Syslog-formaat
Dit is een bekend formaat dat veel wordt gebruikt voor het opslaan en versturen van logs in serveromgevingen. U vindt het terug op Linux, Windows, *BSD en andere besturingssystemen.
Als u Syslog, Rsyslog of een andere compatibele dienst gebruikt en logs van een server naar Graylog wilt sturen, is de syslog input de eenvoudigste optie.
Aangezien GELF krachtiger is, raden wij echter aan om, indien mogelijk, berichten in GELF-formaat te versturen, zoals hieronder uitgelegd.
Let op: het syslog-formaat is beperkt tot 1024 tekens.
GELF-formaat (aanbevolen)
GELF staat voor "Graylog Extended Log Format". Dit formaat is door Graylog ontwikkeld en wordt inmiddels breed ondersteund door veel producten, waardoor het een standaard is geworden.
Het GELF-formaat is krachtig omdat het logs op een gestructureerde manier verstuurt. Gestructureerd loggen maakt het mogelijk om meerdere velden en waarden te verzenden in plaats van slechts één ongestructureerd tekstbericht. Dit maakt het voor Graylog eenvoudiger om de informatie te parseren en op te halen.
Als u bijvoorbeeld een log wilt versturen met een IP-adres en een request type, kunt u een bericht sturen met twee velden genaamd ip en request_type. Aan de Graylog-kant kunt u vervolgens direct zoeken op deze velden, bijvoorbeeld alle verzoeken zoeken met de query: request_type: POST.
GELF is gebaseerd op JSON en moet minimaal de velden version, host en short_message bevatten. U kunt vervolgens extra velden toevoegen, die altijd 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 alle berichten van het apparaat "abcd" op Graylog zoeken met de query: device_id: abcd.
Voor meer details over GELF kunt u de officiële specificatie raadplegen: https://docs.graylog.org/en/4.0/pages/gelf.html.
Als u logs wilt versturen vanaf servers of applicaties, kunt u gebruikmaken van een van de vele beschikbare libraries die automatisch uw berichten aanmaken en versturen. Voorbeelden zijn beschikbaar voor Node.js, .NET en Python.
Het juiste protocol kiezen
Zodra u het juiste formaat heeft gekozen (wij hopen dat u voor GELF kiest!), moet u een communicatieprotocol kiezen: TCP of UDP.
UDP-protocol
Het UDP-protocol is vrij eenvoudig. Uw applicatie stuurt het bericht naar de server zonder bevestiging van ontvangst af te wachten. Er is geen dialoog tussen client en 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 weet of elk logbericht daadwerkelijk de server bereikt. Daarnaast is encryptie niet mogelijk met UDP.
Voordelen
- Heeft geen invloed op uw applicatie als Graylog traag of niet beschikbaar is.
Nadelen
- Sommige berichten kunnen verloren gaan.
- Encryptie 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 versturen als het niet door Graylog is ontvangen (bijvoorbeeld als de server niet beschikbaar is). Het nadeel is dat als Graylog traag of niet bereikbaar is, uw applicatie moet wachten op een antwoord of een timeout, wat de applicatie kan vertragen.
Een ander voordeel is dat u uw communicatie kunt versleutelen met TLS (ook bekend als SSL).
Voordelen
- Garandeert dat het bericht is ontvangen.
- Encryptie is beschikbaar (TLS).
- Geen beperking op de berichtgrootte
Nadelen
- Kan de verzender vertragen als Graylog traag reageert of niet beschikbaar is.
Conclusie
Wij hopen dat deze gids u de benodigde informatie heeft gegeven om het beste formaat en protocol te kiezen voor het versturen van uw logs naar Graylog.
Onthoud dat u meerdere inputs tegelijkertijd kunt draaien door verschillende poorten te gebruiken voor elke input. U kunt bijvoorbeeld een "syslog UDP" input op poort 514 hebben naast een "GELF TCP" input op poort 12201.