블랑v 2024. 1. 23. 17:39

자세한 정리와 핵심 요약 포스팅

 

https://csg1353.tistory.com/168

 

[포팅 메뉴얼] 스카우터(Scouter), 핀포인트(Pinpoint) 설치 가이드 - 1

핀포인트(Pinpoint)의 경우 문서가 길어져 분리하였다. 다음 링크를 참조할 것 : 이번 포스팅에서는, Scouter와 Pinpoint를 Linux 환경에 구축하는 메뉴얼을 작성하였다. 환경 사양의 경우 다음과 같다.

csg1353.tistory.com

 

해당 포스팅을 바탕으로 새롭게 포스팅을 작성하였다.

 

구조도

 

 

나의 경우는 Collector(Linux 서버1), Tomcat 설치된 별도 서버(Linux 2), 그리고 Windows Client 환경을 사용하였다.

CentOS 7 version 사용.

 

Server

.. 기본적인 내용 생략. 다음 공식 setup 가이드를 참조할 것.

https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Setup_kr.md

 

 

설치 후 conf 파일에서 다음을 적용해주자.

 

 

# Agent Control and Service Port(Default : TCP 6100)
net_tcp_listen_port=6100

# UDP Receive Port(Default : 6100)
net_udp_listen_port=6100

# DB directory(Default : ./database)
db_dir=./database

# Log directory(Default : ./logs)
log_dir=./logs

 

여담으로, Client 자체에서 Conf를 수정하거나, 확인할 수도 있다. 이런 식으로.

UTF가 깨지긴 했지만 어쨌든 양방향 공유가 된다.

 

 

 

설치후 6100 TCP / UDP 포트를 열어주면 된다. 이 과정에서 start sh script 실행 이슈가 있었다. 다음 포스팅을 참조.

 

https://csg1353.tistory.com/147

 

[Linux] nohup shell script 실행 불가

centos nohup 스크립트 실행 불가 문제가 발생했다. 'nohup failed to run command 'java' no such file or directory' 문제. 즉, 자바를 읽지 못하는 문제이다. 문제 상황 1. /etc/progfile에 JAVA_HOME PATH 저장 후 root 계정과

csg1353.tistory.com

 

  • 실행
    /scouter/server/startup.sh
    /scouter/server/startup.bat
  • 중지
    /scouter/server/stop.sh
    /scouter/server/stop.bat

 

 

 

Client

 

JDK 인식 불가 이슈

JDK 인식 불가 이슈. 기본적으로 Eclipse 환경에 따라 최소 11버전을 요한다고 한다.

 

Windows 클라이언트로 실행하기 위해 해당 모듈로 다운로드(JAVA 11++ , .ini 파일에서 직접 경로 지정)

최소 java 11버전 이상을 필요로 하므로, clinet 폴더 내부의 .ini 파일을 열어 11 jdk의 정로를 지정해주자.

이클립스 설정과 동일하다.

-startup
plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.400.v20211117-0650
-data
@user.home/scouter
-vm
C:\Program Files\Java\openlogic-openjdk-11.0.21+9-windows-x64\bin\javaw.exe
-vmargs
-Xms128m
-Xmx1024m
-XX:+UseG1GC
-Dosgi.requiredJavaVersion=11

 

기본 클라이언트 실행 환경

 

 

Collector 연동(Agent)

 

https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Setup.md

 

Host Agent

해당 호스트(이 Agent가 설치된 운영체제 환경)에서의 메모리 사용량 등을 조회한다.

scouter/agent.host/conf/scouter.conf

설치 경로 내부의 conf 파일을 수정하고, /scouter/agent.host/host.sh을 통해 실행하자.

 

### scouter host configruation sample


net_collector_ip=192.168.56.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
cpu_warning_pct=80
cpu_fatal_pct=85
cpu_check_period_ms=60000
cpu_fatal_history=3
cpu_alert_interval_ms=300000
disk_warning_pct=88
disk_fatal_pct=92

 

 

Java Agent

Host Agent와 별개로, java API를 사용하여 해당 자바를 사용하는(주로 Tomcat) 프로세스의 수치를 파악할 수 있다.

tomcat 내부의 catalina.sh로 들어가서 환경 변수를 추가해주자.

.. 생략

#pinpoint agent Setting
    CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/pinpoint/pinpoint-agent-2.3.3/pinpoint-bootstrap-2.3.3.jar"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=Agent240122"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=AiwacsTestServer"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.config=/opt/pinpoint/pinpoint-agent-2.3.3/pinpoint-root.config"


#Scouter Agent Setting (here)
SCOUTER_AGENT_DIR="java agent 경로"
COLLECTOR_SERVER_IP="콜렉터 서버 주소"
export JAVA_OPTS="$JAVA_OPTS -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar"
export JAVA_OPTS="$JAVA_OPTS -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter.conf"

# export JAVA_OPTS="$JAVA_OPTS -Dnet_collector_ip=${COLLECTOR_SERVER_IP}"
이 옵션은 conf 내부만 제대로 한다면 하지 않아도 되는 것 같다.



주의 : Catalina.sh 해당 커맨드 라인 위에 지정할 것(아래부분은 메인 로직임)
# ----- Execute The Requested Command -----------------------------------------

 

또한 agent.java의 conf 역시 주석을 해제하고 설정해줄 것.

 

### scouter java agent configuration sample
obj_name=scouterAgentJava
net_collector_ip=192.168.56.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
hook_method_patterns=sample.mybiz.*Biz.*,sample.service.*Service.*
trace_http_client_ip_header_key=X-Forwarded-For
profile_spring_controller_method_parameter_enabled=false
hook_exception_class_patterns=my.exception.TypedException
profile_fullstack_hooked_exception_enabled=true
hook_exception_handler_method_patterns=my.AbstractAPIController.fallbackHandler,my.ApiExceptionLoggingFilter.handleNotFoundErrorResponse
hook_exception_hanlder_exclude_class_patterns=exception.BizException

 

이제 Tomcat 재기동시 스크립트에 따라 agent 역시 동일하게 동작할 것이다.

 

 

 

에러

 

1. 연동 안됨 문제

서버 상의 로그를 확인해보니 이런 식으로 'unknown(register) OBJECT_RESET_CACHE' 만 요청이 오는 것을 확인했다.

=> conf 주소 문제였다.

 

경로와 주소를 명확히 수정한 이후 해결 완료하였음!

 

 

참조

https://kingbbode.tistory.com/12?_x_tr_sch=http&_x_tr_sl=ko&_x_tr_tl=en&_x_tr_hl=ko

 

내 서비스에 Scouter APM을 적용해보기

Scouter APM이란? 서비스를 운영하면서 여러가지 요소로 장애를 겪지만, 대부분의 문제는 Applcation입니다. 문제의 원인을 찾는 것은 굉장히 중요한 일입니다. APM은 최종 사용자 에게 향상된 서비스

blog.kingbbode.com

 

https://velog.io/@onestone/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-APM-Scouter-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95

 

오픈소스 APM Scouter 설치 및 사용법

오픈소스 APM(Application Performance Monitoring) Scouter : 다양한 OS 및 Java 애플리케이션 성능 데이터 수집

velog.io