0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アクセスログに記録される時刻について

Posted at

問題

ウェブアプリケーションで処理に時間がかかることがあり、その調査を行っている。
その時、アクセスログをもとに原因を特定しているのだが、利用しているミドルウェアによってアクセスログに記録されている時刻が異なっていて混乱したので、その内容を示す。

利用しているアーキテクチャ

今回のアーキテクチャは CloudFront -> nginx -> Apache の構成になっていて、それぞれでアクセスログを出力している。

アクセスログ時刻の仕様

違いをまとめると以下の通り。 Apache は「受信時刻」だが、CloudFront/Nginx は「レスポンス完了時刻」を示すことが大きく違う。

項目 CloudFront Nginx Apache
時刻フィールド date + time $time_local %t
ログの時刻の意味 レスポンス完了時刻 レスポンス完了時刻 リクエスト受信時刻
ログ出力のタイミング レスポンス完了後 レスポンス完了後 レスポンス完了後
公式ドキュメント CloudFront 標準ログ仕様 Nginx $time_local Apache ログファイル

そのため、例えば

  • クライアントからのリクエスト開始は 00:00:00
  • Apache での処理に3秒程度かかる
  • クライアント - CLoudFront - Nginx - Apache 間の通信のオーバーヘッドは考えないものとする

といった条件でログを記録した場合、ログの時刻記録は以下のようになる。

  • CloudFront: 00:00:03 (※time-taken などのリクエスト全体にかかった時間を知るための記録もあり、こちらには3秒が記録される)
  • Nginx : 00:00:03
  • Apache: 00:00:00

この仕様を知らないと、ログ時刻を誤って読み取って異なる結論を導き出してしまうので注意すること。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?