Apache の Web サーバー アクセスログの記載内容を把握してログ解析しよう

2015/09/09

一般的なホームページといった Web サイトの作成や、Web アプリを運営していく上で、何か問題が生じたときには、ログを解析する作業が必要になります。全てのアクセス情報が記録されているため、ログ明細数が何十万行にも渡るケースもありますが、答えにたどり着く一番の近道であることも確かです。

企業内システムの場合だと、システム障害等が起こって機能が停止してしまった場合は、いち早く復旧するために努めるのはもちろんなのですが、システム管理者は再発を防止するために、ログを解析し根本的な原因を求めることも重要な任務となります。

さて、今回は Apache の Web サーバーにおけるアクセスログの記載内容について説明します。

Web サイト運営者のためのアクセスログ解析

Web アプリ開発者であれば、最低限のログ記載事項は把握していると思うので、今回は ロリポップ!エックスサーバー 等のレンタルサーバー で Web サイトを運営している人向けの説明に重点を置きますので、その点ご了承ください。なお、ログ内容部分については、一般的な Web アプリの解析と同等となりますので、そちらは参照いただけると思います。

レンタルサーバーのアクセスログ取得方法

レンタルサーバーを借りている場合は、管理画面から閲覧できるようになっているケースがあります。参考として、ロリポップとエックスサーバーでの確認方法を記しておきます。

ロリポップレンタルサーバーの場合

  1. ユーザー専用ページへアクセスしログイン
  2. メニュー [Webツール] → [アクセスログ] を選択
  3. ログを取得する対象のアドレスを選択し、アクセスログページへ移動
  4. アクセス解析画面が表示されるので、画面一番下にある「生ログファイル ダウンロード」からログファイルをダウンロードする

エックスサーバーの場合

  1. サーバーパネルへログインする
  2. メニュー「統計」の [ログファイル] を選択
  3. ログを取得する対象のドメインを選択
  4. 選択したドメインに対する対象のサイトを選び、ログファイルをダウンロードする

※ その他のレンタルサーバーについては、各運営会社のサポートページよりアクセスログの取得方法を参照ください。

Apache の Web サーバー アクセスログ内容

実際にログを直接参照すると、Google Analitics のような統計解析ツールでは分からない情報まできちんと識別し判断することができます。さて、ではアクセスログのサンプルをご覧ください。

192.168.11.3 - - [09/Sep/2015:01:47:22 +0900] "GET /good-taste-nashi-sui/ HTTP/1.1" 200 7974 "http://nj-clucker.com/tanbo-art-2015-star-wars/" "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"

ダブルクォーテーションで括られている部分は 1つの出力項目として、項目間のセパレーターに半角スペースが用いられています。2項目目、3項目目はハイフンが出力されていますが、これもきちんと意味があります。それでは1つずつ分解してみましょう。

アクセスログ項目別の説明

出力項目サンプル例
出力内容
IPアドレス192.168.11.3
アクセス元の IPアドレスです。このアドレスによりどこからアクセスされたか識別できます。IPアドレスによるアクセス拒否を行う場合は、この情報を元に設定を行います。
クライアントユーザ名
未設定の場合「-」が出力されます。一般的な Web サイトへのアクセスの場合、未設定となるケースが多いです。 IDENT プロトコルを利用し、メール送信時によく利用される項目です。
認証ユーザ名
認証されたユーザ名を出力します。未設定の場合「-」が出力されます。
アクセス時刻[09/Sep/2015:01:47:22 +0900]
Web サーバーへアクセスした日時の情報です。後ろの「+0900」はタイムゾーンを表します。日本の場合は +9:00 なので、このように表現されます。
リソース"GET /good-taste-nashi-sui/ HTTP/1.1"
どのリソースに、どのプロトコルで、どのようなアクションをしたかを表します。アクセス先の情報「/good-taste-nashi-sui/」を表示する場合、ドメイン情報は出力されません。このログでは、HTTP 1.1 で以下のページを表示するために、情報を取得しにきたと判定できます。
エルビーの「なし水」が好きすぎて牛乳と混ぜてみたら激ウマだった
ステータス200
200 は正常終了を表します。有名なコードでは、404 の Not Foud や 500 の Internal Server Error が挙げられます。Web サイト運営者であれば、リダイレクトを示す 301 や 302 もご存知かもしれません。どれも同じ仲間です。
転送量7974
アクセスしたリソースに対する転送量です。単位は byte となります。
リファラ"http://nj-clucker.com/tanbo-art-2015-star-wars/"
アクセス元の URL を表します。このログから、以下のページから遷移してきたことが分かります。
青森県田舎館村の田んぼアートを見たらB級グルメの黒石つゆ焼きそばも食べよう!
ユーザエージェント"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"
どの OS から、どのブラウザでアクセスしたかを表します。Windows NT 6.0 と出力されているので、Windows Vista もしくは Windows Server 2008 からのアクセスとなります。またブラウザは Chrome からのアクセスであると分かります。検索エンジンの bot からアクセスがあった場合は「Googlebot」のようにエージェント情報に出力されます。

アクセスログの構成が分かれば、あとは様々な角度から解析が行えるようになります。まずはこの基本情報をきちんと把握することが大切です。今回紹介したログのフォーマットは基本的なフォーマットであるため、環境によってはログの設定により異なるケースがありますので、ご了承ください。

このブログの運営者

気力・体力勝負なシステム業界のエンジニアを経て、個人事業主として独立。Web サイト運営、動画制作など活動の場を広げています。目指すところへの道のりは険しいですが、自分が自分らしくあるために、一歩ずつ進んでいきます!

このブログでは、困ってたどり着いた人に、分かりやすく答えを提供できるように心掛けています。更新情報は、Twitter や Facebook ページを参照ください。よろしければフォローお待ちしています。

Facebook ページ NJ-CLUCKER
このブログが役に立ったら
「いいね!」お願いします

最近のエントリー

Switch の画面がオレンジになって動かなくなった場合の対処法の1つ!セーブデータを保持したまま本体を初期化する!

プラグインを使わず WordPress の投稿ページで PHP の外部ファイルを呼び出す方法

Feedly ボタンが機能していない?!正しい URL の情報に変更する方法

Twitter で過去のツイートを閲覧・削除する方法

赤ちゃんが泣き止む動画「ふかふかかふかのうた」は生後3ヶ月の赤ちゃんにも効果抜群だった!

これで迷わない!東京ディズニーランドの喫煙所マップ一覧【写真付き】

iTunes でアートワークが反映されないのは WAV 形式が原因!AAC に変換すれば反映される!

【徹底比較】WiMAX 2+ ギガ放題プランの最安値はどこ?【2017年10月版】

おすすめのモバイルルーター・ポケット WiFi を比較!選ぶポイントは利用目的に合わせること!

公共料金の支払いはクレジットカードと口座振替のどっちがお得?