관리 메뉴

피터의 개발이야기

[APM] PinPoint 설치 - 1편 - JAVA, hbase 설치 본문

DevOps/Pinpoint

[APM] PinPoint 설치 - 1편 - JAVA, hbase 설치

기록하는 백앤드개발자 2020. 12. 13. 08:00
반응형

나의 첫 APM은 Splunk

전자결제팀 소속으로 근무할 때에 splunk를 사용하였다.

특정 거래의 transaction_id를 검색하며, client, Auth, Engin에서 수행된 로그를 한 눈에 볼 수 있었다.

 

https://www.splunk.com/ko_kr

데시보드에는 현재의 트래픽과 FDS 장애 대응이 자세히 실시간으로 시각화 되었다.

Splunk는 로그를 수집하고 사용자가 원하는 결과를 추출하는 대용량 로그 수집/분석 시스템이었다.

하지만 치명적인 단점은 가격이 비싸다는 것이다.

 

Pinpoint의 가장 큰 장점은 무료이며,

특별히 서비스코드 작업 없이 환경설정만으로 바로 적용이 가능하다는 점이다.

최소한의 aws amazone linux만 있다면

무료로 APM을 가질 수 있는 것이다.

 

Pinpoint 설치

설치에는 마스터와 에이젼트,  Web UI로  나뉘어진다.

 - hbase 1.2.7 (openjdk 8)

 - pinpoint 1.8.4 : agent, collector, web

 

아키텍쳐

github.com/pinpoint-apm/pinpoint/blob/master/doc/overview.md

 

Agent에서 데이터를 Collector로 수집하고 Hbase에 적제한다. Web은 적제된 데이터를 보여준다.

데이터의 흐름은 다음과 같다. 

 

     Agent (spring boot와 같이 올라감)

Collector (tomcat에 설치)

     hbase (데이터 저장)

     Web (데이터 조회

 

 

linux 설치 

개인적인 공부차원에서 VMware를 통해 CentoOS7을 설치하여 운영하고 있다.

aws amazone linux2도 CentOS 계열이기 때문에 yum으로 동일하게 설치할 수 있다.

 

 

 

openjdk 8 설치

sudo yum install -y java-1.8.0-openjdk-devel.x86_64

설치된 경로 : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64

 

wget 설치

 

hbase 설치

 

hbase 다운로드

wget http://archive.apache.org/dist/hbase/1.2.7/hbase-1.2.7-bin.tar.gz -P /home/pinpoint/

 

 hbase 압축해제 및 링크 설정

 

hbase-env.sh 설정

# vi hbase/conf/hbase-env.sh

JAVA_HOME 추가

# java 8에서 사용되지 않는 Perm 옵션 제거

 

hbase-site.xml 설정 : 데이터 저장 위치

# vi hbase/conf/hbase-site.xml

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/pinpoint/hbase-data/data</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/pinpoint/hbase-data/zookeeper</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    <description>
      Controls whether HBase will check for stream capabilities (hflush/hsync).

      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.

      WARNING: Setting this to false blinds you to potential data loss and
      inconsistent system state in the event of process and/or node failures. If
      HBase is complaining of an inability to use hsync or hflush it's most
      likely not a false positive.
    </description>
  </property>
</configuration>

# 디렉토리 생성(hbase.rootdir 은 자동생성되므로 zookeeper 폴더만 생성)

> mkdir -p /home/pinpoint/hbase-data/zookeeper

 

hbase 구동

# hbase 시작
> hbase/bin/start-hbase.sh

 

# hbase 중지
> hbase/bin/stop-hbase.sh

-- hbase 구동 에러 발생 -> 포트를 열어야 한다. 

 

방화벽 열기

# 2181 : 클라이언트가 ZooKeeper 연결에 사용하는 포트 열기
# firewall-cmd --permanent --zone=public --add-port=2181/tcp

 

# 16010 : HBase 마스터 웹 포트 열기

# firewall-cmd --permanent --zone=public --add-port=16010/tcp

 

# HBase 마스터 웹 페이지

 

 

참조

yamoe.tistory.com/542?category=92411

albamapp.atlassian.net/wiki/spaces/blog/pages/1022459942/APM

peterica.iptime.org:16010/master-status

반응형
Comments