Notice
Recent Posts
Recent Comments
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

Grobble

Pinpoint 개발 환경 구축 본문

공부

Pinpoint 개발 환경 구축

smilu97 2022. 1. 29. 00:27

Pinpoint는 마이크로서비스 아키텍쳐와 같이 여러 노드들이 깊고 넓게 상호작용하는 시스템에서 각 노드들간의 상호작용을 모니터링하기 위한 모니터링 시스템이다.

 

기본적으로 모든 로그는 HBase 데이터베이스에 쌓는다. HBase 데이터베이스는 HDFS(Hadoop Distributed File System) 위에서 작동한다. HDFS는 이름 그대로 Hadoop이라는 프로젝트에서 파생된 파일시스템인데, Hadoop은 분산응용프로그램으로 대용량 데이터를 처리하는 것을 주요 목적으로 하는 프로젝트이다.

 

HDFS는 Erasure Code라는 기능을 제공하는데, 1.5배 정도의 낮은 오버헤드로 데이터 안정성을 보장할 수 있다고 한다. 데이터 안정성을 보장하기 위해 주로 시행되는 Replication은 보통 2카피에서 3카피정도를 만드는 것이 일반적이기 때문에 2.0배, 3.0배의 오버헤드를 가지고 있는 것과 비교하면 Erasure Code는 적은 저장매체를 필요로 한다는 점에서 좋다고 할 수 있을 것 같다. Erasure Code는 데이터를 여러개로 쪼개어 여러 머신에 분산시켜 놓는다. 그러다 어떤 저장매체가 고장나게 되면 Erasure Code와 나머지 고장나지 않은 정보들을 합쳐서 고장났던 정보를 복구할 수 있다.

Hbase 설치 준비 - ZooKeeper 설치

Hbase는 HDFS외에도 ZooKeeper라는 분산 코디네이터를 사용한다. 자세히 알아보지는 않았지만 분산 환경에서 Latch나 작은 메타데이터 공유를 지원하는 시스템인 것 같다.

OSX에서는 Homebrew를 통해 간단히 설치할 수 있었다.

그리고 이후에 실행시킬 pinpoint-web이 기본적으로 8080포트를 사용하려 하는데, ZooKeeper도 8080포트에 어드민 페이지를 올려놓는다. 설정파일 수정해서 어드민 페이지 포트를 변경하거나 아예 비활성화 시킬 수 있는데, Homebrew로 설치할 경우 이 설정파일 경로를 찾기가 꽤 힘들었다. 겨우 찾은 경로는 /usr/local/etc/zookeeper

https://brewinstall.org/install-zookeeper-on-mac-with-brew/

 

Install zookeeper on Mac with Brew - Big Sur, Mojave, Catalina, High Sierra, Capitan | BrewInstall

zookeeper is a centralised service for maintaining configuration information, naming, providing distributed synchronisation and group services

brewinstall.org

Hbase 설치 준비 - Hadoop 설치

HDFS를 사용하기 위해 Hadoop을 설치한다. 이것도 역시 Homebrew에서 친절하게 지원해주기 때문에 Java 버전만 신경써주면 쉽게 설치할 수 있었다. Pinpoint 에서는 Java8을 기준으로 하는 것 같아 Java8을 설치해주고 하둡을 설치해주었다.

Homebrew로 설치한 후에 기본적인 설정을 직접 해주어야 하는데 내용이 많으므로 아래 링크 참고

https://medium.com/@labuewilfred/how-to-install-hadoop-on-mac-os-9fb50a6f8053

 

How to install Hadoop on Mac OS

What is Hadoop ?

medium.com

Hbase 설치

Pinpoint에서 공식적으로 작동을 확인한 Hbase버전은 1.4.x 이다. 2 버전에도 붙일 수 있도록 별도 모듈을 제공하고 있지만 아직 배우는 단계이기 때문에 스킵했다. Hbase 공식 홈페이지에 가면 1.4 버전은 이미 묻혀있어서 조금 찾기 힘들었는데 따로 스태틱 아카이빙 해주는 곳을 찾아 들어가야했다. 필자는 https://archive.apache.org/dist/hbase/1.4.9/ 여기서 1.4.9 버전을 받아 설치했다.

Hbase도 역시 기본적으로 해줘야 할 설정이 조금 있는데 Hadoop과 매우 비슷한 형식의 XML 설정파일을 수정해주었다. 내용이 많으므로 아래 링크 참고. (XML 열고 닫는 게 이상하게 표기되어 있으므로 적당히 수정해줘야 함)

https://engati.com/blog/install-hbase-on-mac-in-5-minutes

 

Install HBase in a snap! A simple step-by-step guide

This 5-step guide will help you to install HBase on your Mac in just 5 minutes. Use it to store large volumes of time-series data with minimum effort!

www.engati.com

Pinpoint 빌드

https://github.com/pinpoint-apm/pinpoint

 

GitHub - pinpoint-apm/pinpoint: APM, (Application Performance Management) tool for large-scale distributed systems.

APM, (Application Performance Management) tool for large-scale distributed systems. - GitHub - pinpoint-apm/pinpoint: APM, (Application Performance Management) tool for large-scale distributed sys...

github.com

pinpoint 레포를 클론받아서 quickstart/testapp과 pinpoint 프로젝트를 빌드하면 각각 테스트용의 간단한 앱과 pinpoint-agent가 빌드된다.

https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.3.3

 

GitHub - pinpoint-apm/pinpoint: APM, (Application Performance Management) tool for large-scale distributed systems.

APM, (Application Performance Management) tool for large-scale distributed systems. - GitHub - pinpoint-apm/pinpoint: APM, (Application Performance Management) tool for large-scale distributed sys...

github.com

그리고 깃허브 릴리즈에서 2.3.3 바이너리를 받으면 pinpoint-web, pinpoint-collector를 찾을 수 있다.

이름의 느낌으로 보건데, pinpoint-web은 hbase에서 로그들을 읽어서 HTTP로 뿌려주는 앱이고 collector는 다수의 agent들에게 받은 log들을 hbase에 반영해주는 것 같다.

 

어찌저찌해서 HDFS, ZooKeeper, HBase, pinpoint-collector, pinpoint-web 순으로 실행시킨 후에 모니터링할 어플리케이션들을 빌드한 agent와 붙여서 실행시키고 나면, 8080포트에서 시각화된 로그들을 구경해볼 수 있다.