名前のついたフィールドを生成するすべてのパーサに共通オプションを構成することができます。
フィールド名の予約語
フィールド名には制限があります。次の名前は予約されているため、フィールド名としては使用できません。
- event_type
- hostname
- source
- text
パーサの共通オプション
次の表のオプションは、サポートされているすべてのパーサで使用できます。
オプション | 説明 |
---|---|
base_parser | このカスタム パーサが拡張するベース パーサの名前。組み込みのパーサ名か、別のカスタム パーサ名にできます。この構成キーは必須です。 |
field_decoder |
JSON 文字列として指定されたネストされたパーサ。キーはネストされたパーサが適用されるフィールドの名前で、値はそのフィールドに使用されるパーサの名前です。ネストされたパーサは、ベース パーサによってデコードされた、それぞれの対応するフィールドに適用されます。タイムスタンプなどフィールドの値が複雑な場合、フィールド デコーダが便利です。
field_decoder オプションは引数としてより複雑な JSON オブジェクトもサポートし、ネストされたパーサが適用される前にチェックされる特定のフィールド値の条件を使用できます。
注: 使用方法と条件付き構成の詳細については、以下の「field_decoder オプションの条件付き構成」を参照してください。
|
field_rename | 抽出したフィールド名を変更します。キーがフィールドの元の名前、値がフィールドの新しい名前の JSON 文字列を使用します。field_decoder オプションは常に、field_rename の前に適用されます。オプションの INI ファイル内での順序は重要ではありません。分かりやすくするため、field_decoderを先に指定します。 |
next_parser | 次に実行するパーサの名前。1 回の入力で複数のパーサの連続実行を可能にします。
注: パーサは、
next_parserキーワードで定義されたすべての連続したパーサを処理し、前のパーサによって抽出済みのフィールド値を置き換えることができます。
|
exclude_fields | サーバへの配信前にイベントから削除するフィールド名のリスト(セミコロン区切り)。フィールド名は、解析中に除外するフィールドがフィルタ条件で使用できないようにするために、イベント フィルタリングの実行前に削除されます。 |
debug | 特定のパーサのデバッグを有効にする Yes または No オプション。デバッグが有効になると、パーサは受信した入力、実行した操作、生成した結果の詳細をログに記録します。このオプションはセクションごとに、つまり特定のセクションで定義されたパーサのみに適用されます。 パーサに対する debug のデフォルト値は debug=no です。 |
field_decoder オプションの条件付き構成
特定のフィールド値に関連する共通フォーマットが同じで差異が大きい場合、たとえば info および error の重大度を含むログの場合、条件付きのネストされたパーサを使用して、すでに解析済みログの対応するフィールドへの不要なパーサの適用を減らすことができます。
2019-03-29T11:00:54.858Z host-FQDN Hostd: error hostd[2099230] [Originator@6876 sub=Default opID=1983bdbe-c1-800f user=admin.user] AdapterServer caught exception: SSLExceptionE(SSL Exception: error:140000DB:SSL routines:SSL routines:short read: The connection was closed by the remote end during handshake.)
2019-03-29T11:00:55.477Z host-FQDN Hostd: info hostd[6D620B70] ['commonhost' opID=5759adcc-cf] [transportConnector] -- FINISH task-internal-5726666 -- -- Completed connection restart --
次の構成を使用してログを解析できます。
[parser|clf_parser] base_parser=clf format=%t %{generator_host}i %i: %{log_severity}i %i[%{thread_id}i]%M field_decoder={"log_message" : {"log_severity" : {"error" : "error_parser", "info" : "info_parser"}}} exclude_fields=log_message [parser|info_parser] base_parser=clf format=[%{common_info}i] [%{process}i] %M field_rename={"log_message" : "info_log_content"} [parser|error_parser] base_parser=clf format=[%{common_info}i] %{exception_handler}i %i:%{exception_type}i:%i:%{error_id}i:%i:%i:%i: %M field_rename={"log_message" : "exception_content"}
この構成では、次の結果が生成されます。
timestamp=2019-03-29T11:00:54.858000 generator_host="host-FQDN" log_severity="error" thread_id="2099230" common_info=Originator@6876 sub=Default opID=1983bdbe-c1-800f user=admin.user exception_handler="AdapterServer" exception_type="SSLExceptionE(SSL Exception" error_id="140000DB" exception_content="The connection was closed by the remote end during handshake.)"
さらに、info ログに対して以下のフィールドが解析されます。
timestamp=2019-03-29T11:00:55.477000 generator_host="host-FQDN" log_severity="info" thread_id="6D620B70" log_message="['commonhost' opID=5759adcc-cf] [transportConnector] -- FINISH task-internal-5726666 -- -- Completed connection restart --" common_info="'commonhost' opID=5759adcc-cf" process="transportConnector" info_log_content="-- FINISH task-internal-5726666 -- -- Completed connection restart --"