웹 서버 로그 분석도구(GoAccess) 조사

Chan Ahn
Chan Ahn
Feb 23, 2017 · 7 min read

관리자 입장에서 웹 서버의 로그 파일을 보다 쉽게 분석하고 활용할 수 있는 도구에 대해 정리합니다.

구글링이나 Stackoverflow를 통해 웹 서버 로그 분석도구를 검색해 보면 하기의 도구를 추천 하고 있습니다.

조사의 목표는,
OSS 기반의, 설치나 분석 및 사용을 손쉽게 할 수 있는 분석도구를 찾는 것이었기 때문에 이에 부합하는 GoAccess를 선택하였고, 하기의 순서로 정리 합니다.

  • GoAccess 소개
  • GoAccess 상세 기능
  • GoAccess 설치
  • 주의사항

GoAccess 소개

GoAccess는 OSS기반의 실시간 웹 서버 로그 분석 도구로, xNix 계열의 터미널과 웹 브라우저를 통한 분석 화면을 제공합니다.

GoAcess(Terminal, Web screen shot)

Github에서도 관심이 많은 프로젝트이고, Contributor들의 활동도 꾸준히 일어나고 있어서, 지속적인 개선이 이뤄지고 있습니다.

most stars project in github.com
Contributors
Commits

주요 특징은 다음과 같습니다.

  • 빠른 실시간 분석(millisecond/second) 가능 (C언어 개발)
  • 의존 라이브러리는 ncurses
  • 대부분의 웹 서버 로그 포맷 지원
    -
    Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront 등
  • 아름다운 터미널 화면과 Bootstrap기반의 대시보드 제공(커스트마이징 가능)
  • Valgrind 테스트 완료

GoAccess 상세기능

Teminal과 Web Dashboard에서 확인 가능한 상세기능을 설명합니다.

  • Dashboard Number Widgets
    종합 정보를 숫자로 표시
Number Widget in Terminal Dashboard
Number Widget in Web Dashboard
  • Unique visitors per day
    일자별 방문자 정보(동일 아이피)
Unique visitors in Terminal Dashboard
Unique visitors in Web Dashboard
  • Requested Files (URLs)
    요청 URL 정보
Requested Files in Terminal Dashboard
Requested Files in Web Dashboard
  • Static Requests
    정적 리소스(이미지, 아이콘 등) 요청 정보
Static Requests in Terminal Dashboard
Static Requests in Web Dashboard
  • Not Found URLs
    404 요청 정보
Not Found URLs in Terminal Dashboard
Not Found URLs in Web Dashboard
  • Visitor Hostnames and IPs
    방문자별 정보
Visitors in Terminal Dashboard
Visitors in Web Dashboard
  • Operating Systems
    OS별 정보
Operating Systems in Terminal Dashboard
Operating Systems in Web Dashboard
  • Browsers
    브라우저별 정보
Browsers in Terminal Dashboard
Browsers in Web Dashboard
  • Time Distribution
    시간별(00~23) 정보
Time Distribution in Terminal Dashboard
Time Distribution in Web Dashboard
  • Referring Sites
    Refer 사이트 정보
Referer in Terminal Dashboard
Referer in WebDashboard
  • HTTP Status Codes
    HTTP 상태코드 정보
HTTP Status in Terminal Dashboard
HTTP Status in Web Dashboard
  • Geo Location
    국가별 정보
Geo Location in Terminal Dashboard
Geo Location in Web Dashboard

GoAccess 설치

개발서버(CentOS 6.8)에서 GoAccess 를 설치하고, Apache 로그파일을 통해 Terminal 과 웹으로 모니터링 하는 과정을 정리합니다.

  • 설치
    보다 자세한 설명은 공식 홈페이지 또는 github 의 인스톨 가이드를 참고합니다. 설치는 아래의 두가지 방법으로 가능하며, 최신 버전으로 설치를 할 경우 가급적 컴파일 방식을 추천합니다.
yum을 통한 GoAccess 설치
소스 컴파일을 통한 GoAccess 설치
  • 설정
    분석을 위해서 로그파일의 날짜, 시간 포맷을 설정합니다. 설정파일(/usr/local/etc/goaccess.conf)의 내용을 확인하여, 분석하고자 하는 서버의 날짜, 시간 포맷에 맞도록 주석을 해제합니다.
Apache 분석을 위한 날짜, 시간 포맷 설정
  • 실행
    로그파일 분석은 터미널 모드, 파일 생성 모드, 실시간 분석 모드로 실행 가능합니다.
터미널 모드 실행
터미널 모드 실행 화면
파일 생성 모드 실행
실시간 분석 모드 실행

주의사항

  • yum을 통한 설치시 repository에서 예전버전의 GoAccess를 설치할 경우가 있기 때문에 가급적이면 최신버전의 패키지 또는 소스를 받아서 설치하는 것이 좋습니다.
이전 버전 GoAccess(v0.9.3)
  • 실시간 분석 모드로 실행 할 경우, 내부적으로 웹소켓을 사용하여 브라우저와 통신하기 때문에 방화벽에서 포트 확인이 필요합니다.

Chan Ahn

Written by

Chan Ahn

Someone who works at a TV networks lab while enjoying IT development. An ordinary person who enjoys photography and music and likes to write thoughts.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade