라이센스 GPL2
기타 라이센스 
적용 버전 상관없음

접속 통계 모듈의 첫번째 알파 버전을 공개합니다. 아직은 원하는 모든 기능을 작성하지는 못했고, 기본적인 틀만 완성한 상태입니다.

처음 계획은 원대하였으나, 그 결과물은 미약하기만 합니다. 역시 계획대로 되는 것은 없는 것 같습니다.

이 접속 통계 모듈을 이용해서 홈페이지에 접속하는 사람들의 기본적인 동작들을 기록할 수 있고, 통계 낼 수 있습니다. 수집하는 정보는 접속한 시각, IP 주소, 브라우저 정보, 접속한 페이지 정보, 리퍼러 정보, 검색어 정보 등입니다. 이렇게 수집된 정보들은 각 필요에 따라 분류되며, 이렇게 분류된 통계 정보는 접속 카운트 통계, 방문자 통계, 브라우저 통계, 리퍼러 통계, 검색어 통계, 페이지 통계, 블럭 통계 등을 통해 볼 수 있습니다.

설치 방법

아래 파일을 내려받아서 압축을 풀면, 두 개의 디렉토리가 나오게 됩니다. 하나는 addons 디렉토리고, 다른 하나는 modules 디렉토리입니다. 이 디렉토리들 아래에 가면 각각 statistics 라는 디렉토리가 있으니, 이 디렉토리 전체를 XpressEngine이 설치된 디렉토리 아래의 ./addons 디렉토리와 ./modules 디렉토리에 복사하면 됩니다.

  • statistics-1.0.1a.zip (715.5KB)
  • statistics-1.0.1a.tar.gz (673.4KB)

설정 방법

Statistics 모듈과 애드온 파일들을 복사한 후에 관리자 페이지에서 Statistics 모듈을 설치해주시기 바랍니다. Statistics 애드온을 실행하기 이전에 반드시 모듈을 먼저 설치해야 합니다. 모듈 설치가 성공적으로 끝나면, 이제 애드온 탭으로 넘어가서 Statistics 애드온을 실행해주면 이제부터 접속 정보를 수집하여 통계를 내게 될 것입니다.

다시 한번 말씀드리지만, 접속 통계 모듈을 사용하기 위해서는 위에서 내려받은 애드온과 함께 설치해야 동작이 가능합니다. Statistics 애드온을 설치하고 동작하도록 설정해야만 접속 정보들을 수집할 수 있고, 이를 통해 접속 통계 정보를 확인할 수 있습니다.

기능 설명

요약 정보


1.png 

현재는 요약 정보에서 최근 10일 동안의 접속 통계 기록과 5개의 방문자 정보, 리퍼러 정보를 보여주고 있습니다. 추후에 이 페이지에서는 그래프를 통한 간략한 통계를 보이도록 할 계획입니다.

통계 정보


2.png 

접속 카운터 정보를 보여줍니다. 여기에서 New Visitor 항목은 지금까지 한번도 이 홈페이지에 접속하지 않았던 사람의 접속을 나타냅니다. 그리고, Robot 항목은 접속한 방문자의 User Agent를 분석해서 로봇이라고 판명된 경우 이를 기록하는 것입니다. 자세한 내용은 모듈 설정 설명에서 이야기하겠습니다. Block 항목은 모듈 설정을 통해 블럭이 된 접속을 나타냅니다.

"기간 선택"을 통해 통계 정보를 보여주는 단위를 설정할 수 있습니다. 기본값은 일 단위이고, 월 단위, 연 단위가 있습니다.

로그 정보


3.png 

기 록된 접속 로그를 보여줍니다. 여기에서는 접속자의 접속 시각, IP 주소, 사용 브라우저, User Agent, 리퍼러, 검색어, 접속한 mid, 문서 정보 등을 보여줍니다. 모듈 설정에 따라, 관리자의 접속과 로봇의 접속 로그는 기록하지 않을 수 있습니다.

"UA 선택"을 통해 사용자 접속 로그와 로봇의 접속 로그, 그리고 모든 로그를 보이도록 설정할 수 있습니다. 기본값은 사용자 접속 로그만 보여주는 것입니다.

방문자 정보


4.png 

방문자 정보에서는 현재까지 홈페이지를 방문한 방문자의 접속 IP 주소, 접속 국가, 사용한 User Agent, 접속 횟수, 마지막 접속 시각 등을 보여줍니다.

로그 정보에서와 마찬가지로, "UA 선택"을 통해 사용자 접속 로그와 로봇의 접속 로그, 그리고 모든 로그를 보이도록 설정할 수 있습니다. 기본값은 사용자 접속 로그만 보여주는 것입니다. 그리고, "기간 선택"을 통해 오늘, 어제, 지난 일주일, 지난 한달, 지난 일년 동안의 정보만을 볼 수도 있습니다. 기본값은 전체 항목을 보는 것입니다.

브라우저 정보


5.png 

브라우저 정보에서는 접속자들이 사용한 브라우저에 대한 정보를 보여줍니다. 현재는 User Agent를 기준으로 분류하고 있으나, 추후에 브라우저 단위로 구분을 할까 생각 중입니다.

"UA 선택"을 통해 사용자 접속 로그와 로봇의 접속 로그, 그리고 모든 로그를 보이도록 설정할 수 있습니다. 기본값은 사용자 접속 로그만 보여주는 것입니다. 그리고, "기간 선택"을 통해 오늘, 어제, 지난 일주일, 지난 한달, 지난 일년 동안의 정보만을 볼 수도 있습니다. 기본값은 전체 항목을 보는 것입니다.

페이지 정보


6.png 

사용자가 접속한 URI를 기반으로 어떤 문서를 보았는지를 보여줍니다. 페이지 정보는 기본적으로 로봇이라고 판명된 접속자가 본 페이지 정보는 포함하지 않습니다.

"기간 선택"을 통해 오늘, 어제, 지난 일주일, 지난 한달, 지난 일년 동안의 정보만을 볼 수도 있습니다. 기본값은 전체 항목을 보는 것입니다.

리퍼러 정보


7.png 

각 접속의 리퍼러 정보를 수집하여 이에 대한 통계를 보여줍니다. 여기에서는 리퍼러 사이트를 기준으로 통계를 보여주고 있습니다. 리퍼러 정보는 로봇이라고 판명된 접속에 대해서는 기록하지 않습니다.

"기간 선택"을 통해 오늘, 어제, 지난 일주일, 지난 한달, 지난 일년 동안의 정보만을 볼 수도 있습니다. 기본값은 전체 항목을 보는 것입니다.

키워드 정보


8.png 

검색어 정보입니다. 외부 검색어, 즉 유입어에 대한 기록만을 보여주고 있으며, 추후에 내부 검색어 항목도 추가할 예정입니다. 키워드 정보는 로봇이라고 판명된 접속에 대해서는 기록하지 않습니다.

"기간 선택"을 통해 오늘, 어제, 지난 일주일, 지난 한달, 지난 일년 동안의 정보만을 볼 수도 있습니다. 기본값은 전체 항목을 보는 것입니다.

블럭 정보


9.png 

모듈 설정에 의해 자동 접속 블록 기능이 활성화되었을 때 블럭되어진 접속들의 기록을 확인할 수 있습니다. 로그 정보에서도 이 정보는 확인 가능한데, 블럭된 접속의 경우 해당 줄이 붉은색으로 표시가 됩니다.

모듈 설정


10.png 

모듈 설정 화면입니다. 각 항목에 대해 설명이 붙어있으니 설정하는데 어려움은 없으리라 생각됩니다. 약간의 설명을 추가하자면 ..

  1. 로그 유지 기간 - 한번의 접속이 이뤄질 때마다 로그가 한번씩 기록됩니다. 따라서, 시간이 오래 경과되면 로그가 많이 쌓이게 되고, 이건 사이트 전체적인 성능에 악영향을 주게 됩니다. 그래서, 일정 시간이 경과한 로그는 자동으로 삭제하도록 하는 기능입니다. 이 값으로 설정된 기간이 경과된 로그는 자동으로 삭제됩니다.

  2. 관리자 접속 기록 - 관리자 접속에 대해 로그와 통계에 기록을 할 것인지를 설정합니다. 이 값을 설정하지 않으면 관리자 접속에 대해서는 기록에 포함시키지 않습니다.

  3. 로봇 접속 기록 - 로봇의 접속 로그를 기록할 것인지를 설정합니다. 접속 로그를 기록하지 않도록 설정하더라도 기본 통계의 로봇 접속 항목과 방문자 정보, 브라우저 정보에는 기록이 됩니다.

  4. Agent 필터 - 이 모듈을 만들면서 테스트를 하는데, 기록되는 로그를 보니 특정 User-agent 값을 갖는 접속이 무분별하게 계속 이뤄져서 로그가 한 없이 쌓이는 것을 경험하였습니다. 그래서, 이런 User-agent 값을 갖는 접속에 대해서는 로그 기록을 하지 않는 기능을 추가하였습니다. Agent 필터 항목에 한 줄에 하나의 User-agent 값을 적어주면 됩니다. 물론 User-agent의 부분 문자열도 가능합니다.

  5. IP 주소 필터 - 어떤 경우에는 한 IP 주소에서 계속 User Agent 값을 바꿔가며 한없이 접속하는 경우도 있더군요. 그리고, 사용하는 User-agent 값도 일반적인 브라우저의 User-agent 값이어서 이를 가지고 필터링하는 것은 불가능하여 IP 주소에 대한 필터를 만들었습니다. Agent 필터와 마찬가지로 한 줄에 하나의 IP 주소를 적으면 되고, IP 주소에는 넷마스크를 지원합니다. 예를 들어, 192..0.0.1/24 라는 말은 192.0.0.* 에서 접속하는 모든 접속에 대해 필터링을 한다는 말입니다. 자세한 내용은 Google에게 물어보세요!

  6. Agent/IP 주소 접속 제한 - 위 필터들에 등록된 접속의 경우 접속을 거부하는 기능입니다. 좋은 기능은 아닙니다만, 웹 페이지 긁어가는 툴이나 스팸 로봇들에 대처하기 위한 방법입니다.

  7. 자동 접속 제한 - 조금은 위험할 수도 있는 기능입니다. DDoS 공격을 막는 툴들에서 사용하는 기능으로, 설정된 값에 따라 A 분 동안 B 번 이상의 접속이 있을 때 DDoS 공격이나 로봇, 혹은 웹도구로 판단하여 이후 C 분 동안 접속을 거부합니다.

필터와 접속 제한에 대해서는 제가 필요해서 만든 것입니다만, 사용할 때는 주의하시기 바랍니다. 설정을 제대로 하지 않으면 여러분의 친구가 여러분의 사이트를 방문하지 못할 수도 있습니다.

알려진 문제점

  1. 목록 선택 옵션이 2가지인 방문자 정보와 브라우저 정보에서 두 옵션을 동시에 설정할 수 없습니다. 하나씩의 설정만을 사용할 수 있습니다.

  2. 리퍼러 목록 등에서 목록의 총 갯수와 페이지가 잘못 나올 수 있습니다. 이것은 XE 기본 코드에서 문제가 있어서 그런 것이고, 수정되었고 다음 XE 배포시에 포함될 것입니다.

앞으로의 계획

  1. 우선 요약 페이지의 디자인을 다시 할 계획입니다. 딱딱한 테이블보다는 그래프를 통해 한 눈에 들어올 수 있도록 만들까 하는데 능력이 될지는 모르겠습니다. 기대하지는 않는 것이 좋을 것 같습니다. 이것이 완료되면 Alpha 딱지를 때고, Beta 딱지를 붙일 생각입니다.

  2. 일주일 동안 테스트를 해보았지만, 그다지 큰 문제점은 찾지 못했습니다. 하지만, 대형 사이트에서는 약간 사용하기에 무거울 수도 있습니다. 최대한 가볍게 동작할 수 있는 방법을 강구해볼 생각입니다. 이 문제가 어느 정도 만족할만한 수준이 되면 정식 버전으로 배포할 계획입니다.

주의 사항

위에서도 말씀드렸습니다만, 많은 정보들을 기록하다보니 DB 접근이 생각보다 많습니다. 경우에 따라서는 한번 접속에 대해 8번 정도의 DB 접속이 이루어집니다. 따라서, 동시 접속자가 아주 많은 사이트에서는 전체적인 성능에 영향을 줄 수도 있습니다. 따라서, 사용자가 많은 사이트에서는 Statistics 모듈 사용에 주의가 필요합니다.

그리고, admin 모듈로 접속하는 경우에는 로그 기록과 접속 제한 기능 등을 수행하지 않으니 혹시 문제가 있는 경우 관리자 계정으로 admin 모듈에 들어가 Statistics 애드온 실행을 끄면 됩니다.

위에서도 말했지만, Statistics 모듈이 동작하기 위해서는 반드시 Statistics 애드온이 실행되어야 합니다.

피드백

언제나 여러분의 제안과 버그 리포팅을 환영합니다.

배포자 mooo

현재평점 10 (평가자 수 : 2)

추천 : 스팩,

profile

여기에서 행복한 시간 되십시오.