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 로 접속하면 대시보드를 확인 할 수 있습니다.






