-
Jaeger 설치하기24년 11월 이전/Distributed Tracing 2023. 2. 19. 20:49반응형
이 문서는 분산 추적 시스템 중 하나인
jaeger
를 설치하는 것을 다루고 있습니다. 특히, 하나의 바이너리 파일의 실행으로 간단하게 분산 추적 시스템을 구축할 수 있는all-in-one
모드로 실행하는 것을 목표로 합니다.준비 사항
이 문서는
Docker
환경에서Jaeger
를 설치합니다. 따라서,Docker
가 필요합니다.- Docker v20.10.12 이상
- docker-compose v1.29.2 이상
Jaeger 설치
다음 명령어로,
Jaeger
를 설치할 수 있습니다.$ docker run -d --name jaeger \ -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ -e COLLECTOR_OTLP_ENABLED=true \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ -p 14250:14250 \ -p 14268:14268 \ -p 14269:14269 \ -p 9411:9411 \ jaegertracing/all-in-one:1.42
만약
docker-compose
를 이용하여 구성한다면, 다음과 같이 구성할 수 있습니다.version: "3.9" services: jaeger: image: "jaegertracing/all-in-one:1.42" environment: - COLLECTOR_ZIPKIN_HOST_PORT=:9411 - COLLECTOR_OTLP_ENABLED=true ports: - "6831:6831/udp" - "6832:6832/udp" - "5778:5778" - "16686:16686" - "4317:4317" - "4318:4318" - "14250:14250" - "14268:14268" - "14269:14269" - "9411:9411" networks: - getting-started-distributed-tracing networks: getting-started-distributed-tracing: driver: bridge
docker-compose
를 이용한다면 다음 명령어로 실행이 가능합니다.$ docker compose up [+] Running 1/1 ⠿ Container ch02-jaeger-1 Recreated 0.1s Attaching to ch02-jaeger-1 ch02-jaeger-1 | 2023/02/19 12:11:01 maxprocs: Leaving GOMAXPROCS=6: CPU quota undefined ch02-jaeger-1 | {"level":"info","ts":1676808661.6135793,"caller":"flags/service.go:119","msg":"Mounting metrics handler on admin server","route":"/metrics"} # ... ch02-jaeger-1 | {"level":"info","ts":1676808662.6579118,"caller":"channelz/funcs.go:340","msg":"[core][Channel #10] Channel Connectivity change to IDLE","system":"grpc","grpc_log":true}
정상적으로 실행이 되면, 브라우저에서 다음 URL을 접속해봅니다.
다음 화면이 보이면 성공입니다.
각 포트의 의미
각 포트의 의미는 다음과 같습니다.
port protocol component function 6831 UDP agent 대부분의 SDK에서 Jaeger로 트레이싱 정보를 전달하는 포트입니다. 6832 UDP agent Node.js SDK에서 Jaeger로 트레이싱 정보를 전달하는 포트입니다. 5778 HTTP agent 샘플링 등의 설정을 확인할 수 있습니다. 16686 HTTP query 프론트엔드 서비스를 확인할 수 있습니다. 4317 HTTP collector COLLECTOR_OTLB_ENABLED가 활성화되어 있다면, gRPC 기반의 OTLP(오픈 텔레메트리 프로토콜)을 수신합니다. 4318 HTTP collector COLLECTOR_OTLB_ENABLED가 활성화되어 있다면, http 기반의 OTLP(오픈 텔레메트리 프로토콜)을 수신합니다. 14268 HTTP collector 클라이언트로부터 직접 트레이스 정보를 수신합니다. 14250 HTTP collector model.proto 를 수신합니다. 9411 HTTP collector Zipkin호환 엔드포인트입니다. 여러 컴포넌트가 있지만, 이 문서에서는 따로 설명하지 않습니다. (기회가 있다면, 추후 이어지는 장에서 설명하도록 하겠습니다.)
참고
728x90