MQ Watcher
ActiveMQ Classic의 메시지 저장 파일을 살펴보는 오픈소스 도구입니다. 원본 파일을 변경하지 않고 메시지·수신 확인·트랜잭션 기록을 로컬에서 추적합니다.
실제 작업 환경
ActiveMQ Classic 저장소의 복사본을 열어 메시지·수신 확인·구독·트랜잭션을 살펴봅니다. 각 기록을 저널 파일과 바이트 위치에 연결해 운영자가 원본 근거를 확인할 수 있도록 합니다.
무엇을 하는가
KahaDB 저널 프레이밍(배치, 레코드 헤더, 커맨드 엔벨로프, 체크섬)을 파싱해 서로 관련된 증거를 연결합니다. 여러 스토어를 탭으로 열고 두 스냅샷을 A/B로 비교하며, 특정 JMSMessageID를 모든 스토어의 증거에서 추적하고, 인시던트 노트와 저널 보존 정보를 확인한 뒤 마스킹된 증거 번들을 내보낼 수 있습니다.
읽기 전용이 중요한 이유
도구 전체가 읽기 전용으로 동작합니다. 스토어를 쓰기 모드로 열거나 제품 JAR를 로드하지 않고, 복구나 컴팩션도 시작하지 않습니다. 잘못된 런타임이나 복구 경로로 스토어를 열면 조사 중인 증거가 바뀔 수 있기 때문입니다. CLI는 127.0.0.1에만 바인딩되며 업로드 엔드포인트가 없습니다.
증거 흐름
스토어 식별자는 디렉토리 이름이 아니라 Worker가 계산한 콘텐츠 기반 SHA-256 서명입니다. 이름을 바꿔도 식별자가 유지되므로 스냅샷 간 비교에 사용할 수 있습니다. 모든 픽스처 테스트는 스캔 전후 소스 파일의 해시를 비교해 바이트가 하나라도 달라지면 실패합니다. 인식되지 않은 레이아웃은 추측하지 않고 Unknown / Unsupported / Partial로 표시합니다.
검증된 범위
GitHub에 공개한 v0.4.0에서 정확한 JMSMessageID를 기준으로 메시지를 추적할 수 있습니다. 테스트한 ActiveMQ 버전과 시나리오는 호환성 표에 기록되어 있으므로, 다른 저장 형식에 사용하기 전에 확인하세요.
어디서 멈추는가
MQ 워처는 스토어에서 확인되는 내용을 보여줍니다. 각 조사 단서가 표시된 이유와 그 단서만으로는 증명할 수 없는 내용을 함께 설명하며, 원인 분석과 복구는 별도로 수행해야 합니다.

