ルータログを日単位でローテイトする。

Linux

ルータのログをLinuxにrsyslogを利用して転送している。
ログファイルはローテイトしないと、肥大するばかりである。ログをローテイトすることにより、古いファイルを削除してディスクの逼迫を回避できる。

ログをローテイトする設定ファイルを作成する。

ルータのログをローテイトするためのrouterファイルを新規で作成する。

   ① ローテイトして、新しいファイルのパーミッションの設定。
   ② 日単位でローテーションする。
   ③ 7日間ログを保存する。
   ④ ログファイルが存在しなくてもエラーを出さずに処理を続行する。
   ⑤ ログファイルが空ならローテーションしない。
   ⑥ ローテーションしたログを圧縮する(⑦が有るため当日は圧縮しない)。
   ⑦ ログの圧縮作業を次回のローテーション時まで遅らせる。compressと共に指定する。
   ⑧ ログファイルをコピーし、元ファイルを空にする。
     (書き込むサービスを再起動しないが、念のため。)

 

デバックモードでlogrotateを実行する。

/var/log/router/messages.logファイルが処理されるか確認する。

 

まとめ

日ごとにログをローテイトして、すぐに圧縮してしまうとローテイトしたファイルを入力とするプログラムがある場合、解凍して処理する必要が有るため、圧縮は次回のローテイトの時に行うのが良いと思われる。