메뉴 닫기

웹로그 분석 툴 GoAccess

 

 

GoAccess란?


GoAccess는 C언어로 작성된 오픈소스 실시간 웹 로그 분석기입니다.

핵심 기능은 Nginx, Apache 등 웹 서버의 access.log 파일을 직접 읽어서, 그 내용을 즉시 터미널(TUI)이나 HTML 대시보드로 시각화해주는 것입니다.

 

💡 주요 특징:

  • 초경량 및 고성능: C언어로 작성되어 매우 빠르고 메모리 같은 시스템 자원을 거의 차지하지 않습니다.

  • 데이터베이스 불필요: Elasticsearch나 MySQL 같은 별도 데이터베이스 없이, 로그 파일 원본을 직접 파싱(Parsing)하여 인메모리(In-memory)로 처리합니다.

  • 실시간 처리: –real-time-html 같은 옵션을 사용하면, 로그 파일에 새로운 내용이 추가될 때마다 대시보드가 자동으로 갱신되는 것을 볼 수 있습니다.

  • 간편한 설치: 별도 설정 파일이나 복잡한 의존성 없이 실행 파일 하나만으로 거의 모든 기능이 동작합니다.

 

💡 어떨 때 사용하나요?

“지금 당장”, “빠르게” 우리 서버에 누가 접속하는지, 어떤 페이지가 에러를 내는지, 어떤 IP가 공격을 시도하는지 등을 확인하고 싶을 때 가장 이상적인 도구입니다.

무거운 분석 도구를 설치하기 부담스러운 경량 서버나 테스트 환경에도 완벽합니다.

 

 

GoAccess 설치


💻 설치 환경

 – OS : Ubuntu 24.04

 

 1. 사전 준비

GoAccess로 로그를 분석하려면, 당연히 로그를 생성할 Nginx가 먼저 설치되어 있어야 합니다.

 💭 Nginx 설정 파일에 로그 파일 경로를 따로 변경하지 않았다면 /var/log/nginx/access.log 경로에 로그가 생성됩니다.

 

# systemctl status nginx

 

 2. GoAccess 설치하기

Nginx 설치 완료되었으니, 로그 분석기인 GoAccess를 설치합니다.

 

# apt update -y

# apt install goaccess

 

 

 3. GoAccess 실행

실시간 HTML 파일을 생성하고, 이 파일을 백그라운드에서 계속 실시간으로 업데이트를 하도록 구동하는 방법입니다.

HTML 파일을 Nginx가 접근 가능한 경로(/var/www/html)에 생성합니다.

 

# goaccess <nginx access.log 파일 경로> -o <nginx 웹루트 디렉토리 경로/report.html> –real-time-html –log-format=COMBINED –daemonize

 

💡 옵션

–real-time-html : 이 파일이 실시간으로 (웹소켓을 통해) 업데이트되도록 합니다.

 –daemonize : 이 명령어를 백그라운드 데몬으로 실행합니다. (터미널을 꺼도 유지됨)

 

💡 방화벽 설정

      GoAccess는 실시간 업데이트를 위해 7890 포트를 웹소켓으로 사용하므로 통신을 위해 방화벽에 7890 포트를 추가합니다.

 

 

 4. 웹 브라우저에서 대시보드 확인

웹 브라우저에서 http://<서버 IP>/report.html 로 접속하면 대시보드를 확인 할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다.