Syslog 出力ファイルは Syslog サーバーで毎時間分割されます。

Syslog 出力ファイルは Syslog サーバーで毎時間分割されます。

CentOSにsyslogサーバーを実装し、次のテンプレートを使用して毎日出力ファイルを作成しました。

$template TmplNationalIP_PL, "/var/log/NIPFW/MX480/CGNAT_PL_%$year%.%$month%.%$day%"
if ($msg contains 'OR_NAT' and $msg contains '55.91.165.') then ?TmplNationalIP_PL
& ~

上記と同様に(毎日)、syslogファイルを毎時間(毎日ではない)毎時間分割したいと思います。

使用するHOURLY変数が見つからないため、syslogメッセージファイルを時間ごとに分割するにはどうすればよいですか?

また、logrotate + cron操作を使用していますが、logrotateには時間ごとの回転オプションはありません(少なくとも1日)。

以下は から抜粋した内容です。猫/etc/logrotate.d/syslog

/var/log/NIPFW/MX480
{
        rotate 50
        daily
        copytruncate
        missingok
        notifempty
        compress
        delaycompress
        dateext
        maxage 30
        sharedscripts
        postrotate
                reload rsyslog >/dev/null 2>&1 || true
        endscript
}

答え1

クローンとログロテート

スクリプトは/etc/cron.daily/logrotatedailyフォルダにあります。

configファイルに移動してに/etc/cron.hourly変更する必要がありますdailyhourly

答え2

時間ベースのシステム属性はrsyslog適切に「$hour」と呼ばれます。この内容は次のように記録されます。rsyslog プロパティページ

したがって、次のようにテンプレートを変更して時間ごとのログファイルを生成できます。

$template TmplNationalIP_PL,"/var/log/NIPFW/MX480/CGNAT_PL_%$year%.%$month%.%$day%.%$hour%"

関連情報