알짜게시판

[리눅스] Apache 웹 로그 분석하기 – awk와 GoAccess 활용

웹 서버를 운영하다 보면 방문자 통계, 인기 페이지, 트래픽 현황 등을 파악해야 할 때가 많습니다.
이런 정보를 확인하기 위해 로그 분석(Log Analysis) 은 필수입니다.
이번 글에서는 리눅스 환경에서 자주 사용되는 기본 명령어 awk를 이용한 간단한 분석법과,
시각화 도구인 GoAccess를 이용한 고급 분석 방법을 함께 소개합니다.


Apache Access Log란

Apache 웹 서버는 기본적으로 /var/log/httpd/access_log 파일에
서버로 들어오는 모든 요청(request) 정보를 기록합니다.

예를 들어, 다음과 같은 한 줄이 하나의 요청 로그를 의미합니다.

192.168.0.10 - - [27/Oct/2025:14:20:31 +0900] "GET /index.html HTTP/1.1" 200 5123 "-" "Mozilla/5.0"

각 항목의 의미는 다음과 같습니다.

필드 설명
$1 클라이언트 IP 주소
$4 요청 시간
$6 HTTP 메서드(GET, POST 등)
$7 요청된 URL 경로
$9 HTTP 응답 코드 (200, 404 등)
$10 전송된 바이트 수

awk를 이용한 로그 분석

awk는 텍스트 파일을 컬럼 단위로 다룰 수 있는 강력한 도구입니다.
간단한 명령어 조합만으로도 유용한 웹 로그 통계를 얻을 수 있습니다.


가장 많이 요청된 URL TOP 20

awk '{print $7}' /var/log/httpd/access_log | sort | uniq -c | sort -nr | head -20

설명

  • $7: 요청된 파일 경로(URL)를 출력
  • sort | uniq -c: 각 URL별 요청 횟수를 계산
  • sort -nr: 요청이 많은 순으로 정렬
  • head -20: 상위 20개 결과만 출력

예시 결과

1500 /index.html
850  /about.html
700  /images/logo.png

가장 많이 방문된 페이지를 빠르게 확인할 수 있습니다.


전송된 데이터량이 많은 URL TOP 20

awk '{print $7, $10}' /var/log/httpd/access_log | \
awk '{bytes[$1]+=$2} END {for (f in bytes) print bytes[f], f}' | sort -nr | head -20

설명

  • $10: 전송된 바이트 수를 의미
  • 첫 번째 awk: URL과 바이트 값을 추출
  • 두 번째 awk: URL별로 바이트를 합산
  • sort -nr | head -20: 데이터 전송량이 많은 URL 20개 출력

활용

사이트 내에서 대용량 트래픽이 발생하는 리소스(이미지, 동영상, 다운로드 파일 등)를 쉽게 식별할 수 있습니다.


GoAccess를 이용한 실시간 웹 로그 분석

awk로 기본적인 통계는 얻을 수 있지만, 보다 시각적이고 종합적인 분석이 필요하다면 GoAccess가 훨씬 효율적입니다.


GoAccess란

GoAccess는 C로 작성된 오픈소스 로그 분석기입니다.
CLI(터미널) 인터페이스뿐 아니라 HTML 리포트까지 제공하며, 실시간 대시보드 기능도 지원합니다.
Apache, Nginx, Amazon S3 등 다양한 로그 형식을 인식합니다.

공식 사이트: https://goaccess.io


GoAccess 설치

CentOS / RHEL 계열에서 설치하려면 다음 명령을 실행합니다.

yum install goaccess -y

설치 확인:

goaccess --version

기본 사용법

Apache 기본 로그 포맷은 COMBINED 형식이므로, 아래 명령으로 분석을 시작합니다.

goaccess /var/log/httpd/access_log --log-format=COMBINED

실행하면 터미널에서 다음과 같은 대시보드를 볼 수 있습니다.

  • 전체 방문자 수
  • 인기 페이지
  • 트래픽 사용량
  • HTTP 상태 코드 통계
  • 브라우저 및 운영체제별 비율

HTML 리포트 생성

웹 브라우저에서 볼 수 있는 HTML 리포트를 생성할 수도 있습니다.

goaccess /var/log/httpd/access_log --log-format=COMBINED -o /var/www/html/report.html

생성 후 http://서버주소/report.html 에 접속하면 그래프 기반의 대시보드를 볼 수 있습니다.


실시간 분석 대시보드

실시간으로 로그 변화를 모니터링하려면 --real-time-html 옵션을 추가합니다.

goaccess /var/log/httpd/access_log --log-format=COMBINED \
-o /var/www/html/report.html --real-time-html

서버의 로그가 업데이트될 때마다 HTML 리포트가 자동으로 갱신됩니다.


마무리

awk는 간단한 통계 확인에 매우 유용하며, 별도의 설치가 필요 없습니다.
반면 GoAccess는 한 단계 높은 수준의 로그 분석과 시각화를 제공합니다.

  • 빠르게 추세를 확인하려면 → awk
  • 트래픽 패턴을 시각화하고 공유하려면 → GoAccess

두 방법을 함께 사용하면, 시스템 관리자는 웹 서버의 상태를 훨씬 효율적으로 모니터링할 수 있습니다.

로그인 후 댓글내용을 입력해주세요

제목 글쓴이 조회 날짜
[리눅스] Apache 웹 로그 분석하기 – awk와 GoAccess 활용 776 12시간 전
[칼무리] 외부 명령으로 캡처 자동화하기 1 22,113 25-10-14
[윈도우] 윈도11 강제업데이트 피하고 윈도10 계속 쓰기 24,216 25-10-12
[리눅스] PHP 파일 업로드 용량 늘리기 39,577 25-10-03
[HTML] 애드센스 충돌 문제 해결하기 60,792 25-09-20
[파이썬] Python Playwright로 Edge 브라우저 제어하기 73,384 25-09-12
[델파이] TDirectory.Delete 대신 CMD 으로 폴더 삭제 74,326 25-09-10
[윈도우] Chrome 및 Edge를 TLS 1.2 모드로 실행 73,416 25-08-30
[HTML] 애드센스 자동 광고 사용 시 빈 화면이 출력된다면? 158,507 25-06-20
[윈도우] 브라우저 환경설정 추출 144,975 25-06-18
[워드프레스] xmlrpc.php 차단으로 보안 강화하기 136,330 25-06-05
[델파이] 폼이 모니터 한 가운데 있는 경우 자연스럽게 왼쪽으로 이동시키기 133,909 25-05-26
[윈도우] WSH script registration is not valid. 134,020 25-05-23
[워드프레스] 제목 블록 기본값을 H5로 변경하는 방법 115,463 25-05-22
[파이썬] 동영상 특정 영역 모자이크(흐리게) 하기 47,060 25-04-30
[리눅스] 구글 크롬 콘솔 'Attestation check for Topics on' 에러 원인 & 해결방… 60,179 25-04-11
[크롬] 개발자 도구(DevTools)에서 붙여넣기 안될때 72,457 25-03-10
[그누보드] SmartEditor2Skin.html 다운로드 되는 현상 110,387 25-01-08
[윈도우] 네트워크 탐지 114,743 24-12-31
[델파이] TrayIcon 이 흐릿하게 보이는 버그? 수정 128,354 24-12-12
[델파이] 실행 중인 프로세스가 활성 창인지 확인하는 함수 145,660 24-11-02
[델파이] 메세지 다이어그램(Message Dialog) 에 체크박스(CheckBox) 추가 132,574 24-10-30
[그누보드] 부트스트랩 테마 예제로 사용중인 main.php 116,156 24-10-21
[그누보드] 유튜브 스킨 75,504 24-10-14
[윈도우] TLS 연결 끊김 해결 방법 - Kyber 비활성화 271,935 24-10-12
[PHP] 검색 로봇 접속시 종료 56,663 24-10-07
[윈도우] WinDivert 사용중인 어플리케이션 검색 45,964 24-09-12
[워드프레스] 답글 남기기 메시지 변경 43,126 24-09-05
[리눅스] PHP-FPM 튜닝을 위한 메모리 계산 41,700 24-08-29
[윈도우] 아이폰 벨소리 쉽게 추가하기 94,563 24-06-14
[윈도우] C:\Windows\Installer 폴더 다른 드라이브로 옮기기 105,273 24-05-29
광고의비밀결혼의신지원금백과건강정보결혼준비