
Ubuntu 14.04でrsyslogd 7.4.4を使用しています。構成ファイルを更新しました。/etc/rsyslog.d/30-comComponent.conf次のコンテンツが含まれています。
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
$EscapeControlCharactersOnReceive off
$outchannel network,/var/log/component/network.log,10240000,/usr/home/component/bin/./rotate.sh /var/log/component/network.log
if $programname == 'Network' then :omfile:$network
if $programname == 'Network' then stop
if $programname == 'Network' then /var/log/gwc/network.log
時々削除しなければならない時があります。ウェブログ手動提出。その後、常にデーモンを再起動する必要があります。問題は、誰かが適切なsyslogチャネル(私の場合は「ネットワーク」)に書き込むまで新しいファイルが生成されないことです。しかし、私は欲しいウェブログファイルが空であっても同じです。
しばらく前に、ほぼ同じ構成でUbuntu 10.04でrsyslogd 4.2.0を使用しました。唯一の違いは」~「で置き換え」止める「そして」:om ファイル:」が導入されました。そのバージョンではすべてが正常で、デーモンを再起動した後に新しいファイルが生成されます。
rsyslogd 4.2.0 の次の行により、ファイルが新しく作成されるようです。
if $programname == 'Network' then /var/log/gwc/network.log
しかし、7.4.4はうまくいかないようです。新しいバージョンを使用して以前のバージョンの動作をどのように達成できますか?
答え1
Rsyslog 5.x+は、このフィルタに一致するログエントリがあるまでファイルを作成したり、ネットワーク接続を開いたりしません。
これは、削除権限のトラブルシューティングに関連する以前の動作で行われた変更です。現在(8.5ベース)空のファイルを強制的に生成する方法はありません。
答え2
強制対数回転は、通常、ログロテートを使用して行われる。たとえば、rhel などのディストリビューションでは、/etc/logrotate.d/ にログローテーション設定があります。
例:/etc/logrotate.d/syslogにはrsyslogdファイルの規則が含まれています。この場合、次のようにログの回転を強制できます。
logrotate -f /etc/logrotate.d/syslog
答え3
logrotate -f /etc/logrotate.conf