月次の保守報告書で、再起動回数を報告することにしているのですが、これを出来るだけ自動化したいと思います。
環境はCentOS 6系です。
last reboot
で最近の再起動の状況は見ることが出来るのですが、
reboot system boot 2.6.32 Thu Jan 7 08:33 - 21:50 (50+13:17) reboot system boot 2.6.32 Thu Jan 7 08:12 - 08:32 (00:20)
こんな感じで、年の出力がないので、稼働が長くなってきて、1年以上経つと「前月」という指定が出来なくなってしまいます。
そこでもう一つのmessagesの中のshutdownを見つける、という方法を採用します。
まず、messagesがどのように保存されているか確認します。ログが適切に保存されていなくては、得たい情報が得られないということになりかねません。
/etc/logrotate.d/syslog
を見ると、
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }
となっており、ローテーションの指定自体はありませんので、デフォルトである、
/etc/logrotate.conf
の設定に従ってローテーションするってことですね。内容を見てみます。
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 } # system-specific logs may be also be configured here.
本当はmonthlyとして月次にするとすっきりだし、messages.1だけ分析すればいいので、そうしたいところではありますが、messagesは大きなログファイルなのでmonthlyにして他のログが扱いにくくなるのも避けたいところです。ですので、weeklyのままにしておこうと思います。
すると、月次報告の対象をどうするか悩みどころです。実際にはほとんど再起動は発生しませんので、直近5週分を前月として扱うことにし、messages.5に再起動がカウントされたときには、内容を見て判断する方針にしました。
もう一つ、ローテーションの数が4なのは困ります。上の方針とも合いませんので、5以上を設定することにします。
設定を追記するのは、
/etc/logrotate.d/syslog
こっちの方です。デフォルト設定を変更すると、それを前提に設定しているlogrotate.d以下の各設定ファイルにも調整が必要になってくる可能性があります。ご注意ください。
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { rotate 5 sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }
「rotate 5」を追記しています。
これで、
/var/log/messages
/var/log/messages.1
/var/log/messages.2
/var/log/messages.3
/var/log/messages.4
/var/log/messages.5
と週次のログファイルが作成されるはずです。
記事がながくなってきたので、今回はここまでです。