エラーログを活用する

ここでは、apache(アパッチ)のアクセスログのうちのエラーログを読む時の基本を説明したいと思います。

アクセスログはアクセスがあった結果を羅列したものです。 その中には、アクセスが失敗したものも含まれます。 エラーログは、Webサーバがサービスを行ううえで何らかのエラーが発生した際に記録されます。 アクセスログ解析を行う場合、成功したアクセスだけではなくエラーログも同時に活用して、よりきめ細かい解析が行うと良いでしょう。

アクセスログに保存されている情報

エラーログには「失敗した事象」に関する情報が入っています。 「失敗した」という事象のうち、私が良く注目するのは以下の3種類の情報です。

  • 存在しないファイルを要求された
  • CGI、SSI、PHP、その他スクリプトが失敗した
  • apache自体が失敗した

以下、上記3種類の情報の注目の仕方を説明したいと思います。

存在しないファイルを要求された

エラーログに「File does not exist」という風なメッセージとともに要求されたパスが記述されているのが存在しないファイルを要求された場合です。 このエラーが最も良く見るエラーであると思われます。 「File does not exist」はアクセスログ側では404エラーとして記録されている場合が多いです。 このエラーメッセージには色々な活用方法があります。

まず、このエラーメッセージを活用してリンク切れを発見できます。 例えば、サイト内であるファイルの名前を変えたとします。 古いファイル名でリンクを張っているページの修正を忘れた場合、そのリンクを辿った人は移動後のファイルを発見できずにエラーになってしまいます。 その時のエラーログを見ると「古いファイル名でアクセスしている人がいる」という事がわかります。 さらに情報を得るためにはアクセスログも活用します。 アクセスログには「どこからたどったか」という情報を表すリファラー情報が含まれるためリンクの修正し忘れ箇所を特定できます。

古いファイル名でリンクを張っている場所が自分で管理しているサイトでは無い場合にも対処ができます。 古いファイル名で「このファイルは移動しました」または「引っ越しました」といったメッセージを置くことで、正しく新しいページへユーザを誘導できます。

favicon.icoやrobots.txtのように、とりあえず決まったファイル名のものを探すWEBクライアントにより発生させられるエラーログエントリもあります。 favicon.icoは「お気に入り(ブックマーク、bookmark)」などに添えられるアイコンイメージを取得するためのアクセスです。 favicon.icoというファイルが存在すれば、ユーザのお気に入りの中にそれが表示されます。 robots.txtは、検索エンジンがクローリングするときに自動的に取得しようとするファイルです。 この中に、「この部分は読まないでください、この部分は検索エンジンに載せないで下さい」といった記述が出来ます。 robots.txtが存在しない場合、検索エンジンは気にせずリンクを辿ってクロールしていきます。

CGI、SSI、PHP、その他スクリプトが失敗した

スクリプトが失敗した場合にもエラーログに記録されます。 CGIなどのスクリプトを書いている時にはエラーを見て対処ができるので重宝します。 また、すでに作成し終わったスクリプトを動かしている時にも、このエラーを利用できます。 ただし、すでに動かしているスクリプトがエラーで終了しているという状況は好ましくないので、エラーログでスクリプトのエラーを発見したら早急に対処するようにしましょう。 場合によっては、そのエラーを利用してホームページを改ざんされたりすることもあり得ます。

apache自体が失敗した

自分でapacheを管理している場合以外はあまり目にすることは無いと思いますが、apache自体が失敗した場合でもエラーログに記録が残ります。 私が良くやってしまうのは、httpd.confファイルの記述を間違えてapacheを起動しようとしてみたり、ログファイルへのパス(path)が間違っているためにapacheの起動が失敗してその記録がエラーログに記述されるというものです。 その場合には、エラーログに記述されている内容を見てエラーに対処するようにしています。


IPv6基礎検定

YouTubeチャンネルやってます!