Source : http://www.opennaru.com/openmaru/openmaru-apm/
오픈소스 WAS 를 위한 최고의 APM 솔루션을 소개합니다.
OPENMARU APM은 기업 내 도입, 운영 중인 자바 기반 애플리케이션의 최적화된 성능 구현 및 유지, 개선을 위해 실시간으로 모니터링하는 APM(Application Performance Management Solution)입니다.
OPENMARU APM 는 현재 동작 중인 WAS와 자바 애플리케이션을 실시간으로 모니터링해 성능, 장애 이벤트, 자원 사용량 등 성능관리 지표를 Call Tree 형태로 제공하고, DB SQL 처리 결과를 수집하여 현재 상태에 대한 성능 정보를 제공합니다.
사용자가 미리 설정한 임계값에 따라 자동 알림을 발생시켜 운영자가 WAS 애플리케이션의 성능 저하 및 장애 발생에 대해 능동적이고 즉각적인 조치를 취할 수 있도록 지원하고 서비스 처리 시 CPU 사용량, 메모리 Leak, Elapsed time을 추적하여 서비스의 안정적인 실행을 가능하게 합니다.
OPENMARU APM은 통계 기반의 정량 분석, Top 프로그램 분석 등을 위해 가독성이 뛰어난 다양한 형태의 통계 분석을 제공하며, 이러한 분석 데이터에 대한 정형/비정형 보고서 지원은 비즈니스 관점에서 운영자와 관리자의 신속한 의사 결정을 가능하게 합니다.
- 클라우드/컨테이너 환경에 최적화
- PaaS 환경에서 미터링 지원
- PaaS 환경을 위한 멀티테넌시 지원
- 장애 분석 및 조치에 특화
- 장애 예측 기능 제공
모니터링 지원환경
OpenShift , Docker , Kubernetes , Red Hat Linux, CentOS , AWS , Azure , UCloud
Source : http://www.opennaru.com/cloud/cloud-native-visiting-seminar/
* PaaS 환경에서 애플리케이션 모니터링의 차이점
*컨테이너 환경에서 꼭 봐야 할 모니터링 매트릭스
* 컨테이너 운영 환경에서 트러블슈팅 방안
* Grafana 모니터링 구성 화면 데모
* Jaeger/ Kiali 데모
* PaaS형 APM 애플리케이션 모니터링 데모
Source : http://www.opennaru.com/openmaru/openmaru-apm/
오픈소스 WAS 를 위한 최고의 APM 솔루션을 소개합니다.
OPENMARU APM은 기업 내 도입, 운영 중인 자바 기반 애플리케이션의 최적화된 성능 구현 및 유지, 개선을 위해 실시간으로 모니터링하는 APM(Application Performance Management Solution)입니다.
OPENMARU APM 는 현재 동작 중인 WAS와 자바 애플리케이션을 실시간으로 모니터링해 성능, 장애 이벤트, 자원 사용량 등 성능관리 지표를 Call Tree 형태로 제공하고, DB SQL 처리 결과를 수집하여 현재 상태에 대한 성능 정보를 제공합니다.
사용자가 미리 설정한 임계값에 따라 자동 알림을 발생시켜 운영자가 WAS 애플리케이션의 성능 저하 및 장애 발생에 대해 능동적이고 즉각적인 조치를 취할 수 있도록 지원하고 서비스 처리 시 CPU 사용량, 메모리 Leak, Elapsed time을 추적하여 서비스의 안정적인 실행을 가능하게 합니다.
OPENMARU APM은 통계 기반의 정량 분석, Top 프로그램 분석 등을 위해 가독성이 뛰어난 다양한 형태의 통계 분석을 제공하며, 이러한 분석 데이터에 대한 정형/비정형 보고서 지원은 비즈니스 관점에서 운영자와 관리자의 신속한 의사 결정을 가능하게 합니다.
- 클라우드/컨테이너 환경에 최적화
- PaaS 환경에서 미터링 지원
- PaaS 환경을 위한 멀티테넌시 지원
- 장애 분석 및 조치에 특화
- 장애 예측 기능 제공
모니터링 지원환경
OpenShift , Docker , Kubernetes , Red Hat Linux, CentOS , AWS , Azure , UCloud
Source : http://www.opennaru.com/cloud/cloud-native-visiting-seminar/
* PaaS 환경에서 애플리케이션 모니터링의 차이점
*컨테이너 환경에서 꼭 봐야 할 모니터링 매트릭스
* 컨테이너 운영 환경에서 트러블슈팅 방안
* Grafana 모니터링 구성 화면 데모
* Jaeger/ Kiali 데모
* PaaS형 APM 애플리케이션 모니터링 데모
Java 9 버젼에서 변화된 내용들을 가볍게 정리하는 형태로 만들어봤다.
소프트웨어 캠퍼스 강사팀 4기의 발표자료 이기도 하다.
소프트웨어 캠퍼스(https://www.facebook.com/groups/softwarecamp/)는 강의와 스터디등을 통해 서로를 성장시켜갈 수 있는 커뮤니티가 되려는 곳이다.
Java 9 버젼에서 변화된 내용들을 가볍게 정리하는 형태로 만들어봤다.
소프트웨어 캠퍼스 강사팀 4기의 발표자료 이기도 하다.
소프트웨어 캠퍼스(https://www.facebook.com/groups/softwarecamp/)는 강의와 스터디등을 통해 서로를 성장시켜갈 수 있는 커뮤니티가 되려는 곳이다.
3. 목표
1. ELK를 이용한 APM 살펴보기
a. ELK APM을 설치 후 데모를 실행
b. 몇 가지 언어로 프로그램을 만든 후 부하를 발생시키고 결과를 확인하는 과정에서 학습
2. ELK Stack 6.6 버전 살펴보기
a. 2.x를 라이브 서비스에 사용하고 있으며, 개인적으로는는 5.0을 마지막으로 사용해봄
b. 이후 버전에 많은 기능 변화가 있었음(현재도 빠르게 기능이 추가되고 있음)
4. 사전에 참고할 내용
1. 공식문서
a. APM 메인: https://www.elastic.co/solutions/apm
b. APM Overview : https://www.elastic.co/guide/en/apm/get-started/current/index.html
c. APM Server Reference : https://www.elastic.co/guide/en/apm/server/current/index.html
2. 지원언어(또는 프레임웤)
a. Java
b. Node.js
c. Django
d. Flask
e. Rails
f. Rack
g. RUM -JS
h. Go
5. APM 구성 Components
1. Elasticsearch : full-text search & 분석엔진. 데이터 저장소, 검색이 수행됨. APM Agents에서 전송된 데이터가 최종적으로
저장됨
2. Kibana : 시각화 컴포넌트, Elasticsearch에 질의를 요청하고 화면에 시각화 처리 함
3. APM agents : 서비스와 동일한 언어로 개발된 client side의 프로그램. 서비스의 성능 관련 데이터와 에러 데이터를
런타임에 APM서버로 전송
4. APM Server : Go로 작성된서버이며 APM agents로부터 데이터를 JSON HTTP API로 전송 받아서
documents(Elasticserarch의 데이터 row단위)를 만들어서 Elasticsearch에 저장함
6. 설치방법
1. Elasticsearch
a. 6.6버전은 open jdk 11설치(링크)
b. elasticserarch 6.6설치(링크)
2. Kibana
a. https://www.elastic.co/guide/en/elastic-stack-get-started/6.6/get-started-elastic-stack.html#install-kib
ana
b. config/kibana.yml 파일에서 server.host: "0.0.0.0" 로 변경하면 모든 IP에서 웹 접근이 허용 됨
3. Server
a. https://www.elastic.co/guide/en/apm/server/current/setup-repositories.html
4. Agent(Client)
a. https://www.elastic.co/kr/solutions/apm
7. 데모
1. 샘플 프로그램 실행
a. wget 'https://github.com/oshnew/ELK-Study/raw/master/apm/sample-program/hello-demo.jar' -O
hello-demo.jar
b. 실행
c. 트랙픽 발생
i. curl 'http://localhost:9878/test/hello'
ii. curl 'http://localhost:9878/test/hello2'
java
-javaagent:elastic-apm-agent-1.3.0.jar
-Delastic.apm.service_name=hello-demo
-Delastic.apm.server_url=http://localhost:8200
-Delastic.apm.application_packages=org.example
-jar -Dserver.port=8700 hello-demo.jar