web-dev-qa-db-ja.com

それらが提出される前にジャーナルメッセージをフィルタリングすることは可能ですか?

私はjournaldで集中しているすべての種類のログを持っています。それらの多くは面白くないので、私はソースでそれらを絞り込むことを試みることができましたが、これは必ずしも可能ではありません。さらに、いくつかは所与のレベル内に興味深いものであり、一部はそうではありません。

ログに記録されているイベントのjournaldでフィルタリングする方法はあります。私は特に興味深いものです拒否既知のパターンを受け入れるのではなく、既知のパターンがあります。

それが不可能な場合は、そのアプローチに代わるものがありますか? (私はイベントをログスタッシュして興味深いものを落とすことを転送することを考えていました)

1
WoJ

ログに記録されているイベントを順にフィルタリングする方法はあります。私はいくつかを受け入れるのではなく、既知のパターンを拒否するのに特におもしろいです。

journald(実際には、_systemd-journald_)はイベントロギングを担当するデーモンです。 AFAIK、それはデザインでフィルタリングをしません、それはイベントを受け入れてそれらを保存するだけです。

共通のアプローチは、ログを表示するときにフィルタリングすることです。journalctlで行われます。 journalctlさまざまな方法でフィルタリングできます。 Systemd Unit:

_journalctl -u nginx.service
_

これらのフィルタのほとんどは否定を許可しません。したがって、それらを除外するのではなく、メッセージを選択します。特定のメッセージを除外するには、正規表現と一致するオプション_--grep_を使用できます。正規表現を除く正規表​​現を除くものとします。

それが不可能な場合は、そのアプローチに代わるものがありますか? (私はイベントをログスタッシュして興味深いものを落とすことを転送することを考えていました)

それは1つの選択肢です(ただログを読むだけではオーバーキルかもしれません)。すべての方法を行い、ログビューアをインストールすることもできます greylog

シンプルで迅速なソリューションが必要な場合は、オプション_--output=..._を持つファイルにログをダンプしてから、選択したツールでそれを処理することもできます。さまざまなテキスト形式やJSONをダンプできます。特にJSONは、Perlでクイックスクリプトを書くと、Python、またはJSONをフィルタリングするものは何でも)の複雑な後処理を許可します。

1
sleske