시작페이지로 즐겨찾기추가
로그인
회원가입 l 출석체크 l 마이페이지 l CGIMALL
happycgi
자료실 사이트등록 랭킹100 프로그램리뷰 관리자추천자료 초보가이드
커뮤니티
전체 펼쳐보기
퀵메뉴링크 jquery , CSS , PHP , Javascript , 무료폰트 , ASP
상세검색
 > JAVA,JSP > JSP 소스창고 > 기타 > 웹로그 분석 프로그램 version 1.3 상세정보
사이트등록
클라우드태그
Javascript
html
Mobile
PHP
CSS
ASP
mysql
image
jquery
게시판
2023
메뉴
2022
현재접속자 새로고침
웹로그 분석 프로그램 version 1.3
소스통계정보 오류신고 및 문의
해피팀
네티즌
트위터로 보내기 페이스북으로 보내기
소스분류 기타
다운로드 횟수 1125 회
간단설명 JSP로 구현된 웹로그 분석 프로그램입니다.
평가하기 훌륭함 매우좋음 좋음 괜찮음 보통 별로
소스다운로드 데모 미리보기가 없습니다 스크랩하기
본 소스 프로그램은 누구나 자유롭게 수정 변경 배포할 수 있습니다.
그러나, 원 저자의 이름을 삭제하시면 안됩니다.

자바서비스넷 이원영
javaservice@hanmail.net

-------------------------------------------------------------------------------
Document Version History

Version 1.0 2002.03.12
Version 1.2 2002.03.25
Version 1.3 2002.05.30

---------------------------------------------------------------
Version 1.0 --> 1.1 변경사항

1) ./bin/ 디렉토리의 *.bat 파일과 ./target/class/* 디렉토리의 Java 클래스이름과의
맵핑

2) 옵션파라메터 중 시각포멧 변경
yyyyMMdd/HH:mm:ss --> yyyyMMdd/HHmmss

또한, 시간간격옵션이 분단위 및 초단위로 혼재된 부분은 모두
초(seconds)단위로 통일

3) 동일한 서블렛에서 대해서 서로다른 URL구분자가 있다면 이를 기준으로
추가적인 TABLE 컬럼을 지정하여 로드하는 AccessSpecialLoad 추가
(TABLE 컬런 txid 추가)

--------------------------------------------------------------
Version 1.1 --> 1.3 변경사항

1) ./bin/ 디렉토리의 *.bat 파일과 *.sh 파일에서 accesshitcalc.bat를 hitcal.bat와 같이
앞부분의 Prefix를 모두 뺐습니다. 이유는 웹로그파일인 access_log 데이타와 requestmon
모듈을 통해 나오는 trace.log 파일을 같은 DB 테이블에서 동일하게 관리토록 변경했기
때문입니다.
2) TABLE이름이 ACCESSLOG 에서 ANALYSIS로 바뀌었습니다.


--------------------------------------------------------------
운영환경

현재는 Windows2000, UDB DB2, JDK 1.2 이상 환경에 맞추어져 있음. 조금만 응용하면
어떤 플렛폼에서도 사용가능 할 듯...

1. 먼저 분석에 사용된 UDB DB2 DB를 생성합니다.
시작--> 프로그램 --> IBM DB2 --> Command Line Processor

db2 => create database ACCLOG (대략 30초-60초정도 걸릴 것입니다.)
DB20000I The CREATE DATABASE command completed successfully.

db2 => update db cfg for ACCLOG using logfilsiz 1000
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
DB21026I For most configuration parameters, all applications must disconnect
from this database before the changes become effective.

db2 => update db cfg for ACCLOG using logsecond 100
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
DB21026I For most configuration parameters, all applications must disconnect
from this database before the changes become effective.

db2 => quit

2. 반드시 수정해야 할 구성파일

2.1 [bin/env.bat]
.......
set ANALYSIS_HOME=e:applicationanalysis
set JAVA_HOME=e:applicationanalysisjdk1.2.2
.....
set CLASSPATH=%CLASSPATH%;d:sqllibjavadb2java.zip;
set CLASSPATH=%CLASSPATH%;d:sqllibjava
untime.zip
....

편집 예)
.......
set ANALYSIS_HOME=C:analysis
set JAVA_HOME=C:analysisjdk1.2.2
.....
set CLASSPATH=%CLASSPATH%;C:SQLLIBjavadb2java.zip;
set CLASSPATH=%CLASSPATH%;C:SQLLIBjava
untime.zip




3.2 [properties/jdf.properties]
....
org.jsn.reqanalysis.driver = COM.ibm.db2.jdbc.app.DB2Driver
org.jsn.reqanalysis.url = jdbc:db2:ACCLOG <-- 필요시 DB명 변경 !!!
org.jsn.reqanalysis.user = db2admin
org.jsn.reqanalysis.password = db2admin
....


3. 간단한 사용법 설명

사용법: 매개변수를 생략하고 실행하면 간단한 사용법이 나옵니다.

bin/accessload.bat: access_log 를 DB에 Insert
예) accessload ..dataaccess_log XX drop

NOTE: "drop" 옵션은 테이블을 drop하고 새로 만듬.
필요시 target/classes/AccessInsert.java 소스 수정

bin/accessspecialload.bat: access_log를 DB에 insert하는 것은 동일하나 특별한
컬럼인 txid 가 추가되어 있어서, 같은 서블렛일 지라도 txid 로 구분토록...
(자세한 것은 target/classes/AccessSpecialLoad.java를 볼것..

bin/hitcalc.bat : 단위시간당 HIT건수 추출하기(TPM)
예) hitcalc 200200529/070000 20020529/103000 60 (1분당TPM)

bin/cumulativeip.bat : 누적IP어드레스개수 추출하기
예) cumulativeip 200200529/070000 20020529/103000 60 (60초마다)

bin/usercalc.bat : 동시단말사용자수 추출하기
예) usercalc 200200529/070000 20020529/103000 60 (60초 마다)

bin/bytecalc.bat : 단위시간당 데이타전송량 추출하기

NOTE: startup.bat, shutdown.bat, load.bat, jdfaccessload.bat,
calc.bat, appcalc.bat, hosttxload.bat, hosttxcalc.bat,
access390load.bat 등등은 다른 용도이니 별도 설명 생략.

PS: 파일로 저장하기:
hitcalc 200200529/070000 20020529/103000 60 > hit.txt

NOTE: 매개변수 중 시간에 대한 입력값이 때론 초단위/분단위로 헷갈리게 되어
있네요. 초단위로 조만간 통일시켜야 할 듯 합니다.

4. 필요시 컴파일 방법:
cd target/classes
cc.bat AccessInsert.java

PS: 항상 소스를 확인하고, 이해한 후, 필요시 자유롭게 수정하셔도 됩니다. 저의 경우,
매 사이트마다 조금씩 수정해서 사용하곤 합니다.


5. 유용한 SQL 쿼리

connect to LWYDB user DB2ADMIN using DB2ADMIN

describe select * from analysis
sqltype sqllen sqlname.data sqlname.length
-------------------- ------ ------------------------------ --------------
448 VARCHAR 15 HOST 4
448 VARCHAR 31 IP 2
392 TIMESTAMP 26 STARTTIME 9
392 TIMESTAMP 26 ENDTIME 7
449 VARCHAR 7 METHOD 6
448 VARCHAR 2000 URL 3
448 VARCHAR 100 SHORTURL 8
449 VARCHAR 50 TXID 4
484 DECIMAL 10, 0 ELAPSED 7
453 CHARACTER 3 RETURN_CODE 11
485 DECIMAL 10, 0 DATA_SIZE 9

select substr(shorturl,1,80), count(*), sum(elapsed), sum(elapsed)/count(*) from analysis where shorturl like ``%Servlet`` or shorturl like ``%.jsp`` group by shorturl order by count(*) desc

select substr(shorturl,1,80), count(*), sum(elapsed), sum(elapsed)/count(*) from analysis group by shorturl order by count(*) desc

select substr(shorturl,1,80), count(*), sum(elapsed), sum(elapsed)/count(*) from analysis group by shorturl order by sum(elapsed) desc

select substr(shorturl,1,80), count(*), sum(elapsed), sum(elapsed)/count(*) from analysis group by shorturl order by sum(elapsed)/count(*) desc

NOTE: Peak 시간대에서, 장애가 발생하지 직전, 정상적인 서비스를 했던 몇십분간을
선택하는 것이 중요하다.

select substr(x1.u,1,80), sum_elapsed, cnt, avert, totalsize, avesize, tpm, tpm/(20.0*60.0) as tps from (select shorturl as u, max (c) as tpm from ( select shorturl, count(*) as c from analysis where starttime >= ``2002-07-23-09.50.00`` and starttime < ``2002-07-23-10.00.00`` and (shorturl like ``%/servlet/%`` or shorturl like ``%.jsp`` ) group by shorturl, date(starttime), hour(starttime), minute(starttime)/5 ) as x group by shorturl ) as x1, (select count(*) as cnt, sum(elapsed)/count(*) as avert, sum(elapsed) as sum_elapsed, sum(data_size) as totalsize, sum(data_size)/count(*) as avesize, shorturl as u from analysis where starttime >= ``2002-07-23-09.50.00`` and starttime < ``2002-07-23-10.00.00`` and (shorturl like ``%/servlet/%`` or shorturl like ``%.jsp`` ) group by shorturl ) as x2 where x1.u = x2.u order by sum_elapsed desc


select shorturl, sum(elapsed) as SUM_elapsed, count(*) as CNT, sum(elapsed)/count(*) as RT, sum(data_size) as TotalSIZE, sum(data_size)/count(*) as AveDATA, count(*)/(4.0*3600.0) as tps from analysis where host = ``seoul`` and starttime >= ``2002-07-26-13.00.00`` and starttime < ``2002-07-26-18.00.00`` and (shorturl like ``%/servlet/%`` or shorturl like ``%.jsp`` ) group by shorturl order by SUM_elapsed desc

select subip, count(distinct ip), count(*), count(*)/count(distinct ip), sum(elapsed), sum(elapsed)/count(distinct ip) from analysis where not (shorturl like ``%/servlet/%`` or shorturl like ``%.jsp``) group by subip order by sum(elapsed)/count(distinct ip) desc


6. requestmon 모듈 로그 분석 툴

bin/load.bat: requestmon에 의한 trace.log 파일을 DB에 Insert
예) load ..data race.log M1 drop

(편집중...)

-------------------------------------------------------
본 문서는 자유롭게 배포/복사 할 수 있으나 반드시
이 문서의 저자에 대한 언급을 삭제하시면 안됩니다
================================================
자바서비스넷 이원영
E-mail: javaservice@hanmail.net
PCS:011-898-7904
================================================
네티즌 의견   이용하신 자료의 후기를 자유롭게 작성하세요. (상업적인 광고 및 도배성 글 등은 사전통보없이 삭제될 수 있습니다.)
내용 아이디 의견남기기
등록된 의견이 없습니다.
1
이름
내용
:네맞아요: :화나는군요: :잠와: :우울해: :이건아냐: :왕하하: 왕웃음~ 놀램~
평가하기 훌륭함 매우좋음 좋음 괜찮음 보통 별로
도배방지키
 27586675 보이는 도배방지키를 입력하세요.