ユーザー名をフィルタリングするためにsyslog-ngを取得する方法は?

ユーザー名をフィルタリングするためにsyslog-ngを取得する方法は?

syslog-ngの良い機能が見つかりました。記録計ユーザー・プロセスの内容を記録するためのロギング・ユーザー名を取得します。この周辺:

peterh$ echo test log message|logger

それから私はこれを得ます/var/log/messages

Oct 12 16:38:29 thehost peterh: test log message

ここで、「thehost」はサーバーのホスト名、「peterh」は以下のコマンドのユーザー名です。

今私が望むもの:syslog-ngを使用して、特定のユーザーのログエントリを特定のファイルに収集したいと思います。

ログファイル全体をフィルタリングするsyslog-ngの機能はひどいようですが、時には機能しません。

# Doesn't work - it doesn't do anything
filter f_peterh { match('peterh'); };
destination d_filter { file("/var/log/peterh.log"); };
log { source(s_src); filter(f_peterh); destination(d_peterh); };

Web上のさまざまな場所で利用可能な文書には、ログメッセージのバイナリ形式から関連RFCまで、すべての内容が記載されています。システムログでユーザー名をフィルタリングする方法

どうすればいいですか?

答え1

これがまだあなたに効果があるかどうかはわかりませんが、ユーザー名でフィルタリングしたい他の人にとっては、これが私ができることについての参照です。

次のフィルタを作成しました。

filter sampleUserFilter {
        facility (user) and match ("myUser" value ("PROGRAM"));
};

これにより、(ロガーを使用して)特定のユーザーからのメッセージを別々のファイルにルーティングできます。

関連情報