reqlog — 장애 진단 및 복구
최신 도구 가이드 / 장애 진단 및 복구 / reqlog.html
여러 시스템에 걸친 요청을 추적하고 필터링하는 분산 요청 추적·서버 장애 분석 도구입니다.
기본 정보
| 프로그램 이름 | 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 기반 정밀 트레이싱 |
공식 자료 및 추가 학습
- 공식 홈페이지 — https://reqlog.sh/
- 공식 문서 / 지식베이스 — https://reqlog.sh/docs/
- 공식 다운로드 — https://reqlog.sh/downloads
- 릴리스 노트 — https://reqlog.sh/changelog
- 소스 / 개발 자료 — https://github.com/FirasLatrech/reqlog
버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요.
실제 실행 화면
아래는 사용 흐름을 이해하기 위해 만든 합성 예시 화면입니다(실제 실행 결과 아님). 화면은 합성 예시이며 실제 실행 결과가 아닙니다.

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