전에 IIS 기반의 서버 로그를 분석하기 위한 Log Parser에 대해서 아주~~ 간단히 정리를 해 놓았었다.

Access log가 뭐고, 어떤 데이터가 있는지에 대해서는 제 책에 자세히 정리해 놓았으니 그 부분을 참조하시기 바랍니다.

그럼 이 Access log들을 어떻게 분석해야 할까?

보통 웬만큼 사용자가 있다는 사이트의 웹 로그는 1Gb가 넘는다. 그 1Gb가 넘는 데이터를 일일이 수작업으로 분석하기엔 너무 힘들다. (불가능하다.)

나는 필요한 데이터를 뽑아내기 위해서 로그 분석기를 직접 만들었는데, 그 분석기는 특정 데이터만 분석하기 때문에 다른 분들이 사용하기에는 적합하지 않아 여기에 올리진 않겠다. 그럼 어떤 분석 프로그램들이 있을까 ? 아래의 링크를 따라가 보면 여러 종류의 웹 로그 분석 툴의 목록을 볼 수 있을 것이다.
http://www.uu.se/Software/Analyzers/Access-analyzers.html 
직접 만드는 것 보다는 여기에 만들어 놓은 툴을 사용하는 것이 훨씬 낫다.

내가 가장 좋아하는 웹 로그 분석 툴은 다음과 같다.
awstat : http://awstats.sourceforge.net/ 
Analog : http://www.analog.cx
Webalizer : http://www.mrunix.net/webalizer

이 중 가장 최근까지 업데이트 된 툴은 awstat이다.  각 툴의 사용법은 각 사이트의 튜토리얼 문서를 참조하면 쉽게 알 수 있을 것이다.

신고
Posted by tuning-java Trackback 0 : Comment 0

예를 들어서 다음과 같은 데이터가 있을 때 (여기서 A 는 열의 이름)

A

aaa
aaa
bbb
ccc
ddd
ddd
eee
fff

각 항목, 그러니까 aaa, bbb, ccc, ddd, eee, fff 가 몇개인지 확인하는 방법은 다음과 같다.

이 경우 데이터가 몇개 안되니까 눈으로 보면 되지만, 만약 Access log와 같이 URL 데이터가 많이 있을 때, 어떤 URL이 많이 호출되는지를 확인할 때 그걸 일일이 더하는건 바보같은 짓이다.

1. 가장먼저 해당 열을 다른 시트에 복사한다.

2. 그 다음 다른 시트의 A 열을 클릭한 후(A 열을 모두 선택하도록...)

3. 메뉴에서 "데이터 --> 중복된 항목 제거"를 선택한다. 그럼 다음과 같이 된다.

A

aaa
bbb
ccc
ddd
eee
fff

4. 그럼 우리가 원하는 각 항목들만 남아있게 된다. (중복된걸 제거 했으니까)

5. 마지막으로
추가된 시트의 B 행에 다음과 같이 수식을 추가한다.
=COUNTIF(원본탭!A:A,A2)
여기서 "원본탭" 은 원래 중복된 항목을 제거하지 않은 탭의 이름.
A:A는 중복된 항목을 제거하지 않은 열
A2는 중복된 항목이 제거된 셀의 위치이다. 여기서는 aaa가 있는 셀의 이름이다.

6. 이 식을 아래 줄에도 복사하면 모든 작업이 끝난다.

^^;

신고
Posted by tuning-java Trackback 0 : Comment 5

일단 다음의 링크를 클릭하면 Microsoft Log Parser 2.2를 다운로드 받을 수 있으니, 없으면 받자.

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en

설치를 하면 LogParser.exe파일이 지정한 디렉토리에 생성될 것이다.


간단한 예제를  보려면 아래 링크를 클릭하자.

http://www.microsoft.com/technet/scriptcenter/tools/logparser/lpexamples.mspx

약간 특이한 툴이라는 것을 직감할 수 있을 것이다.

쉽게 이야기하자면, IIS 서버와 같은 웹서버의 로그를 Query(쿼리) 형태의 질의어를 통해서 원하는 형태의 파일로 정리해 주는 유용한 툴이다.

Window IIS의 로그파일이 있는 곳(여기서는 54.log가 로그파일이다.) 에서 다음과 같은 명령을 수행해 보자.
"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT * FROM 54.log TO 54.csv"
이렇게 하면 모든 로그를 54.csv라는 파일에 엑셀에서 볼 수 있는 CSV 파일 형태로 변환해 준다.

자세한 내용은 나중에 시간 있을 때 정리해야 겠다.

신고
Posted by tuning-java Trackback 0 : Comment 0

기본적으로 웹 서버에 설정되어 제공되는 웹로그에는 응답시간이 나오질 않는다.

그런 단점을 해결하기 위해선 로그를 수정해야만 제대로된 응답시간 분석이 가능하다.

어떤 옵션을 수정해야 하는지 다음의 링크를 통해서 확인해 보기 바란다.

http://httpd.apache.org/docs/2.0/mod/mod_log_config.html#formats

자세한 내용은 책에 있다. ㅋㅋㅋ

신고
Posted by tuning-java Trackback 0 : Comment 0