프로젝트 목록으로
공개됨오픈소스2026

MQ Watcher

ActiveMQ Classic의 메시지 저장 파일을 살펴보는 오픈소스 도구입니다. 원본 파일을 변경하지 않고 메시지·수신 확인·트랜잭션 기록을 로컬에서 추적합니다.

실제 작업 환경

ActiveMQ Classic 저장소의 복사본을 열어 메시지·수신 확인·구독·트랜잭션을 살펴봅니다. 각 기록을 저널 파일과 바이트 위치에 연결해 운영자가 원본 근거를 확인할 수 있도록 합니다.

스토어 개요 — 파싱된 저널 구조.
메시지 트레이스 — 모든 스토어 증거를 가로지르는 단일 JMSMessageID (v0.4.0).
스냅샷 비교 — 두 스토어 상태 간 A/B 차이.

무엇을 하는가

KahaDB 저널 프레이밍(배치, 레코드 헤더, 커맨드 엔벨로프, 체크섬)을 파싱해 서로 관련된 증거를 연결합니다. 여러 스토어를 탭으로 열고 두 스냅샷을 A/B로 비교하며, 특정 JMSMessageID를 모든 스토어의 증거에서 추적하고, 인시던트 노트와 저널 보존 정보를 확인한 뒤 마스킹된 증거 번들을 내보낼 수 있습니다.

읽기 전용이 중요한 이유

도구 전체가 읽기 전용으로 동작합니다. 스토어를 쓰기 모드로 열거나 제품 JAR를 로드하지 않고, 복구나 컴팩션도 시작하지 않습니다. 잘못된 런타임이나 복구 경로로 스토어를 열면 조사 중인 증거가 바뀔 수 있기 때문입니다. CLI는 127.0.0.1에만 바인딩되며 업로드 엔드포인트가 없습니다.

증거 흐름

스토어 식별자는 디렉토리 이름이 아니라 Worker가 계산한 콘텐츠 기반 SHA-256 서명입니다. 이름을 바꿔도 식별자가 유지되므로 스냅샷 간 비교에 사용할 수 있습니다. 모든 픽스처 테스트는 스캔 전후 소스 파일의 해시를 비교해 바이트가 하나라도 달라지면 실패합니다. 인식되지 않은 레이아웃은 추측하지 않고 Unknown / Unsupported / Partial로 표시합니다.

검증된 범위

GitHub에 공개한 v0.4.0에서 정확한 JMSMessageID를 기준으로 메시지를 추적할 수 있습니다. 테스트한 ActiveMQ 버전과 시나리오는 호환성 표에 기록되어 있으므로, 다른 저장 형식에 사용하기 전에 확인하세요.

어디서 멈추는가

MQ 워처는 스토어에서 확인되는 내용을 보여줍니다. 각 조사 단서가 표시된 이유와 그 단서만으로는 증명할 수 없는 내용을 함께 설명하며, 원인 분석과 복구는 별도로 수행해야 합니다.