2009-06-22 5 views
14

아파치 웹 서버가 있는데 특정 사용자가 특정 페이지에 액세스 할 때 타임 스탬프가 일치하지 않는 로그 행이 있습니다.아파치 로그 라인이 순서가 어긋나는 것처럼 보입니다 - 왜?

샘플 출력 :

IP1 - - [22/Jun/2009:12:20:40 +0000] "GET URL1" 200 3490 "REFERRING_URL1" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)" 

IP2 - - [22/Jun/2009:12:11:47 +0000] "GET URL2" 200 17453 "-" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.11) Gecko/2009060214 Firefox/3.0.11" 

IP3 - - [22/Jun/2009:12:20:41 +0000] "GET URL3" 200 889 "REFERRING_URL2" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; 3P_USEC 1.0.11.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" 

(나는 IP를 요청 익명으로 한 - URL을 요청, IP1, IP2 및 IP3을 - URL1, URL2 및 URL3을, 두 referrrer의 URL)

에게

으로 될 수 세 줄 (이 순서대로 로그에 표시됨)이 보이지 않고 동기화되지 않습니다. 이것은 IP2가 URL2를 요청할 때만 발생하며 다른 모든 로그는 정상적으로 보입니다.

아이디어가 있으십니까?

답변

20

요청이 완료되면 로그가 기록되므로 초기 요청이 늦은 요청 이후에 기록 될 수 있습니다. 요청을 처리하는 데 걸린 시간을 마이크로 일 단위로보기 위해 % D를 둘러보기 LogFormat 정의에 추가하십시오.

더보기 here

0

아마도 어떤 종류의 COMET 요청을하고 있습니까?

내 첫 번째 생각은 로그가 요청이 완료된 시간 만 기록한다는 것입니다. 그래서 IP1의 요청은 완료하는 데 다소 시간이 걸렸지 만 IP2 이전에 도착했습니다. 내가 아는 바로 그 요청은 AJAXey Comet 요청입니다.

아마도 정답이 아닐 수도 있습니다.

편집 : http://www.linuxquestions.org/questions/linux-networking-3/apache-log-entries-order-516354/은 로그의 시간에 콘텐츠를 브라우저로 전송하는 데 필요한 시간이 포함되어 있음을 확인합니다.

+0

아니, 이국적인 것. 더 나아가 문제의 기기는 모바일 기기 (IP로 이동) 인 것처럼 보이지만 문제의 페이지 (총 210k)가로드되는 데 약 9 분이 걸리는 것이 이상하게 보입니다. – PaulJWilliams

+0

그렇지 않을 수도 있습니다. 대역폭 절약을 위해 데이터를 가져 오는 게으름 일 수 있습니다. 페이지 전송이 필요할 때까지 서버가 메모리에 내용을 유지하도록합니다. (야생 추측) 나는 야생에서 이것을 보지 못했지만 이해가된다. –

관련 문제