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

当初は、<0x1d> を Gork パターンルールにコピーすると、logstash がそれを正常に解析できるようになると考えていたため、構成された grok ルールを Kibana Gork パターンに追加しました。デバッグログは次のようになります。 ログは正常に解析できますが、logstash 構成ファイルに追加すると、起動後に logstash grok がまったく失敗しなくなるため、以下に示すように、このようなログはすべて解析に失敗します。

最終的な解決策は、正規表現を使用してASCII文字セットに一致し、削除することです。

Terminal window
filter {
grok {
match => {
"message" => "%{DATA:type}(?:[\x00-\x1F\x7F])*%{DATA:name}"
}
}
}

次に、logstash構成ファイルを変更し、自動リロード後に最新のログを観察します。解析に失敗した監査ログはありません。