Graylog: Aan de slag
Hoe u aan de slag gaat met Graylog
👋 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!
Een eerste input aanmaken in Graylog
Een input is het eindpunt waar Graylog uw logs ontvangt. U kunt logs verzenden via TCP of UDP. Daarnaast kan Graylog logberichten verzamelen via een API, een Kafka-queue, een RabbitMQ-server en andere methoden.
In dit voorbeeld maken we een raw UDP-input aan. Open hiervoor de Graylog-interface en ga naar "System" en vervolgens "Inputs". Kies "Raw/Plaintext UDP" en klik op "Launch new input". Configureer uw input met de volgende waarden en valideer het formulier:
- Node: Selecteer uw node
- Title: RAW UDP
- Port: 5555
Open vervolgens een terminal op uw computer en stuur een UDP-bericht naar uw Graylog-server. Vergeet niet XXXXXX te vervangen door uw service-domeinnaam:
- Op macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Op Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
Nadat u het bericht heeft verzonden, gaat u terug naar Graylog en klikt u op "Search". U zou uw bericht moeten zien verschijnen 🎉
Gefeliciteerd, u heeft zojuist uw eerste bericht naar Graylog gestuurd! U kunt nu extra inputs en dashboards aanmaken die aansluiten bij uw behoeften. Voor meer informatie kunt u de officiële documentatie van Graylog raadplegen.
Graylog codevoorbeelden
Diverse codevoorbeelden zijn beschikbaar in onze Git-repository. Deze repository biedt praktische implementaties en extra maatwerk om u te helpen het maximale uit Graylog te halen.
Rsyslog-logs naar Graylog sturen met TLS-encryptie
Als u een rsyslog-client heeft en logs veilig naar Graylog wilt sturen, volg dan deze stappen:
Activeer geen enkele TLS-optie op de input van Graylog. TLS wordt direct beheerd door een reverse proxy op uw instance, zodat Graylog dit niet zelf hoeft te verwerken.
-
Ga naar de configuratie van uw Graylog-service in het Stackhero-dashboard en schakel "TLS-encryptie" in voor de Syslog TCP-poort 514.
-
Werk uw rsyslog-configuratie bij zoals hieronder beschreven. Vervang
<XXXXXX>.stackhero-network.comdoor de hostnaam van uw instance:# Definieer TLS CA-certificaat global( DefaultNetstreamDriver="gtls" DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca-certificates.crt" ) # Stuur alle logs naar een externe server # Er wordt een on-disk queue aangemaakt voor deze actie. Als de externe host # niet bereikbaar is, worden berichten op schijf opgeslagen en verzonden zodra deze weer beschikbaar is # Zie https://www.rsyslog.com/doc/v8-stable/configuration/actions.html # en https://www.rsyslog.com/doc/v8-stable/configuration/modules/omfwd.html *.* action( type="omfwd" target="<XXXXXX>.stackhero-network.com" port="514" protocol="tcp" KeepAlive="on" KeepAlive.Interval="30" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" ResendLastMSGOnReconnect="on" queue.filename="fwdRule1" # unieke naam prefix voor spoolbestanden queue.type="LinkedList" queue.maxDiskSpace="256m" queue.saveOnShutdown="on" action.resumeRetryCount="-1" action.resumeInterval="30" ) -
Herstart uw rsyslog-service en controleer de configuratie door een log te versturen met het volgende commando:
logger This is a test
De configuratie is nu afgerond. U stuurt nu veilig logs naar Graylog via TLS-encryptie!
Fout "failed to parse field [XXXX] of type [YYYY]" oplossen
U kunt een foutmelding tegenkomen zoals:
org.opensearch.index.mapper.MapperParsingException: failed to parse field [time] of type [long] in document with id 'xxxx'
U kunt deze fout bekijken in de logs die beschikbaar zijn in het Stackhero-dashboard of in het Graylog-beheerpanel onder System > Overview > Indexer failures.
Deze fout geeft aan dat er een log is verzonden met een waarde voor het veld time die niet overeenkomt met het verwachte type (in dit geval een numerieke waarde van het type "long"). Graylog maakt gebruik van de dynamische mapping-functionaliteit van OpenSearch. Wanneer een log voor het eerst wordt verzonden, probeert OpenSearch het veldtype te bepalen. Bijvoorbeeld, als een log het veld time bevat met de numerieke waarde 1234, wordt dit als numeriek veld gedefinieerd. Als vervolgens een log wordt verzonden met het veld time als "abcd", een string, zal OpenSearch dit weigeren omdat het een numerieke waarde verwacht.
Let op: de veldnaam time wordt hier alleen als voorbeeld gebruikt. Dit kan elk veld en elk type zijn.
Om dit probleem op te lossen, moet u het type dat OpenSearch verwacht opnieuw definiëren. Raadpleeg voor meer informatie de officiële Graylog-documentatie.
De OpenSearch-mapping bijwerken
Voordat u verdergaat, schakelt u OpenSearch-toegang in via het Stackhero-dashboard. Navigeer naar uw Graylog-service en klik op de knop "Configure" om OpenSearch-toegang te activeren.
Wees voorzichtig met deze wijzigingen; een verkeerde configuratie kan uw OpenSearch-cluster blokkeren en mogelijk tot dataverlies leiden. Als u twijfelt, ga dan niet verder.
-
Definieer uw nieuwe mapping. In dit voorbeeld definiëren we het veld
timeopnieuw als type string. Beschikbare types vindt u in de OpenSearch field datatypes documentatie. -
Sla de volgende inhoud op in een bestand met de naam
graylog-custom-mapping.json:{ "template": "graylog_*", "mappings": { "message": { "properties": { "time": { "type": "string", "index": "not_analyzed" } } } } } -
Stuur dit bestand met het volgende curl-commando (vervang
<XXXXXX>.stackhero-network.comdoor de domeinnaam van uw instance):curl -u 'admin' -X PUT -d @'graylog-custom-mapping.json' -H 'Content-Type: application/json' 'https://<XXXXXX>.stackhero-network.com/opensearch/_template/graylog-custom-mapping?pretty'U zou een antwoord moeten krijgen zoals:
{ "acknowledged": true } -
Controleer tot slot of de mapping is bijgewerkt met dit commando (vervang de domeinnaam indien nodig):
curl -u 'admin' -X GET 'https://<XXXXXX>.stackhero-network.com/opensearch/graylog_deflector/_mapping?pretty'
Fout "Unable to write audit log entry" oplossen
Als u een foutmelding ziet zoals:
Unable to write audit log entry because there is no valid license
of
Not running cleanup for auditlog entries in MongoDB because there is no valid license
komt dit doordat Graylog Enterprise is geactiveerd zonder geldige licentie. Als u een licentie heeft, kunt u deze invoeren in de Graylog-interface. Heeft u geen licentie, schakel dan Graylog Enterprise uit in het Stackhero-dashboard.