로그 및 관측성 도구

액세스 로그 분석실제 Nginx·Apache 로그 포맷 그대로

Nginx 또는 Apache 액세스 로그를 붙여넣고 포맷 템플릿을 고르거나 직접 log_format/LogFormat 줄을 붙여넣은 뒤, 로그 파싱을 눌러 필터링 가능한 표를 받아보세요.

액세스 로그 분석

예시:
포맷 템플릿
필터

액세스 로그

모든 처리는 브라우저에서 로컬로 실행됩니다. 로그 텍스트는 업로드되지 않습니다.

파싱된 행

로그를 파싱하면 여기에 행이 표시됩니다.

액세스 로그를 붙여넣거나 예시를 불러온 뒤 로그 파싱을 클릭하세요.

grep 한 줄로 몇 줄 뽑아내는 건 쉽지만, 어떤 클라이언트 IP가 /api/login을 집중적으로 두드리고 있는지, 최근 로그 뭉치에서 5xx가 몇 건이나 나왔는지, 아니면 애초에 서버 포맷과 맞지 않는 줄이 몇 개인지 알아야 하는 순간부터는 부족해집니다. 이걸 액세스 로그 분석기라고 부르든 로그 파서라고 부르든, 매번 정규식을 새로 짜는 것보다 한 줄의 구조를 정확히 파악하는 쪽이 훨씬 빠릅니다.

서버, 지원 티켓, 로드밸런서에서 긁어온 Nginx나 Apache 액세스 로그 뭉치를 텍스트 덩어리가 아니라 IP, 상태 코드, 경로, 바이트 수, referer 같은 실제 필드로 보고 싶을 때 쓰면 됩니다. 액세스 로그 분석은 전부 지금 열려 있는 브라우저 탭 안에서 끝나며, 붙여넣은 내용은 어디에도 업로드되지 않습니다.

이 액세스 로그 분석 도구를 쓰는 이유

몇 개의 하드코딩된 플레이스홀더가 아니라 실제 서버 포맷을 기준으로 만들었습니다.

실제 log_format·LogFormat 줄을 그대로 붙여넣기

nginx.conf의 log_format 지시어나 httpd.conf의 LogFormat 줄을 $upstream_response_time, %{X-Forwarded-For}i 같은 커스텀 필드까지 포함해 그대로 복사해 오면, 이 액세스 로그 분석 도구가 바로 표의 열로 바꿔줍니다. 새 플레이스홀더 문법을 익힐 필요도, 몇 가지 프리셋 중 어느 것이 가장 비슷한지 추측할 필요도 없습니다.

원본 nginx log_format 지시어가 그대로 표의 열로 바뀌는 모습

잘못된 줄은 숨기지 않고 그대로 보여줍니다

선택한 포맷과 맞지 않는 줄을 조용히 버리거나 애매한 경고 한 줄로 넘어가지 않습니다. 줄 번호와 원본 텍스트를 그대로 붙여 목록에 표시하므로, 결과에서 행이 빠진 건 아닌지 의심하는 대신 어디서 왜 어긋났는지 바로 확인할 수 있습니다.

일치하지 않은 로그 줄이 줄 번호와 원본 텍스트와 함께 나열된 모습

원본 로그 줄에서 필터링 가능한 표까지

로그를 파싱하고, 필터링하고, 깔끔한 표로 내보내는 세 단계입니다.

01

로그를 붙여넣고 포맷 고르기

Nginx나 Apache 액세스 로그 원문을 붙여넣으세요. 어떤 프리셋이 맞는지 잘 모르겠다면 내장 예시를 먼저 불러오세요 — 일부러 형식이 어긋난 줄이 하나 섞여 있어서 불일치가 어떻게 표시되는지 미리 볼 수 있습니다.

  • Nginx combined와 Apache combined는 구조가 완전히 같아서(IP, 시간, 요청, 상태 코드, 바이트 수, referer, user agent) 아무거나 골라도 결과는 동일합니다
  • 커스텀을 고르면 log_format/LogFormat 원문을 그대로 받아들일 뿐, 정규식을 직접 쓸 필요는 없습니다
02

로그 파싱 클릭 (또는 Ctrl/Cmd+Enter)

타이핑하는 동안 자동으로는 파싱되지 않습니다 — 액세스 로그는 흔히 수천 줄이라 키를 누를 때마다 전체를 다시 매칭하면 낭비이기 때문입니다. 로그 파싱을 한 번 클릭하거나 단축키를 누르면 표가 채워집니다.

  • 이후 포맷 템플릿을 바꿔도 저절로 다시 파싱되지 않습니다. 기존 표는 흐릿해진 채로 남아 있다가 로그 파싱을 다시 클릭해야 갱신됩니다
03

필터링하고 내보내기

상태 코드와 경로 필터는 이미 파싱된 행에 즉시 적용되므로 다시 로그 파싱을 누를 필요가 없습니다. 요약 패널(상위 IP, 상위 경로, 상태 코드 분포)도 필터에 맞춰 함께 갱신됩니다. 현재 보이는 행을 CSV, JSON, 일반 텍스트로 복사하거나 다운로드하세요.

  • 상태 코드/경로 필터는 화면에 보이는 것과 내보내는 내용만 바꿀 뿐, 상태 줄에 표시되는 전체 파싱 행 수는 절대 바꾸지 않습니다
파서로 이동

이 표가 원본 텍스트보다 더 주는 것

실제 액세스 로그를 조사하기 위한 필드 추출, 필터, 집계 기능입니다.

네 가지 내장 포맷 프리셋

Nginx combined, Nginx common, Apache Common Log Format, Apache combined이 대부분의 기본 서버 설정을 별도 작업 없이 그대로 커버합니다.

실제 log_format·LogFormat 지시어를 커스텀 템플릿으로

nginx.conf의 어떤 $변수든, httpd.conf의 어떤 % 지시어든 — %{Referer}i 같은 이름 있는 요청/응답 헤더까지 포함해서 — 지시어 안의 문자 그대로를 기준으로 매칭되어 표의 열이 됩니다.

상태 코드·경로 필터

표를 상태 코드 범위(2xx–5xx)나 정확한 코드로, 또는 경로에 특정 문자열이 포함되거나 정규식과 일치하는 요청으로 좁혀볼 수 있습니다. 다시 파싱할 필요는 없습니다.

상위 IP, 상위 경로, 상태 코드 분포

요약 패널이 현재 필터링된 행을 기준으로 상태 코드별 개수를 세고 요청이 가장 많은 클라이언트 IP와 경로를 나열합니다 — 트래픽 급증이나 공격 흔적을 찾을 때 가장 먼저 보게 되는 값들입니다.

줄 번호가 붙은 잘못된 줄 목록

선택한 포맷과 맞지 않는 모든 줄이 1부터 시작하는 줄 번호와 원본 텍스트와 함께 나열되므로, 몇 줄 안 되는 이상한 줄이 조용히 통계에서 사라지는 일이 없습니다.

CSV·JSON·일반 텍스트 내보내기

현재 필터로 화면에 보이는 행만, 표와 같은 열 구성으로 내보냅니다. 바로 스프레드시트나 다른 도구에 옮겨 쓸 수 있습니다.

무엇을 일치로 보고, 무엇은 아닌지

잘못된 줄, 커스텀 포맷, 그리고 아직 다루지 않는 범위에 대한 정확한 동작입니다.

한 줄은 포맷 전체와 일치하거나, 잘못된 줄로 분류됩니다
부분 일치는 없습니다. 선택한 템플릿과 처음부터 끝까지 맞지 않는 줄은 줄 번호와 텍스트가 함께 잘못된 줄 목록에 들어가고, 그 줄의 어떤 필드도 표에 추가되지 않습니다.
요청 부분이 이상해도 나머지는 일치로 처리되고, 메서드·경로만 비워집니다
요청 부분이 "-"이거나 "METHOD 경로 프로토콜" 형태가 아니어도 그 줄은 여전히 일치로 처리되어 표에 나타납니다 — IP, 상태 코드, 바이트 수 같은 나머지 필드는 정상적으로 파싱되었으므로, 그 행의 메서드·경로·프로토콜만 비워둡니다.
커스텀 템플릿은 정해진 $변수와 % 지시어만 인식합니다
등록되지 않은 Apache % 한 글자 지시어를 쓰거나 템플릿에 $나 % 토큰이 아예 없으면, 추측해서 엉뚱한 열을 만드는 대신 구체적인 오류를 보여줍니다.
한 번에 붙여넣을 수 있는 양은 300,000자, 20,000줄까지입니다
이 한도는 브라우저 탭에서 파싱 속도와 예측 가능성을 지키기 위한 것입니다. 한도를 넘는 큰 로그는 더 작은 배치로 나눠 붙여넣으세요.
상태 코드·경로 필터는 파싱된 줄 수나 잘못된 줄 수를 바꾸지 않습니다
필터는 이미 파싱된 행 중 어떤 것을 보여주고, 내보내고, 집계할지만 바꿉니다. "N행 파싱, M행 불일치" 상태 문구는 항상 가장 최근의 전체 파싱 결과를 반영할 뿐, 현재 필터와는 무관합니다.

액세스 로그 분석 자주 묻는 질문

Nginx나 Apache 액세스 로그를 온라인에서 분석하기 전에 사람들이 자주 묻는 질문입니다.

Nginx 액세스 로그를 온라인에서 무료로 분석할 수 있는 도구가 있나요?

네, 위에 Nginx 또는 Apache 액세스 로그를 붙여넣고 로그 파싱 버튼만 누르면 바로 표가 나타납니다. 회원가입도, 설치도, 파일 업로드도 필요 없이 지금 쓰고 있는 브라우저 탭에서 자바스크립트로 동작합니다.

Apache 접속 로그도 무료로 분석해주는 도구가 있나요?

네, 이 도구는 Apache Common Log Format과 combined 포맷을 모두 지원합니다. Common Log Format(%h %l %u %t "%r" %>s %b)에는 referer와 user-agent 필드가 없고, combined 포맷은 그 두 값을 마지막에 큰따옴표로 묶어 덧붙인 형태입니다. Nginx의 기본 combined 포맷도 구조가 동일합니다.

커스텀 log_format을 쓰는 Nginx 로그는 어떻게 파싱하나요?

포맷 템플릿에서 커스텀을 선택하고 nginx.conf의 log_format 줄을 그대로 붙여넣으면 됩니다. 예를 들어 $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" 같은 지시어를 넣으면 각 $변수가 나타나는 순서대로 표의 열이 됩니다. 정규식을 직접 쓸 필요는 없습니다.

액세스 로그란 정확히 무엇인가요?

액세스 로그는 웹 서버가 요청 하나마다 남기는 한 줄짜리 기록으로, 클라이언트 IP, 요청 시각, 메서드와 경로, 상태 코드, 응답 바이트 수 같은 값이 정해진 순서로 들어 있습니다. 이 액세스 로그 분석 도구는 그 한 줄을 필드별로 쪼개 표로 보여주므로, 원문을 한 줄씩 눈으로 읽지 않고도 원하는 값을 바로 확인할 수 있습니다.

로그 파일을 서버에 업로드하지 않고 브라우저에서만 분석할 수 있나요?

네. 붙여넣은 내용은 어디에도 전송되지 않습니다. 파싱, 필터링, 내보내기 모두 브라우저 탭 안에서 자바스크립트로만 처리되며 서버로 업로드하거나 저장, 기록하는 과정이 전혀 없습니다. 액세스 로그에는 실제 클라이언트 IP나 요청 경로가 그대로 담겨 있는 경우가 많아서 이 점이 특히 중요합니다.

상태 코드별 통계는 어떻게 확인하나요?

결과 표 아래의 요약 패널이 현재 필터가 적용된 행을 기준으로 상태 코드별 개수, 요청이 가장 많은 경로, 요청이 가장 많은 클라이언트 IP를 자동으로 집계해 보여줍니다. 상태 코드나 경로 필터를 바꾸면 다시 파싱하지 않아도 이 요약이 즉시 갱신됩니다.

붙여넣을 수 있는 액세스 로그 크기에 제한이 있나요?

한 번에 붙여넣을 수 있는 로그는 300,000자, 20,000줄까지입니다. 큰 서포트 티켓 발췌본이나 수천 줄짜리 로그 tail 정도는 충분히 감당하는 크기입니다. 서버의 전체 로그 파일이라면 여러 배치로 나눠 각각 파싱하세요.

이 도구가 잘못 처리하는 실제 로그 줄을 발견하셨나요?

지금 바로 액세스 로그 분석 시작하기

Nginx나 Apache 액세스 로그를 붙여넣으면 몇 초 만에 필터링하고 내보낼 수 있는 표가 됩니다 — 업로드도, 회원가입도 필요 없습니다.

다음에 어떤 경로를 누가 집중적으로 두드리고 있는지, 또는 요청이 왜 실패하는지 확인해야 할 때를 위해 이 무료 액세스 로그 분석 도구를 북마크해 두세요.

모든 파싱은 브라우저에서 로컬로 실행됩니다.