Graylog: Fout "failed to parse field [XXXX] of type [YYYY]" oplossen
Deze documentatie maakt deel uit van de Aan de slag-gids. Bekijk de volledige gids hier: Hoe u aan de slag gaat met Graylog.
👋 Welkom bij de Stackhero-documentatie
Stackhero biedt een volledig beheerde Graylog cloud oplossing, ontworpen voor snelheid en eenvoud. U kunt:
- Vertrouwen op een onbeperkte, dedicated SMTP mailserver die bij uw dienst is inbegrepen.
- Updates moeiteloos toepassen met één klik, zonder handmatige handelingen.
- Een eigen domeinnaam gebruiken, beveiligd met HTTPS (bijvoorbeeld https://logs.uw-bedrijf.com), zodat uw team veilig en direct toegang heeft.
- Profiteren van uitstekende prestaties en beveiliging op een private, dedicated infrastructuur zonder gedeelde resources of storende buren.
Focus op uw data, niet op uw tooling: u kunt binnen enkele minuten aan de slag met Stackhero's Graylog cloud hosting oplossing.
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'