Because:
서로 다른 개별 마이크로서비스에서 발생하는 로그를 연결지어 트랜잭션의 처음부터 끝까지 순서대로 추적해내는 것은 어렵기 때문
Therefore:
로그 데이터를 인덱싱하고, 검색할 수 있는 중앙 수집 지점을 만들어 전체 서비스 인스턴스의 모든 로그를 실시간 스트리밍함
클라우드 환경으로 옮겨오면서 애플리케이션은 더 이상 특정 사양과 장비에 종속되지 않는다.
도커같은 컨테이너는 본질적으로 짧은 수명을 전제로 하는 등, 결국 디스크의 저장 상태에 더 이상 의존할 수 없게 되었다.
Because:
디스크에 기록된 로그는 컨테이너가 재기동되면 사라질 수 있기 때문. 따라서 로그파일을 로컬 장비의 디스크에 기록하는 것에 의존해서는 안된다.
12요소 애플리케이션에서 말하는 원칙 중 하나는 로그 파일을 애플리케이션 내부에 저장하지 말라는 로그 외부화이다.
But:
마이크로서비스는 독립적인 물리적 장치 혹은 가상머신에서 운영되기 때문에 외부화하지 않은 로그 파일은 결국 각 마이크로서비스 별로 파편화된다.
즉, 여러 마이크로서비스에 걸쳐서 발생하는 트랜잭션을 처음부터 끝까지 순서대로 추적하는 것이 불가능
Therefore:
로그의 출처에 상관없이 모든 로그를 중앙 집중적으로 저장, 분석해야 한다.
즉, 로그의 저장과 처리를 서비스 실행 환경에서 분리하는 것.
-작성 중-