問題
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"
コメント