前のページに戻る


7/03 アクセスログ

 アクセスログを解析。
 標準のログは、/var/log/にあります。

 とりあえずよく使うものを紹介。
 それとログファイルはroot権限がないと見ることができません。

 messages:今までのエラーメッセージなどが記されています。

 secure:権限のないファイルに触れた、等というログがあります。

 maillog:そのまんまメール関係のログです。

 xferlog:外部からの接続の際など。FTPログなどが入っています。

 また、それぞれのログには〜.1〜.2などというファイルがあります。
 これはcronというサービスによって、1週間ごとにログの新ファイルを作って保存しているためです。
 デフォルトでは4つまでとなっているため、最大で5週間までログが保存されていることになります。
ちなみに.4が一番古いログとなります。


 cronに関する設定

 ログの保存などに関わるcronですが、これは毎月何日何時何分にこの命令を実行しろ、といった自動でサービスを起動するためのサービスです。

 /etc/crontabでcronの設定は行われています。  このファイルを開くと以下のような記述があります。

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


 まず左の5つに分かれた数字は、左側からそれぞれ、分・時間・日・月・曜日を表します。

 つまり一番上は毎時01分に、上から2番目は毎日4時02分にサービスを実行するわけです。
 また曜日は0が日曜で、そのまま月・火・水・・と続きます。
 ちなみに、コンマで区切れば1時間に2回、5分と35分に起動、とかいうことも可能です。

 さて、右側にあるのはcronが実行するファイルの入ったディレクトリを示します。
 このディレクトリに入っているファイルに指定されたものを実行するわけです。

 たとえばうちのcron.dailyにはlogrotateという実行ファイルがあります。内容は以下の通り。

#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf


 毎日4時2分にこれを実行しているわけです。
 このようにしておくと、自動で色々やってくれてお得、というサービスなわけです。cronというのは。
 ちなみにこのlogrotateは上で述べたアクセスログと関係の深いもので、以下で説明を行います。

 また、このディレクトリ指定の部分にはサービス名をそのまま入れることも可能です。シェルスクリプトを作って、それをcronで指定する形にするのがいいかと思います。


 logrotate

 logrotateの設定は、/etc/logrotate.confで行います。
 だいたいこんな感じのファイルが入っているはずです。

 デフォルトでもいいような感じがします(笑)
 weekly週ごとにログファイルを作成する、ということです。
アクセス数が少ないサイトであればこれがmonthlyでもかまわない気がしますし、多ければdailyでもいいでしょう。weeklyが一番適当な気はしますけど。

 rotate 44つまでログファイルを作成する、ということです。ファイル数がそれ以上の数になると古いものから削除していきます。

 errors rootエラーがあった場合ルートに知らせる、ということです。
 これはsendmailが入っていれば(デーモンが動いていなくてもいい)自動的にエラーメッセージをルートに対してメールで送るようになります。

 compressログを圧縮して保存する、ということです。僕は使っていません。