syslog-ng 中央ログホストから rsyslog に移行中です。最近CentOSリポジトリでsyslog-ngを見つけることもできません。ホスト名と施設ごとにログをフィルタリングしたいです。
syslog-ngでこれを行う方法は次のとおりです。
destination std {
file("/var/log/HOSTS/$HOST/$YEAR/$MONTH/$DAY/$FACILITY_$HOST_$YEAR_$MONTH_$DAY"
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes)
);
};
rsyslogを使ってこれを行う簡単な方法はありますか?
答え1
これは、以下のようにテンプレートを介して行われます。
$template HostDynFile,"/var/log/HOSTS/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DAY%/%syslogfacility-text%_%HOSTNAME%_%$YEAR%_%$MONTH%_%$DAY%"
その後、出力セレクタ行を定義するときにこのテンプレートを使用できます。たとえば、次のようになります。
*.* -?HostDynFile
詳しくはこちらをご覧ください。rsyslog を使用した CentOS と RHEL 5 での中央ログホストの構築