--- title: reqlog — 장애 진단 및 복구 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: 분산 시스템의 요청 흐름을 추적·필터링하는 서버 장애 분석 도구. 여러 서비스 로그를 통합 검색. tags: 프로그램, 장애 진단 및 복구, reqlog --- 여러 시스템에 걸친 요청을 추적하고 필터링하는 분산 요청 추적·서버 장애 분석 도구입니다. ## 기본 정보 | 프로그램 이름 | 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/ - [공식 문서 / 지식베이스](https://reqlog.sh/docs/) — https://reqlog.sh/docs/ - [공식 다운로드](https://reqlog.sh/downloads) — https://reqlog.sh/downloads - [릴리스 노트](https://reqlog.sh/changelog) — https://reqlog.sh/changelog - [소스 / 개발 자료](https://github.com/FirasLatrech/reqlog) — https://github.com/FirasLatrech/reqlog 버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요. ## 실제 실행 화면 아래는 사용 흐름을 이해하기 위해 만든 합성 예시 화면입니다(실제 실행 결과 아님). 화면은 합성 예시이며 실제 실행 결과가 아닙니다. ![reqlog 분산 추적 예시: trace abc123의 3서비스 경로(460ms), 5xx 필터링 결과](https://games.cursorai.co.kr/assets/reqlog-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/apps/troubleshooting/reqlog.html