Tomcat管理・監視ツール Probe

Probeについて

ProbeはTomcatの管理および監視機能を提供するツールである。アプリケーション状態、データソース、デプロイ、システム、接続など、さまざまな機能を提供する。

このようなツールがあることを筆者は今回初めて知り、気になったのでさらに調べてみることにした。

Probeに関する資料

Probeの資料はあまり使われていないためか、インターネットで検索してもなかなか出てこなかった。ようやく見つけたサイトがGitHubだった。

Probeをインストールしてみる

ここにある内容でProbeのインストールテストを行うことができた。インストール方法は次の通りである。

  1. 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 %
  1. 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 と表示されれば、正常に完了している。

  1. 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 %
  1. 次に、{tomcatディレクトリ}/webapps にProbeでビルドしたWARファイルを配置する。

ProbeのWARファイルは次のディレクトリにある。

{probeソースコードディレクトリ}/psi-probe-web/target/probe.war

WARファイルをTomcatの webapps に入れる。

kimkc@kimkcui-MacBookPro psi-probe % cp ./psi-probe-web/target/probe.war ../apache-tomcat-8.5.68/webapps
  1. 最後に、Tomcatのユーザー情報ファイル(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 Webへアクセスできなくなる。

  1. 次にTomcatを再起動する。
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を通じてWebアプリケーション(.war)ファイルをデプロイする

  1. 次の場所へ移動する。
http://10.10.100.158:8080/probe/adm/deploy.htm
  1. Select a .war file to upload * でWebサービスのWARファイルを選択する。

  2. Context name (ex. /dummy) を入力する。

  3. Deploy ボタンをクリックする。

  4. 入力した通りにサービスが実行されるか確認する。Context name/dummy を入れた場合、Webアドレスは次のようになる。

http://10.10.100.158:8080/dummy

注意: Probeを通じてデプロイすると、Tomcat自体は再起動されず、WebアプリケーションのWARファイルだけが置き換えられてWebサービスが再度起動する。この過程でサービスが一時的に停止する可能性があるため、無停止デプロイとは言えない。いずれにしても、簡単なテストとしてデプロイ機能を使うのは問題ないが、これを利用して実際のサービスをデプロイしてはいけない。