Tomcat 관리 및 모니터링 도구 Probe
Probe에 대해서
Probe는 Tomcat의 관리 및 모니터링 기능을 하는 도구이다. 어플리케이션 상태, 데이터 소스, 배포, 시스템, 연결 등 다양한 기능을 제공한다.
(이런 도구가 있다는 것을 필자는 이번에 처음 알게 되었고, 궁금해서 더 조사해 보기로 하였다.)
Probe에 대한 자료
Probe 자료는 잘 사용되지 않고 있어서 그런지 인터넷 검색을 하여도 잘 나오지 않았다. 겨우겨우 찾아 낸 사이트가 github 였다.
- 깃허브(소스 코드) : https://github.com/psi-probe/psi-probe/
- 공식 사이트: https://psi-probe.github.io/psi-probe/
Probe 설치해 보기
여기에 나온 내용으로 Probe 설치 테스트를 할 수 있었다. 설치 방법은 아래와 같다.
- Probe 소스 파일을 아래와 같이
git clone
명령으로 내려 받는다.
git clone https://github.com/psi-probe/psi-probe.git
명령어를 실행하면 아래와 같다.
kimkc@kimkcui-MacBookPro probe % git clone https://github.com/psi-probe/psi-probe.git
Cloning into 'psi-probe'...
remote: Enumerating objects: 54626, done.
remote: Counting objects: 100% (1030/1030), done.
remote: Compressing objects: 100% (499/499), done.
remote: Total 54626 (delta 564), reused 927 (delta 498), pack-reused 53596
Receiving objects: 100% (54626/54626), 33.42 MiB | 10.71 MiB/s, done.
Resolving deltas: 100% (38049/38049), done.
kimkc@kimkcui-MacBookPro probe %
- probe 프로젝트를 아래와 같이 maven 빌드를 실행한다.
mvn package
빌드를 진행하면 아래와 표시된다.
kimkc@kimkcui-MacBookPro psi-probe % mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] psi-probe [pom]
[INFO] psi-probe-core [jar]
[INFO] psi-probe-rest [jar]
[INFO] psi-probe-tomcat7 [jar]
[INFO] psi-probe-tomcat85 [jar]
[INFO] psi-probe-tomcat9 [jar]
[INFO] psi-probe-web [war]
[INFO]
(중간 생략)
[INFO] Reactor Summary for psi-probe 3.5.5-SNAPSHOT:
[INFO]
[INFO] psi-probe .......................................... SUCCESS [ 1.573 s]
[INFO] psi-probe-core ..................................... SUCCESS [ 20.977 s]
[INFO] psi-probe-rest ..................................... SUCCESS [ 1.375 s]
[INFO] psi-probe-tomcat7 .................................. SUCCESS [ 4.093 s]
[INFO] psi-probe-tomcat85 ................................. SUCCESS [ 3.823 s]
[INFO] psi-probe-tomcat9 .................................. SUCCESS [ 3.801 s]
[INFO] psi-probe-web ...................................... SUCCESS [ 4.559 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40.441 s
[INFO] Finished at: 2021-06-30T16:11:58+09:00
[INFO] ------------------------------------------------------------------------
kimkc@kimkcui-MacBookPro psi-probe %
위와 같이 모든 프로젝트가 “SUCCESS"라고 표시가 된다면 제대로 완료된 거다.
- tomcat 사이트에서 다운 받아서, 적당한 디렉터리에 파일 압축을 푼다.
여기서는 tar.gz 파일 다운 받아서 아래 명령어로 압축을 풀었다.
tar -xvf apache-tomcat-8.5.68.tar.gz
kimkc@kimkcui-MacBookPro probe % tar -xvf apache-tomcat-8.5.68.tar.gz
x apache-tomcat-8.5.68/conf/
x apache-tomcat-8.5.68/conf/catalina.policy
x apache-tomcat-8.5.68/conf/catalina.properties
x apache-tomcat-8.5.68/conf/context.xml
x apache-tomcat-8.5.68/conf/jaspic-providers.xml
압축이 모두 풀리면 파일 내용을 확인 한다.
kimkc@kimkcui-MacBookPro apache-tomcat-8.5.68 % cd /Users/kimkc/dev/probe/apache-tomcat-8.5.68
kimkc@kimkcui-MacBookPro apache-tomcat-8.5.68 % ls
BUILDING.txt LICENSE README.md RUNNING.txt conf logs webapps
CONTRIBUTING.md NOTICE RELEASE-NOTES bin lib temp work
kimkc@kimkcui-MacBookPro apache-tomcat-8.5.68 %
- 이제
{tomcat 디렉터리}/webapps
에 probe로 빌드한 war 파일을 넣는다.
probe war 파일은 아래 디렉터리에 위치한다.
{probe 소스 코드디렉터리}/psi-probe-web/target/probe.war
war파일을 톰켓 webapps에 넣는다.
kimkc@kimkcui-MacBookPro psi-probe % cp ./psi-probe-web/target/probe.war ../apache-tomcat-8.5.68/webapps
- 마지작으로 톰켓 사용자 정보파일(
apache-tomcat-x.x.x/conf/tomcat-users.xml
)에서 role 정보를 아래와 같이 추가한다.
(생략)
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
(중간 생략)
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="devkuma" password="1234" roles="manager-gui,manager-script,manager-status"/>
</tomcat-users>
이 tomcat의 probe 계정은 사용자명 “devkuma"이고 비밀번호가 “1234"이 된다.
위 정보를 넣지 않으면 probe 웹에 접근할 수 없게 된다.
- 이제 톰켓을 재기동한다.
kimkc@kimkcui-MacBookPro bin % ./startup.sh
Using CATALINA_BASE: /Users/kimkc/dev/probe/apache-tomcat-8.5.68
Using CATALINA_HOME: /Users/kimkc/dev/probe/apache-tomcat-8.5.68
Using CATALINA_TMPDIR: /Users/kimkc/dev/probe/apache-tomcat-8.5.68/temp
Using JRE_HOME: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
Using CLASSPATH: /Users/kimkc/dev/probe/apache-tomcat-8.5.68/bin/bootstrap.jar:/Users/kimkc/dev/probe/apache-tomcat-8.5.68/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
kimkc@kimkcui-MacBookPro bin %
아래 링크로 들어가봐서 화면이 열리면 제대로 설치된 것이다.
http://localhost:8080/probe/
Probe를 통해서 웹어플리케이션(.war) 파일을 배포하기
- 아래 위치에 이동한다.
http://10.10.100.158:8080/probe/adm/deploy.htm
-
Select a .war file to upload *
에 웹 서비스 war 파일을 선택한다. -
Context name (ex. /dummy)
을 넣는다. -
“Deploy” 버튼을 클릭한다.
-
위에 입력한 대로 서비스 실행되는지 확인한다.
Context name
을/dummy
로 넣었다면 웹 주소는 아래와 같게 된다.
http://10.10.100.158:8080/dummy
주의: Probe로 통해서 배포를 하게 되면 Tomcat 자체가 재시작되지 않고, 웹어플케이션 war 파일만 교체해 주어서 웹 서비스가 다시 올라가게 된다. 이 과정에 서비스에 잠시 멈춤 현상이 발상하게 되기에 무중단 배포라고 볼수 없다. 어째듯, 간단히 테스트로써 배포 기능을 사용하는 것은 괜찮을 지라도 이를 이용해서 실제 서비스를 배포해서는 안된다.