reqlog — 장애 진단 및 복구

최신 도구 가이드 / 장애 진단 및 복구 / reqlog.html

장애 진단 및 복구원문등록 2026-10-18

여러 시스템에 걸친 요청을 추적하고 필터링하는 분산 요청 추적·서버 장애 분석 도구입니다.

기본 정보

프로그램 이름reqlog (리퀘스트로그)
한 줄 소개여러 시스템에 걸친 요청을 추적하고 필터링하는 분산 요청 추적·서버 장애 분석 도구입니다.
개발·유지reqlog contributors
공식 홈페이지https://reqlog.sh/
공식 문서https://reqlog.sh/docs/
공식 다운로드https://reqlog.sh/downloads
지원 운영체제Linux, macOS (Go 1.22+)
라이선스Apache-2.0
안정 버전1.8.2 (2026-10-12 출시) — 확인일 2026-10-18
GitHub 저장소https://github.com/FirasLatrech/reqlog
분류장애 진단 및 복구 (태그: 분산 추적, 로그, 장애 분석, 서버, 트러블슈팅)

이 프로그램은 무엇인가?

reqlog는 하나의 요청이 여러 서비스를 거치는 분산 시스템에서, 그 요청의 전체 흐름을 추적하고 관련 로그를 통합 검색하는 도구입니다. HTTP 요청 ID·trace ID로 여러 서비스의 로그를 연결해 장애 원인을 빠르게 좁힐 수 있게 해 줍니다.

마이크로서비스 환경에서 장애가 발생하면 각 서비스 로그를 따로 열어봐야 하는데, reqlog는 여러 로그 소스를 하나의 타임라인으로 병합하고 필터링합니다. 액세스 로그·애플리케이션 로그·에러 로그를 한 화면에서 추적할 수 있습니다.

어떤 문제를 해결하는가?

  • ('장애 대응에서', '요청이 어떤 서비스에서 실패했는지 파악해야 할 때', 'trace ID로 여러 서비스 로그를 연결해 실패 지점을 특정할 수 있습니다.')
  • ('성능 분석에서', '어느 구간에서 지연이 발생하는지 확인할 때', '서비스별 소요 시간을 타임라인에서 비교할 수 있습니다.')
  • ('로그 탐색에서', '수십 GB의 로그에서 특정 요청을 찾아야 할 때', '실시간 필터로 요청 ID·경로·상태 코드 기반 검색이 가능합니다.')

주요 기능

분산 추적

요청 ID·trace ID로 여러 서비스의 로그를 연결

  • 활용 상황: 마이크로서비스 장애 분석
  • 얻는 결과: 하나의 요청이 거친 전체 경로를 한눈에 확인
  • 제한 사항: 로그에 trace ID가 기록되어야 연결 가능합니다.

실시간 필터

경로·상태 코드·지연 시간·요청 ID로 실시간 필터

  • 활용 상황: 대량 로그에서 관련 항목만 추출
  • 얻는 결과: 장애 신호만 골라 볼 수 있음
  • 제한 사항: 매우 넓은 필터는 성능에 영향을 줄 수 있습니다.

타임라인 뷰

여러 서비스의 로그를 하나의 타임라인으로 병합

  • 활용 상황: 요청 흐름을 시간순으로 추적
  • 얻는 결과: 서비스 간 병목·지연 구간 시각적으로 확인
  • 제한 사항: 시각 차이가 큰 로그는 정렬이 어려울 수 있습니다.

로그 소스 추가

파일·syslog·stdin·HTTP 엔드포인트에서 로그 수집

  • 활용 상황: 기존 로그 인프라와 통합
  • 얻는 결과: 로그를 옮기지 않고 reqlog로 수집
  • 제한 사항: 네트워크 로그 수집 시 방화벽 설정 필요.

설치 및 실행

Linux (바이너리)

공식 바이너리를 다운로드해 PATH에 추가합니다.

curl -fsSL https://reqlog.sh/install.sh | sh
reqlog --version

소스 빌드

Go 1.22+로 소스를 빌드합니다.

git clone https://github.com/reqlog-dev/reqlog
cd reqlog
make build
sudo make install

macOS

홈브리우를 사용합니다.

brew install reqlog

실제 사용 예제

로그 소스 지정·실시간 추적

여러 로그 파일을 소스로 지정해 실시간 추적을 시작합니다.

$ reqlog tail --source /var/log/nginx/access.log --source /var/log/app/app.log

[reqlog] 2 sources attached, tailing...
[12:01:23] nginx  GET /api/orders  200  trace=abc123  45ms
[12:01:23] app    process_order id=4821  trace=abc123
[12:01:24] nginx  GET /api/users   500  trace=def456  1203ms

trace ID로 요청 추적

특정 요청의 전체 흐름을 trace ID로 추적합니다.

$ reqlog trace abc123 --source /var/log/nginx/access.log --source /var/log/app/app.log

[trace] abc123 — 3 spans
  nginx    GET /api/orders      45ms   200
  gateway  forward to app        3ms   OK
  app      process_order      412ms   OK
[summary] total 460ms · 3 services · OK

장애 필터링

5xx 응답·느린 요청만 필터링합니다.

$ reqlog tail --source /var/log/nginx/access.log --filter 'status>=500 OR latency>1000ms'

[12:03:11] nginx  GET /api/users   500  trace=aaa111  2301ms
[12:03:45] nginx  POST /api/pay    502  trace=bbb222  5012ms
[filter] 2 matching entries (of 847 total)

장점과 한계

장점

  • 여러 서비스 로그를 하나의 타임라인으로 병합·추적
  • trace ID 기반 분산 추적 — 장애 원인을 빠르게 특정
  • 실시간 필터로 대량 로그에서 관련 항목만 추출
  • 파일·syslog·stdin·HTTP 다중 로그 소스 지원

사용 전에 고려할 점

  • 로그에 trace ID·요청 ID가 기록되어야 분산 추적 기능을 활용할 수 있습니다.
  • 매우 대용량(수십 GB/시간) 로그 스트림은 필터링 성능 저하 가능.
  • GUI 대시보드는 아직 제공되지 않음(터미널 중심).

비슷한 프로그램과 비교

프로그램특징이런 경우에 적합
grep + awk셸 명령 조합으로 로그 검색·필터간단한 단일 파일 로그 검색
Elastic Stack (ELK)로그 수집·색인·시각화 플랫폼장기 보관·대시보드·알림이 필요한 전문 로그 인프라
Jaeger / Zipkin분산 트레이싱 전문 플랫폼OpenTelemetry 기반 정밀 트레이싱

공식 자료 및 추가 학습

버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요.

실제 실행 화면

아래는 사용 흐름을 이해하기 위해 만든 합성 예시 화면입니다(실제 실행 결과 아님). 화면은 합성 예시이며 실제 실행 결과가 아닙니다.

reqlog 분산 추적 예시: trace abc123의 3서비스 경로(460ms), 5xx 필터링 결과

실제 운영 중인 서버

이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.