何気にログを見ていて違和感、そういえばログローテートの設定変えてなかったなと気づき設定しました。
サーバを4月頭頃から稼働し始めて、ふとApacheのログを見ようとしたところ
ログローテートの設定を一切変更してないことを思い出したので設定しました。
いつの頃からだったか、CentOSのcron実行時間が微妙に(一定時間内で)ランダムに
なっており、必ず同じ時間にログがローテートされないということがありました。
これって、ログから証跡を追う場合に面倒なんですよね。
例えば4月2日午前2時のログを見たいのに、ローテートされた時間が午前4時だと
確認出来るのは前日のログファイルになってしまったり。
時間がはっきりしてればいいですが、日によって4時だったり2時だったりすると
そのログが何時にローテートされたか確認してからでないとログを見れなかったり…
これはCentOS6で採用されたanacronというサービスが原因で、このサービスについて
調べたのが数年前なので正確なことは忘れてしまいましたが、ある程度時間幅を持たせ
一番PC(サーバ)の負担が少ない時間にcronへ登録されている処理を行いましょう
ってサービスだったはず。
でもそんなことされたらサーバ運用者や管理者にとっては困ってしまうので、
通常は時間幅をなくすか、anacronをアンインストールしnoanacronというサービスを
インストールすることでこれまでと同様の運用を行うようにするんですね
今回は私もそれに倣い、noanacronをインストールし日次で実施されるcronの時間を
固定化しました。
行ったのは以下の作業
まずnoanacronをインストールします。
# yum install cronie-noanacron
次にnoanacronをアンインストールします。
# yum remove cronie-anacron
日次実行のcronの設定を変更します。
変更の前に元々の設定を確認します。
# cat /etc/cron.d/dailyjobs
02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
上から日次、週次、月次に実行される時間となります。
毎日04時02分に実行するもの、毎週04時22分に実行するもの、毎月04時42分に実行するもの。
これを以下のように修正します。
# cat /etc/cron.d/dailyjobs
0 0 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
0 0 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
0 0 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
これで、毎日0時、毎週日曜日0時、毎月1日0時にログローテートが実施されるようになりました。
※ここではcronの見方は割愛しています。
仕事だとOSで設定するリスト、ミドルウェアで設定するリストなどの作業リストを作成してから
業務に取り組むものの、個人的なサーバだととりあえず動くもの、見せれるものとして
公開しちゃうからこの辺り忘れがちになっちゃいますね。
次サーバ作る時はこの辺りのタスクをリスト化してから取り組むことにしよう。
今回参考にさせて頂いたサイトはこちら