Page 27 -
P. 27
● 각 서버에 있는 로그를 검사하려면 여러 서버에 로그인해야 한다. 이는 꽤 번거로운 작업으
로, 특히 문제된 서비스의 트랜잭션양이 달라 다른 속도로 로그를 롤오버(rollover)해야 하는
경우라면 더욱 그렇다.
● 로그를 파싱하고 관련 로그 항목을 식별하는 자체 쿼리 스크립트를 작성해야 한다. 쿼리가
각각 다를 수 있어 로그에서 데이터를 질의하는 커스텀 스크립트가 엄청나게 늘어날 때가
많다.
● 서버에 남아 있는 로그를 백업하려면 저하된 서비스의 복구 프로세스를 연장해야 한다. 서
비스를 호스팅하는 서버가 완전히 고장 나면 일반적으로 로그는 유실된다.
여기 나열된 문제는 모두 필자가 종종 직면하는 실제 문제다. 분산 서버 간 문제를 디버깅하는 것
은 힘든 작업이며, 종종 문제를 식별하고 해결하기까지 오랜 시간이 걸린다. 훨씬 더 나은 접근 방
법은 모든 서비스 인스턴스의 모든 로그를 실시간으로 중앙 수집 지점으로 스트리밍해서 로그 데
이터에 인덱스를 추가하고 검색 가능하게 하는 것이다. 11
그림 11-3은 이 ‘통합’ 로깅 아키텍처의 작동 방법을 개념도 수준에서 보여 준다.
그림 11-3 수집된 로그와 각 로그 항목에서 고유 트랜잭션 ID를 조합하여 분산 트랜잭션의 디버깅을 용이하게 한다
ۄࢶय ࢲ࠺झ ઑ ࢲ࠺झ ઑ ࢲ࠺झ ઑ ࢲ࠺झ
ੋझఢझ ੋझఢझ ੋझఢझ ੋझఢझ Ҋ ࢲ࠺झ 스프링 클라우드 슬루스와 집킨을 이용한 분산 추적
ࣻ ݫழפ્ ݽٚ ؘఠܳ
ࣻೞৈ ҕా ؘఠ ࣗ۽
ࠁմ
ঔ ؘఠ ࣗ۽ ٜযৡ
ؘఠח ੋؙयغҊ Ѩ࢝ оמೠ
ഋधਵ۽ ػ
ѐߊ ߂ ۽Ӓ ؘఠܳ ௪ܻೞৈ ѐ߹ ے࣌ਸ ਸ ࣻ
झ݂ ۄ٘ ठܖझ ۽Ӓ ೦ݾী ನೣػ ୶ *%ܳ ࢎਊೞৈ
ࢲ࠺झ р ۽Ӓܳ োѾೡ ࣻ
다행히 그림 11-3의 로깅 아키텍처 구현을 지원하는 오픈 소스 제품과 상용 제품이 많이 있다. 그
리고 온프레미스(on-premise), 로컬 관리형 솔루션, 클라우드 기반 솔루션 중에서 선택할 수 있는
여러 가지 구현 모델도 존재한다. 표 11-1에 로깅 인프라스트럭처로 선택 가능한 제품을 요약했다.
409
macrospring_06.indd 409 2022-06-20 오후 1:10:06