[MSA] Zipkin 개요 & 설치방법
이번에는 데이터 수집 그리고 추적을 위해서 Zipkin이라는 오픈소스를 사용하려 합니다. 쉽게 말해 분산추적을 위한 라이브러리 입니다.
#Zipkin 개요
Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템 (오픈소스)
분산환경에서의 시스템 병목 현상 파악
Collector, Query Service, DataBasem WebUi로 구성
Span
-하나의 요청에 사용되는 작업의 단위
-64 bit uniques ID
Trace
-트리 구조로 이뤄진 Span Set
-하나의 요총에 대한 같은 Trace ID 발급
해당 특징에서 알 수 있듯 Zipkin은 분산환경에서 시스템 병목 현상을 파악합니다. 여기서 분산환경이란, 저희가 구축한 MSA형태의 어플리케이션 처럼 서비스가 분리되어 있는 환경을 뜻합니다.
#Spring Cloud Sleuth 개요
스프링 부트 애플리케이션을 Zipkin과 연동
요청값에 다른 Trace ID, Span ID 부여
Trace와 Span Ids를 로그에 추가 가능
-servlet filter
-rest template
-scheduled actions
-message channels
-feign client
쉽게 말해 Spring Boot Application과 Zipkin을 연동시켜주는 라이브러리입니다.
#Zipkin 설치
Quickstart · OpenZipkin
Quickstart In this section we’ll walk through building and starting an instance of Zipkin for checking out Zipkin locally. There are three options: using Java, Docker or running from source. If you are familiar with Docker, this is the preferred method t
zipkin.io
먼저 해당 Url로 이동해줍니다. Docker는 후에 다룰 것이기에 패스하고 먼저 Windows환경에서 실행시키기 위해서 Java로 되어있는 항목을 참고합니다.
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
cmd에서 다음과 같이 입력해줍니다. 만약 환경변수가 편집이 되어 있지 않다면 Cmd에서 실행이 어려울 수 있으니 꼭 확인해줍니다.
만약 정상적으로 실행이 완료가 됐다면 아래와 같은 화면을 확인 할 수 있습니다.
http://127.0.0.1:9411/ 로 접속해 줍니다. Zipkin Server의 Default Port 입니다.
감사합니다.