Graylog: 問題の原因
このドキュメントはデータマッピングの問題ガイドの一部です。完全なガイドはこちらからご覧いただけます:Graylogインデックスのデータマッピング問題の解決方法。
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるGraylogクラウドソリューションを提供しています。
- 無制限で専用のSMTP メールサーバーが含まれています。
- ワンクリックで簡単にアップデート。
- HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://logs.your-company.com)。
- プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ。
時間を節約し、生活を簡素化:StackheroのGraylogクラウドホスティングソリューションを試すのに5分しかかかりません!
この問題は、OpenSearchのダイナミックマッピング機能に起因します。ダイナミックマッピングは、インデックスに最初に書き込まれたドキュメントの内容に基づいて各フィールドのデータ型を自動的に決定します。一度データ型が設定されると、その型は「固定」され、以降のドキュメントで同じフィールドに異なるデータ型が指定されると、マッピングパース例外(mapper parsing exception)が発生し、ドキュメントが拒否されます。
新しいインデックスが作成される際、最初のドキュメントがインデックスマッピングを定義します。例えば、そのドキュメントに「level」フィールドがあり、値が3(数値)の場合、OpenSearchは「level」フィールドのデータ型を「long」(数値型)として設定します。その後、Graylogに送信される別のドキュメントで「level」フィールドが「error」(文字列)となっている場合、最初に設定された型と一致しないため、そのドキュメントは拒否されます。これにより、mapper_parsing_exception エラーが発生し、理由として failed to parse field [level] of type [long] in document with id 'xxx'. が表示されます。
この問題は、ドキュメント間でフィールドのデータ型が一貫していない場合、どのフィールドでも発生する可能性があります。