最近、Linux 監査ログを構成する際に、Ubuntu システム監査ログの末尾近くに特殊文字が表示され、logstash grok ルールの解析が失敗しました。ログメッセージの単語を変更する
デバッグのためにセグメントをKibane Grok Debuggerにコピーします。サンプルデータ監査ログに特別な色の文字があることがはっきりとわかります。キーボードのCrrlを押してマウスホイールをスクロールしてブラウザページを拡大すると、2つの色フィールドの特殊小文字。それぞれGとSで、文字を個別にコピーすることはできませんが、すべてをコピーしてコードエディタに貼り付けると、
特殊文字は ASCII 文字セットに属する <0x1d> として表示されます。
当初は、<0x1d> を Gork パターンルールにコピーすると、logstash がそれを正常に解析できるようになると考えていたため、構成された grok ルールを Kibana Gork パターンに追加しました。デバッグログは次のようになります。
ログは正常に解析できますが、logstash 構成ファイルに追加すると、起動後に logstash grok がまったく失敗しなくなるため、以下に示すように、このようなログはすべて解析に失敗します。

最終的な解決策は、正規表現を使用してASCII文字セットに一致し、削除することです。
filter { grok { match => { "message" => "%{DATA:type}(?:[\x00-\x1F\x7F])*%{DATA:name}" } }}次に、logstash構成ファイルを変更し、自動リロード後に最新のログを観察します。解析に失敗した監査ログはありません。

Logstashは、目に見えない制御文字に遭遇したときにgrok解析が失敗する問題を解決します
https://huoshen.pages.dev/ja/p/66f28497/