graylog “failed to parse field”

問題

json の extractor を設定したところ、以下のエラーが発生した。

OpenSearchException[OpenSearch exception [type=mapper_parsing_exception, reason=failed to parse field [level] of type [long] in document with id 'cbbbc2e0-caeb-11ef-8414-bc2411191a76'. Preview of field's value: 'info']]; nested: OpenSearchException[OpenSearch exception [type=illegal_argument_exception, reason=For input string: "info"]];

原因

既存のフィールドと型が異なる場合に発生する。
この例では、syslog が設定する level フィールドが「文字列」のinfoに対し、json内に「数字」のlevelフィールドがあり、重複による型エラーにより上記エラーが発生していた。

対策

2パターンほどある。

①重複しないように構成

json extractorを使用している場合、「Key prefix」を設定して、既存のフィールドと異なる名称になるよう構成する。

②型の再設定

適切な型となるよう、既存のデータを全て削除し、再度OpenSearchのフィールドを初期化する

curl -X DELETE "http://localhost:9200/_all"

コメント

タイトルとURLをコピーしました