알짜게시판

[리눅스] 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 활용 1,107 17시간 전
[윈도우] 윈도11 강제업데이트 피하고 윈도10 계속 쓰기 24,542 25-10-12
[리눅스] PHP 파일 업로드 용량 늘리기 39,903 25-10-03
[HTML] 애드센스 충돌 문제 해결하기 61,117 25-09-20
[파이썬] Python Playwright로 Edge 브라우저 제어하기 73,669 25-09-12
[델파이] TDirectory.Delete 대신 CMD 으로 폴더 삭제 74,326 25-09-10
[HTML] 애드센스 자동 광고 사용 시 빈 화면이 출력된다면? 158,507 25-06-20
[워드프레스] 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,061 25-04-30
[리눅스] 구글 크롬 콘솔 'Attestation check for Topics on' 에러 원인 & 해결방… 60,179 25-04-11
[크롬] 개발자 도구(DevTools)에서 붙여넣기 안될때 72,460 25-03-10
[그누보드] SmartEditor2Skin.html 다운로드 되는 현상 110,387 25-01-08
[PHP] 검색 로봇 접속시 종료 56,664 24-10-07
[리눅스] PHP-FPM 튜닝을 위한 메모리 계산 41,700 24-08-29
[윈도우] 아이폰 벨소리 쉽게 추가하기 94,563 24-06-14
[윈도우] C:\Windows\Installer 폴더 다른 드라이브로 옮기기 105,274 24-05-29
[PHP] REQUEST 값 받기(application/json 포함) 99,584 24-04-20
[리눅스] 데몬(systemd service) 작성 및 실행하기 66,377 24-03-14
[MySQL] 업데이트 이후 에러 발생([ERROR] Incorrect definition of table … 92,016 23-12-08
구글 크롬 탭검색 비활성화 72,881 23-12-04
[MySQL] MySQL, MariaDB 업데이트 73,886 23-11-24
[아이폰] HTTPS 감청 우회하기 385,206 23-11-01
[러스트] Windows에 Rust 설치하기 57,827 23-10-05
[ReactNative] android directory was detected in the project. 65,769 23-07-20
[리눅스] 메일(Mail) 삭제/초기화 58,618 23-07-18
[델파이] 윈도우 알림센터에 메시지 출력하기 55,900 23-06-20
텔레그램 봇 (Telegram Bot) 만들기 38,518 23-05-03
[부트스트랩] nav 에서 하위 항목 활성화 시 부모 항목 활성화 35,249 23-04-30
목록
웹프로그래밍엠씨스탁IT기술망치와삽청년돈길