1

モジュールを nxlog と共に使用してxm_multiline、ログファイルのコンテンツを logstash に転送しようとしています。ログには、適切にインデントされたさまざまな xml 要素が含まれています (開始要素と終了要素は行の先頭にあります)。例えば

<data
    version="x"
    xmlns:bla="http://www.example.com/bla">
    <val:InfoSet>
      ...
        ...
          ...
    </val:InfoSet>
</data>

<message  ...>
    <ns>bla</ns>
    ...
        ...
</message>

nxlog で xml を解析する必要はありません。各最上位要素 (データやメッセージなど) を logstash に転送するだけで、logstash で xml 解析が実行されます。

要素の名前が異なるため、開始行と終了行を見つけるためにのみ<andを使用できます。</正しい行を選択するには、このようなフィルターで十分であることを期待していました。

HeaderLine  /^</
EndLine     /^<//

しかし、どういうわけか、nxlog は EndLine の正規表現パターンの / と混同され、ログに次のように表示されます。

ERROR HeaderLine and Endline both match

あらゆる種類の引用を試みましたが、期待した結果が得られませんでした。何かアドバイス?

更新、さらにテストを行いました

働いた

HeaderLine  /^<m/
EndLine     /^</m/

HeaderLine  /^<m/
EndLine     /^<\/m/

HeaderLine  /^<[abcdefghijklm]/
EndLine     /^<\/[abcdefghijklm]/

HeaderLine  /^<[abcdefghijklmo]/
EndLine     /^<\/[abcdefghijklmo]/

HeaderLine  /^<[abcdefghijklmopqrstuvwxyz]/    (left out n)
EndLine     /^<\/[abcdefghijklmopqrstuvwxyz]/

HeaderLine  /^<[abcdefghijklmopqrstuvwxyz]/ (left out n + not escaped
EndLine     /^</[abcdefghijklmopqrstuvwxyz]/

うまくいきませんでした:

HeaderLine  /^</
EndLine     /^</m/

HeaderLine  /^<[a-z]/
EndLine     /^</m/

HeaderLine  /^<\w/
EndLine     /^</m/

HeaderLine  /^<[abcdefghijklmn]/
EndLine     /^<\/[abcdefghijklmn]/

HeaderLine  /^<[bcdefghijklmn]/
EndLine     /^<\/[bcdefghijklmn]/

HeaderLine  /^<[abcdefghijklmopqrstuvwxyzn]/  (n at the last position)
EndLine     /^<\/[abcdefghijklmopqrstuvwxyzn]/

HeaderLine  /^<[abcdefghijklmnopqrstuvwxyz]/
EndLine     /^</[abcdefghijklmnopqrstuvwxyz]/
4

0 に答える 0