正規表現で部分一致を使用してジョブのファイル名を生成するにはどうすればよいですか?

正規表現で部分一致を使用してジョブのファイル名を生成するにはどうすればよいですか?

私はrsyslogd v5.8.10を含むCentOS6.5を使用しています。

私のサーバーには20のプロセスプログラムがあります。 rsyslogdを使用してログを受信し、メッセージのプロセスプログラムIDに基づいて別のログファイルに保存したいので、次の形式でログを送信することにしました。 {PRC}例:{PRC server1_process_a10}これはメッセージの内容です。

メッセージがフィルタ/ルール(regexを使用?)と一致することを確認してから、ログファイル名にprocess_name、log_levelを使用する方法を知りたいです。

例:ログメッセージは次のとおりです(ログレベルのデバッグ):{PRC server1_process_a10}this_is_message_textこのメッセージを/var/log/myprogram-server1_process_a10_debug.logに保存しようとしています。

ベストアンサー1

ついに問題を解決しました。

最初のステップは、次のプログラムを介してログテキストを送信することです。

sender_host sender_program ログ_テキスト

次に、/etc/rsyslog.conf に次の設定を追加します。

$template tpl,"/var/log/procs_%プログラム名:R,ERE,0,ZERO:(PRCS_[A-Za-z0-9]+)--end%%syslogseverity-text%%$年%-%$月%-%$日%.log"

local0.*?tpl

そうすれば、すべてがうまくいくでしょう。

おすすめ記事