Tomcat管理・監視ツール Probe
Probeについて
ProbeはTomcatの管理および監視機能を提供するツールである。アプリケーション状態、データソース、デプロイ、システム、接続など、さまざまな機能を提供する。
このようなツールがあることを筆者は今回初めて知り、気になったのでさらに調べてみることにした。
Probeに関する資料
Probeの資料はあまり使われていないためか、インターネットで検索してもなかなか出てこなかった。ようやく見つけたサイトがGitHubだった。
- 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ファイルをTomcatの webapps に入れる。
kimkc@kimkcui-MacBookPro psi-probe % cp ./psi-probe-web/target/probe.war ../apache-tomcat-8.5.68/webapps
- 最後に、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へアクセスできなくなる。
- 次に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)ファイルをデプロイする
- 次の場所へ移動する。
http://10.10.100.158:8080/probe/adm/deploy.htm
-
Select a .war file to upload *でWebサービスのWARファイルを選択する。 -
Context name (ex. /dummy)を入力する。 -
Deployボタンをクリックする。 -
入力した通りにサービスが実行されるか確認する。
Context nameに/dummyを入れた場合、Webアドレスは次のようになる。
http://10.10.100.158:8080/dummy
注意: Probeを通じてデプロイすると、Tomcat自体は再起動されず、WebアプリケーションのWARファイルだけが置き換えられてWebサービスが再度起動する。この過程でサービスが一時的に停止する可能性があるため、無停止デプロイとは言えない。いずれにしても、簡単なテストとしてデプロイ機能を使うのは問題ないが、これを利用して実際のサービスをデプロイしてはいけない。