rsyslog ログ形式とフィルタリングについて

rsyslog ログ形式とフィルタリングについて

私はsyslogでログをフィルタリングして別のログに渡す作業をしています。

以下に基づいてログをキャプチャ/フィルタリングすることもできます。内部SFTP「使用して

if $programname == 'internal-sftp' then /var/log/sftp/sftp.log

上記は動作中です。

しかし、それに基づいてフィルタリングすることはできません。」統計名". pri、syslogtagなどを試してみました。ログ形式は次のとおりです。

Apr 24 02:16:30 ip-10-0-10-22 internal-sftp[4714]: lstat name "/settlement/universalpay/test_deletez.log"

それでは、次の行をどのようにフィルタリングしますか?統計名条件が適用されます。どの属性を使用する必要がありますか?

以下は私が試しているサンプルコードです。

if $programname == 'internal-sftp' then {
        if $syslogfacility-text contains 'lstat name' then {
                action(type="omfile" file="/var/log/sftp/sftp_lstat_files.log" template="outfmt")
        }
        action(type="omfile" file="/var/log/sftp/sftp.log" template="outfmt")
        & stop 
}

答え1

バラ、

次の点をご確認ください。

if $msg startswith ' lstat name' then { ....

上記のように、「lstat name」の前にスペースがあることを確認してください。

関連情報