Appendix B: STON Top

STON TOP은 실시간으로 로그를 분석하여 랭킹을 제공하는 도구이다. URL, Host, Referer, User-Agent, Client-IP 총 5가지의 랭킹을 제공한다.

주석

Enterprise Edition v18.08.0 이후부터 지원된다.

실행

STON TOP은 커맨드 라인도구로 다음과 같이 옵션을 넣어 실행한다.

/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log

실행화면은 다음과 같으며 4가지 영역으로 구분된다.

../_images/stontop1.png

실행옵션

실행시점에 다양한 옵션이 제공된다.

옵션 설명
f 로그 경로. 멀티 설정가능
T 수집 시간 (초)
H 수집 요청수
q QueryString 구분
l 모든 URL 소문자 변환
L 로그 타입 지정
s 디렉토리 통계 depth
p Referer헤더 프로토콜 구분
d 화면 갱신시간 설정
c XFF헤더 값 그대로 클라이언트 IP로 인식

수집 시간

기본 수집시간은 30초이다. -T 옵션으로 변경한다.

# 60초 간의 데이터를 수집 분석한다.
/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -T 60
../_images/stontop_run_opt_t.png

수집 요청수

N개의 요청이 집계될 때마다 랭킹을 제공한다. -H 옵션으로 변경한다.

# 500 개의 요청을 수집 분석한다.
/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -H 500
../_images/stontop_run_opt_h.png

QueryString 구분

기본으로 QueryString은 무시된다. -q 옵션으로 구분하도록 변경한다.

/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -q
../_images/stontop_run_opt_q.png

멀티 가상호스트

아래와 같이 여러 가상호스트를 동시에 모니터링 가능하다.

/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -f /ston_log/example.winesoft.co.kr/access.log
../_images/stontop_run_opt_v1.png

test.winesoft.co.kr 랭킹

../_images/stontop_run_opt_v2.png

example.winesoft.co.kr 랭킹

대소문자 구분

기본으로 URL 대소문자는 구분된다. -l 옵션으로 구분하지 않도록 변경한다.

# /IMG/1.jpg 와 /img/1.jpg 를 구분하지 않도록 한다.
/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -l
../_images/stontop_run_opt_l.png

로그 형식지정

기본으로 STON의 access.log를 대상으로 분석한다. 이 밖에 STON의 origin.log와 Apache의 access.log를 지원한다. -L 옵션으로 origin 또는 apache 로 설정한다.

# STON의 origin.log 모니터링
/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/origin.log -L origin
../_images/stontop_run_opt_l_origin.png

STON의 origin.log 모니터링

# Apache형식의 access.log 모니터링
/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -L apache
../_images/stontop_run_opt_l_apache.png

Apache형식의 access.log 모니터링

화면갱신 주기

기본으로 5초마다 화면을 갱신한다. -d 옵션으로 갱신주기(초)를 변경한다.

# 1초마다 화면이 갱신된다.
/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -d 1
../_images/stontop_run_opt_d.png

XFF 헤더 인식

HTTP 요청 헤더에 XFF(X-Forwarded-For) 헤더가 있을 경우 헤더 값의 첫번째 값만을 클라이언트 IP로 인식한다. -c 옵션을 입력하면 모든 값을 인식한다.

/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -c
../_images/stontop_run_opt_c.png

Referer 프로토콜 구분

Referer의 프로토콜을 분리하여 집계한다. -p 옵션으로 변경한다.

/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -p
../_images/stontop_run_opt_p.png

디렉토리 랭킹

입력된 depth만큼의 디렉토리 통계를 제공한다. -s 옵션으로 입력한다.

#Depth가 2 단계까지만 확인 비교한다.
/usr/local/ston/stontop -f /ston_log/test.winesoft.co.kr/access.log -s 2
../_images/stontop_run_opt_s.png

명령어

실행 중 명령어 + Enter 를 입력하면 다양한 정보를 볼 수 있다.

명령어 설명
q 프로세스 종료
p 일시 정지
n 응답 코드별 통계/요청별 통계 전환
d 랭킹항목 변경
c 화면 갱신
v (멀티로그 입력 시) 로그파일 전환
o 스냅샷
s 정렬 옵션 ON/OFF

랭킹 변경 ( d )

랭킹 항목은 URL, Host, Referer, User-agent, Client-IP 순서로 변경된다.

../_images/stontop2.png

랭킹 항목의 순환

../_images/stontop_url.png

URL 랭킹

../_images/stontop_host.png

Host 랭킹

../_images/stontop_referer.png

Referer 랭킹

../_images/stontop_ua.png

User-Agent 랭킹

../_images/stontop_clientip.png

Client IP 랭킹

요청/전송 기준 정렬 ( s r b t )

요청 수 내림차순으로 정렬되며 요청 수(기본), 전송량, 평균 응답시간을 제공한다.

../_images/stontop_arrange.png

s 정렬 서브메뉴 표시

../_images/stontop_arrange_r.png

r 요청 수 정렬

../_images/stontop_arrange_b.png

b 전송량 정렬

../_images/stontop_arrange_t.png

t 평균 응답시간 정렬

응답코드 정렬 ( n s 2 3 4 5 )

n 명령어를 입력하여 응답코드 상세화면으로 변경한다.

../_images/stontop_rescode.png

n 응답코드 상세

../_images/stontop_arrange_res_s.png

s 정렬 서브메뉴 표시

이 화면에서 응답코드별로 정렬이 가능하다.

../_images/stontop_arrange_res_2.png

2 2xx 응답기준 정렬

../_images/stontop_arrange_res_3.png

3 3xx 응답기준 정렬

../_images/stontop_arrange_res_4.png

4 4xx 응답기준 정렬

../_images/stontop_arrange_res_5.png

5 5xx 응답기준 정렬

스냅샷 ( o )

o 명령어를 입력하여 현재화면의 정보를 스냅샷 파일로 기록한다.

/usr/local/ston/20190328_004734_stontop_snapshot_test.winesoft.co.kr.csv
  • /usr/local/ston 에 기록된다.
  • {yyyyMMdd_HHmmss}_stontop_snapshot_{가상호스트}.csv 형식으로 기록된다.
항목 설명
URL 요청 URL
Method 요청 Method
ByteCount 클라이언트로 전송한 데이터양 (단위: bytes)
Response-Time 응답 시간 (단위: ms)
Response-Code 응답 코드
Client-IP 클라이언트 IP
Referer Referer 헤더 값
User-Agent User-Agent 헤더 값
../_images/stontop_snapshot.png

스냅샷 예제