Apacheのアクセスログを理解する


134

アクセスログのこの行のそれぞれの意味は何ですか?

127.0.0.1--[05 / Feb / 2012:17:11:55 +0000] "GET / HTTP / 1.1" 200 140 "-" "Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 535.19(KHTML、like Gecko)Chrome / 18.0.1025.5 Safari / 535.19 "

回答:


237

結合されたログ形式を使用しているようです

LogFormat "%h%l%u%t \"%r \ "%> s%b \"%{Referer} i \ "\"%{User-agent} i \ ""の組み合わせ

  • %hはリモートホスト(つまり、クライアントIP)です
  • %lは、identdによって決定されたユーザーのIDです(信頼できないため、通常は使用されません)。
  • %uは、HTTP認証によって決定されるユーザー名です。
  • %tは、要求が受信された時間です。
  • %rはクライアントからの要求行です。( "GET / HTTP / 1.0")
  • %> sは、サーバーからクライアントに送信されるステータスコードです(200、404など)。
  • %bはクライアントへの応答のサイズ(バイト単位)
  • Refererは、HTTPリクエスト(このリクエストが開始されたページのURLを含む)のRefererヘッダーです(存在する"-"場合)。
  • ユーザーエージェントは、ブラウザの識別文字列です。

フォーマッタの完全な(?)リストはここにあります。ドキュメントの同じセクションには、他の一般的なログ形式もリストされています。ログがこのように見えない読者は、Apache設定が使用しているパターンをそこにリストするかもしれません。


ユーザーエージェントの後ろの最後の数字(19)はどうなるのだろう。
ivanceras 2013

2
@ivanceras 535.19は使用されているWebkitのバージョンなので、ユーザーエージェント文字列の一部です(ユーザーエージェントを含む引用符の中に配置されています)
Joachim Isaksson 2013

4
次のように、ユーザーエージェントの後に4つの追加フィールドがあります。... "Mozilla / 5.0(Windows NT 5.1; rv:16.0)Gecko / 20100101 Firefox / 16.0" 369 74500-567それらは何を示していますか?
私のaccount_ram 2014年

9

また、ログの200 140セクションの後の「-」の意味が理解できません。

その値は、ヨアヒムによって記述されたリファラーに対応します。ダッシュが表示されている場合は、最初にリファラー値がないことを意味します(たとえば、ユーザーがブラウザーにURLを入力した場合など、ユーザーは特定の目的地に直行しました)。


7

そして、「Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 535.19(KHTML、like Gecko)Chrome / 18.0.1025.5 Safari / 535.19」はどういう意味ですか?

これは、ブラウザ識別文字列であるUser-Agentの値です。

このため、ほとんどのWebブラウザは、次のようにUser-Agent文字列値を使用します。

Mozilla / [バージョン]([システムとブラウザの情報])[プラットフォーム]([プラットフォームの詳細])[拡張機能]。たとえば、iPadのSafariでは次のように使用しています。

Mozilla / 5.0(iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)AppleWebKit / 531.21.10(KHTML、like Gecko)Mobile / 7B405この文字列のコンポーネントは次のとおりです:

Mozilla / 5.0:以前は、Mozillaレンダリングエンジンとの互換性を示すために使用されていました。(iPad; U; Mac OS XのようなCPU OS 3_2_1; en-us):ブラウザが実行されているシステムの詳細。AppleWebKit / 531.21.10:ブラウザが使用するプラットフォーム。(GeckoのようなKHTML):ブラウザプラットフォームの詳細。モバイル/ 7B405:これは、ブラウザーで使用され、ブラウザーで直接、またはサードパーティを介して利用できる特定の拡張機能を示します。この例としては、Microsoft Live Meetingがあり、拡張機能を登録して、ソフトウェアが既にインストールされているかどうかをLive Meetingサービスが認識できるようにします。つまり、会議に参加するための合理化されたエクスペリエンスを提供できます。

この値は、エンドユーザーが使用しているブラウザを識別するために使用されます。

参照


私の負荷分散環境では、Apacheロードバランサーサーバーの背後に4つのサービングノードが隠れています。最近、利用できない問題が発生しています。デバッグ中に、ロードバランサーで504ステータスのアクセスログが見つかりました。こんな感じです {Ipアドレス}--[date] "POST url http / 1.1" 504 247 "-" "-"ここで、4つのアプリケーションサーバーノードの1つが他のノードよりも頻繁にタイムアウトを与えると思います。しかし、これらのログは、要求が転送されてタイムアウトになったサーバーを特定する手掛かりを与えません。リクエストの転送先のノードのIPをログに記録するにはどうすればよいですか。
教授

次のオプションを提案します。a)ロードバランサーログを有効にして確認します。b)各VMのメモリ使用率、CPU、IOを確認し、それらがすべて同じかどうかを確認します。c)特定の日の各VMのリクエスト数をカウントします。それらはほぼ同じでなければなりません。そうでない場合、Load Balancerはサーバーがpingに応答しないことを検出する可能性があるため、要求を送信しません。
vsingh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.