JAVA
PSI-Probe : Tomcat 모니터링 툴
자세한 히스토리는 모르겠지만 Tomcat 모니터링 툴인 Lambda Probe의 개발이 중단되고, 현재는 구글에서 PSI Probe로 계속 진행이 되고 있습니다.
http://code.google.com/p/psi-probe/ 이 사이트에 가면 다운로드 및 설치 매뉴얼이 있으니참조하시기 바랍니다.
설치
- 최신 버전을 다운로드 받으신 후 압축을 풀면 probe.war 파일이 생성됩니다.
- Tomcat의 Manager GUI에 접속하셔서 War file to deploy에 probe.war 파일을 선택하고 deploy 버튼을 누르면 자동으로 Application이 설치가 됩니다.
deploy probe
- tomcat_home/webapps에 보시면 probe라는 디렉토리가 생성이 되어 있는걸 확인할 수 있습니다.
- http://domain_name/probe 에 접속해서 tomcat-users.xml에 설정한 manager의 id/pwd로 접속하여 사용하면 됩니다.
probe
상단 메뉴->System Information 을 클릭한 후, 우측메뉴-> memory utilization을 클릭하면
아래와 같이 JVM memory 상태를 확인할 수 있다.
Tomcat Web Application 모니터링 툴 – javamelody 설정 방법
learn something everyday
Tomcat Web Application 모니터링 툴 – javamelody 설정 방법
Tomcat Web Application을 모니터링하거나, profiiling하기 위한 괜찮은 툴을 소개한다.
Javamelody(https://code.google.com/p/javamelody)를 설정하는 방법은 무척 간단하다.
1. Jar 설정
WEB-INF/lib 내 javamedloy.zip내의 javamelody.jar와 jrobin-x.jar를 복사한다.
내 경우는 maven 을 사용하므로, 기존의 pom.xml에 다음과 같이 dependency를 추가하였다.
<dependency> <groupId>net.bull.javamelody</groupId> <artifactId>javamelody-core</artifactId> <version>1.43.0</version> </dependency>
2. web.xml 설정
기존에 실행하던 웹 애플리케이션을 모니터링/분석해야 하므로, web.xml의 내용을 편집한다.
보통 web.xml에서는 선언된 순서로 우선순위를 지니므로, 다른 서블릿 선언보다 위쪽에 다음의
설정을 추가로 기록한다.
<filter> <filter-name>monitoring</filter-name> <filter-class>net.bull.javamelody.MonitoringFilter</filter-class> </filter> <filter-mapping> <filter-name>monitoring</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>net.bull.javamelody.SessionListener</listener-class> </listener>
3. 동작 확인
기본 설정은 이것으로 일단 끝!
이제 web application을 실행시키자.
http://<host>/<context>/monitoring
과 같이 실행시키면, 기존 사이트에 대한 모니터링 페이지가 정상 적으로 보일 것이다.
대략 다음과 같은 화면이 뜬다.
http://javamelody.googlecode.com/svn/trunk/javamelody-core/src/site/resources/screenshots/graphs.png
4. 보안설정(ID/Password 기반)
role 기반으로 간략하게 보안 설정을 해보자. web.xml에 다음의 내용을 추가한다.
<login-config> <auth-method>BASIC</auth-method> <realm-name>Monitoring</realm-name> </login-config> <security-role> <role-name>monitoring</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name>Monitoring</web-resource-name> <url-pattern>/monitoring</url-pattern> </web-resource-collection> <auth-constraint> <role-name>monitoring</role-name> </auth-constraint> </security-constraint>
만약, 이대로 tomcat을 restart하고, /monitoring으로 접근한다면, HTTP BASIC Authentication으로 인증 요청을 할 것이다.
5. tomcat-user 추가
위의 인증창에 접근할 수 있는 사용자를 추가하자.
tomcat-users.xml을 찾아 다음과 같이 사용자 정보를 추가한다.
<tomcat-users> <role rolename="monitoring"/> <user username="monitoring" password="monitoring" roles="monitoring" /> </tomcat-users>
이제 Tomcat을 재시작하고, BASIC authentication popup window가 뜨면, 위의 정보로 인증하고, 처음에 본 모니터링 페이지가 정상적으로 뜨는지 확인한다.
Naver Pinpoint 소개 및 설치(1) - Pinpoint 소개
참고) 해당 내용은 https://github.com/naver/pinpoint 를 많은 부분 참고하였습니다.
얼마 전 Naver Pinpoint 오픈소스가 공개되었습니다.
https://github.com/naver/pinpoint
Pinpoint 는 APM (Application Performance Management) Tool 로서
Java 로 만들어진 Large-scale 분산 시스템에서 사용될 수 있습니다... 라고 적혀있습니다만
소규모의 WAS(Web Application Server) 에서 사용해도 전혀 문제될 게 없습니다.
(제니퍼 라는 유명한 APM 이 있죠 ^^)
Pinpoint는 시스템 전반적인 구조를 분석하고, Transaction 을 추적합니다.
단 한줄의 코드도 변경하지 않고 에이전트를 설치할 수 있으며,
성능에 미치는 영향을 최소화 한다고 명시되어 있습니다. (자원 사용량이 약 3% 증가합니다.)
Pinpoint에서 밝히고 있는 제공하는 뷰는 다음과 같습니다.
ServerMap
- 각 구성요소가 어떻게 상호연결되는지 시각화 해줍니다.
- 각 노드를 클릭하여 현재상태, Transaction 수 등과 같은 구성요소에 대한 세부 사항을 확인할 수 있습니다.
Request/Response Scatter Chart
- Request 수, Response 패턴을 시각화 합니다.
- Transaction 은 차트에서 드래그함으로써 추가 상세 정보를 선택할 수 있습니다.
CallStack
- 하나의 뷰에서 병목지점, 실패위치(points of failure)를 식별합니다.
- 분산 환경에서 모든 Transaction에 코드 수준의 가시성을 확보할 수 있습니다.
Inspector
- CPU 사용량, 메모리/GC, JVM arguments 같은 Application 상세 정보를 제공합니다.
전반적인 아키텍쳐는 다음과 같습니다. (출처 : Naver Pinpoint)
우측상단의 Host JVM 이 여러분들이 작성한 Application 이 돌아가고 있는 WAS 입니다.
여기에 Pinpoint Agent 가 올라갑니다.
Host JVM 이 동작하는동안 Pinpoint Agent 는 Profile 정보를 좌측상단의 Profiled Applications로 보내게 되고,
수집된 정보는 Pinpoint Collector 가 좌측하단 HBase에 기록하게 됩니다.
기록된 정보는 Pinpoint Web UI 를 통해 확인 할 수 있습니다.
Pintpoint에 명시된 설치를 위한 요구사항은 다음과 같습니다.
- - JDK 6 installed
- - JDK 7+ installed
- - Maven 3.2.x+ installed
- - JAVA_6_HOME environment variable set to JDK 6 home directory.
- - JAVA_7_HOME environment variable set to JDK 7+ home directory.
Pinpoint는 Apache License, Version 2.0 입니다.
다음 포스팅은 실제 Pinpoint 설치에 대해 알아봅니다.
관련글 - [프람트] Naver Pinpoint 소개 및 설치(2) - Pinpoint 설치
관련글 - [프람트] Naver Pinpoint 소개 및 설치(3) - Pinpoint Agent 설치
출처: http://dev2.prompt.co.kr/33 [프람트 MoS 사업부]
성능 모니터링 툴 netdata 간단 사용기
SNS 에서 netdata 관련 포스팅을 보고 급… 궁금해져서 설치를 진행 함.
요즘은 좋은 세상이라??? 힘들게 컴파일 하지 않아도 되는???
컨테이너란 편리한 실행 방법이 있음.
관련 내용 : https://hub.docker.com/r/titpetric/netdata/
실행 방법 : ( RHEL7, CentOS7 기준 )
# yum install docker -y >> docker 를 설치 함. # systemctl start docker >> docker 서비스 실행 # docker run -d --cap-add SYS_PTRACE -v /proc:/host/proc:ro -v /sys:/host/sys:ro -p 19999:19999 titpetric/netdata >> docker 가 구동되어 있는 상태에서 위의 명령어를 입력하면 docker image 를 먼저 pull 하고 컨테이너를 run 함. # docker ps -a >> 실행 상태 확인
docker 컨테이너가 실행 되었다면 브라우져에서 아래의 주소로 접속
http://$(ip):19999
ex)
http://192.168.10.2:19999
페이지가 접속되면 아래와 같은 화면을 볼 수 있음.
호스트에 대한 전체 리소스 사용량
현재 docker 로 구동된 컨테이너 자원 사용량
kvm 기반 windows vm 자원 사용량
netdata 관련 정보 모음
표출 가능한 정보들 :
Link : https://github.com/firehol/netdata
netdata 관련 Demo 모음 :
Link : https://github.com/firehol/netdata/wiki
그 외 추가 가능한 챠트들을 제공함.
Link : https://github.com/firehol/netdata/wiki/Add-more-charts-to-netdata
마지막으로 시스템별 netdata 설치 방법 안내 :
Link : https://github.com/firehol/netdata/wiki/Installation
http://blog.seabow.pe.kr/?p=7380
댓글 ( 4)
댓글 남기기