読者です 読者をやめる 読者になる 読者になる

標準出力

新しいもの、変わらないこと 自分の頭を通して考えてみました (stdout)

ログについて

サーバーを構築したらすることそれは証拠を残す事。
今回は、カーネルからのログを例にまとめてみる。

まずは、何のログをどういう重要度のログを記録するか?
[1] kernelのログで重要度notice以上のログを取る (syslogの設定)
まず、ログファイルを作成しておく。(勿論以下は、rootで)
    touch /var/log/kernel.log
次に/etc/syslog.confに以下を追加
    kernel.notice                                   /var/log/kernel.log
noticeの後は、タブでセパレートするのがポイント。設定を反映させるために下記コマンドを実行。
   /etc/rc.d/syslogd

[2] ログローテーション
Linuxの場合は、logrotateだけど FreeBSDの場合は、newsyslog
設定ファイルは、「/etc/newsyslog.conf」書き方の詳しい説明は「man newsyslog.conf」に載っている。ここでは、以下を追加。
/var/log/kernel.log                     644  5     100  *     JC

この意味は、ログファイルPATH Permission ローテーション回数 100K Byteになったらローテートする。JCは、Jがbzip2で圧縮。 Cは、ファイルが無い場合は作成、を意味する。

そして、設定を反映させるために
newsyslogを実行

[おまけ] apacheのログをローテート
「/etc/newsyslog.conf」に以下を追加

/var/log/httpd-access.log               644  4     *    $W5D18 JC /va/run/httpd.pid
/var/log/httpd-error.log                644  4     *    $W5D18 JC /va/run/httpd.pid
「*    $W5D18」*の意味は、ログファイルのサイズを指定しないという意味。$5D18の意味は、毎週金曜日の18:00にローテートするという意味。
この設定の場合1ヶ月でログファイルが消えていく事になる。