GitLab の使い方を学習中だが、Tomcat+Jolokiaで性能情報を取得する必要性が生じた。
そのため、実際に試してみる。
環境
- VirtualBox 7.1.4
→ OS:RockyLinux 9.6
MW:Tomcat11
RockyLinuxのインストールまで完了している状態から始める。
まずTomcatのインストールを行うために、tomcatユーザーを作成する。
useraddコマンドに指定するオプション
-U:ユーザーと同じお名前のグループを作成
-s:ログイン不可とするため、ログインシェルに /bin/flase を指定
[root@tfapk001 ~]# useradd -U -s /bin/false tomcat
~~ パスワード設定 ~~
[root@tfapk001 ~]# id tomcat
uid=1001(tomcat) gid=1001(tomcat) groups=1001(tomcat)
ユーザーの作成が完了したので、tomcatの配置・解凍。
(WinSCP等で事前に/opt配下に配置しておく)
[root@tfapk001 ~]# ls -ltr /opt/
合計 12732
-rw-r--r--. 1 root root 14137719 10月 26 19:34 apache-tomcat-11.0.13.tar.gz
[root@tfapk001 ~]# tar -xzvf /opt/apache-tomcat-11.0.13.tar.gz -C /opt/
apache-tomcat-11.0.13/conf/
apache-tomcat-11.0.13/conf/catalina.properties
~~ 中略 ~~
apache-tomcat-11.0.13/bin/tool-wrapper.sh
apache-tomcat-11.0.13/bin/version.sh
[root@tfapk001 ~]#
[root@tfapk001 ~]# ls -ltr /opt/
合計 12736
-rw-r--r--. 1 root root 14137719 10月 26 19:34 apache-tomcat-11.0.13.tar.gz
drwxr-xr-x. 9 root root 4096 10月 26 19:36 apache-tomcat-11.0.13
[root@tfapk001 ~]# ls -ltr /opt/apache-tomcat-11.0.13
合計 136
drwxr-x---. 2 root root 6 10月 10 22:57 work
drwxr-x---. 7 root root 81 10月 10 22:57 webapps
drwxr-x---. 2 root root 6 10月 10 22:57 logs
drwx------. 2 root root 4096 10月 10 22:57 conf
-rw-r-----. 1 root root 16114 10月 10 22:57 RUNNING.txt
-rw-r-----. 1 root root 6470 10月 10 22:57 RELEASE-NOTES
-rw-r-----. 1 root root 3291 10月 10 22:57 README.md
-rw-r-----. 1 root root 2333 10月 10 22:57 NOTICE
-rw-r-----. 1 root root 60517 10月 10 22:57 LICENSE
-rw-r-----. 1 root root 6096 10月 10 22:57 CONTRIBUTING.md
-rw-r-----. 1 root root 24262 10月 10 22:57 BUILDING.txt
drwxr-x---. 2 root root 4096 10月 26 19:36 lib
drwxr-x---. 2 root root 30 10月 26 19:36 temp
drwxr-x---. 2 root root 4096 10月 26 19:36 bin
rootユーザで解凍しているので所有者・権限を変更する。
[root@tfapk001 ~]# chown -R tomcat:tomcat /opt/apache-tomcat-11.0.13
[root@tfapk001 ~]# ls -ld /opt/apache-tomcat-11.0.13
drwxr-xr-x. 9 tomcat tomcat 4096 10月 26 19:36 /opt/apache-tomcat-11.0.13
[root@tfapk001 ~]# ls -ltr /opt/apache-tomcat-11.0.13
合計 136
drwxr-x---. 2 tomcat tomcat 6 10月 10 22:57 work
drwxr-x---. 7 tomcat tomcat 81 10月 10 22:57 webapps
drwxr-x---. 2 tomcat tomcat 6 10月 10 22:57 logs
drwx------. 2 tomcat tomcat 4096 10月 10 22:57 conf
-rw-r-----. 1 tomcat tomcat 16114 10月 10 22:57 RUNNING.txt
-rw-r-----. 1 tomcat tomcat 6470 10月 10 22:57 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat 3291 10月 10 22:57 README.md
-rw-r-----. 1 tomcat tomcat 2333 10月 10 22:57 NOTICE
-rw-r-----. 1 tomcat tomcat 60517 10月 10 22:57 LICENSE
-rw-r-----. 1 tomcat tomcat 6096 10月 10 22:57 CONTRIBUTING.md
-rw-r-----. 1 tomcat tomcat 24262 10月 10 22:57 BUILDING.txt
drwxr-x---. 2 tomcat tomcat 4096 10月 26 19:36 lib
drwxr-x---. 2 tomcat tomcat 30 10月 26 19:36 temp
drwxr-x---. 2 tomcat tomcat 4096 10月 26 19:36 bin
Tomcatの配置が完了したので、サービスへ登録。
[root@tfapk001 ~]# vi /usr/lib/systemd/system/tomcat11.service
[Unit]
Description=Apache Tomcat 11
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-11.0.13/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/apache-tomcat-11.0.13/bin/startup.sh
ExecStop=/opt/apache-tomcat-11.0.13/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat-11.0.13/bin/shutdown.sh;/opt/apache-tomcat-11.0.13/bin/startup.sh
[Install]
WantedBy=multi-user.target
[root@tfapk001 ~]# chmod 644 /usr/lib/systemd/system/tomcat11.service
[root@tfapk001 ~]# ls -ltr /usr/lib/systemd/system/*service
~~ 中略 ~~
-rw-r--r--. 1 root root 368 5月 24 08:04 /usr/lib/systemd/system/kvm_stat.service
-rw-r--r--. 1 root root 412 10月 26 19:44 /usr/lib/systemd/system/tomcat11.service
サービスの有効化。
[root@tfapk001 ~]# systemctl enable tomcat11.service
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat11.service → /usr/lib/systemd/system/tomcat11.service.
Tomcatの起動を試みる。
[root@tfapk001 ~]# systemctl start tomcat11
Job for tomcat11.service failed because the control process exited with error code.
See "systemctl status tomcat11.service" and "journalctl -xeu tomcat11.service" for details.
[root@tfapk001 ~]#
[root@tfapk001 ~]# systemctl status tomcat11
× tomcat11.service - Apache Tomcat 11
Loaded: loaded (/usr/lib/systemd/system/tomcat11.service; enabled; preset: disabled)
Active: failed (Result: exit-code) since Sun 2025-10-26 19:48:34 JST; 28s ago
Duration: 53.137s
Process: 2763 ExecStart=/opt/apache-tomcat-11.0.13/bin/startup.sh (code=exited, status=1/FAILURE)
Main PID: 2763 (code=exited, status=1/FAILURE)
CPU: 57ms
10月 26 19:48:34 tfapk001 systemd[1]: Starting Apache Tomcat 11...
10月 26 19:48:34 tfapk001 startup.sh[2763]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
10月 26 19:48:34 tfapk001 startup.sh[2763]: At least one of these environment variable is needed to run this program
10月 26 19:48:34 tfapk001 systemd[1]: tomcat11.service: Main process exited, code=exited, status=1/FAILURE
10月 26 19:48:34 tfapk001 systemd[1]: tomcat11.service: Failed with result 'exit-code'.
10月 26 19:48:34 tfapk001 systemd[1]: Failed to start Apache Tomcat 11.
起動しない。
どうやら、環境変数に JAVA_HOME、または JRE_HOME がないので、エラーになっているようだ。
仕方がないので、Javaをインストールする。
Tomcat9に対応するJavaのバージョンを確認する。17以降であれば良いようだ。
今回はTomcat11なので、Java21をインストールする。
[root@tfapk001 ~]# dnf search java-21
========================================================= 名前 一致: java-21 ==========================================================
java-21-openjdk.x86_64 : OpenJDK 21 Runtime Environment
java-21-openjdk-demo.x86_64 : OpenJDK 21 Demos
java-21-openjdk-devel.x86_64 : OpenJDK 21 Development Environment
java-21-openjdk-headless.x86_64 : OpenJDK 21 Headless Runtime Environment
java-21-openjdk-javadoc.x86_64 : OpenJDK 21 API documentation
java-21-openjdk-javadoc-zip.x86_64 : OpenJDK 21 API documentation compressed in a single archive
java-21-openjdk-jmods.x86_64 : JMods for OpenJDK 21
java-21-openjdk-src.x86_64 : OpenJDK 21 Source Bundle
java-21-openjdk-static-libs.x86_64 : OpenJDK 21 libraries for static linking
JREでも良いのだが、JDKにする。
[root@tfapk001 ~]# dnf install java-21-openjdk-devel.x86_64
メタデータの期限切れの最終確認: 0:00:06 前の 2025年10月26日 19時56分13秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================
インストール:
java-21-openjdk-devel x86_64 1:21.0.8.0.9-1.el9 appstream 5.0 M
依存関係のインストール:
copy-jdk-configs noarch 4.0-3.el9 appstream 27 k
java-21-openjdk x86_64 1:21.0.8.0.9-1.el9 appstream 428 k
java-21-openjdk-headless x86_64 1:21.0.8.0.9-1.el9 appstream 47 M
~~ 中略 ~~
インストール済み:
copy-jdk-configs-4.0-3.el9.noarch java-21-openjdk-1:21.0.8.0.9-1.el9.x86_64 java-21-openjdk-devel-1:21.0.8.0.9-1.el9.x86_64 java-21-openjdk-headless-1:21.0.8.0.9-1.el9.x86_64
javapackages-filesystem-6.4.0-1.el9.noarch lksctp-tools-1.0.19-3.el9_4.x86_64 lua-5.4.4-4.el9.x86_64 lua-posix-35.0-8.el9.x86_64
mkfontscale-1.2.1-3.el9.x86_64 ttmkfdir-3.0.9-65.el9.x86_64 tzdata-java-2025b-1.el9.noarch xorg-x11-fonts-Type1-7.5-33.el9.noarch
完了しました!
[root@tfapk001 ~]#
[root@tfapk001 ~]# java -version
openjdk version "21.0.8" 2025-07-15 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.8.0.9-1) (build 21.0.8+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.8.0.9-1) (build 21.0.8+9-LTS, mixed mode, sharing)
JAVA_HOMEを設定するために、インストール先を確認する。
[root@tfapk001 ~]# export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which java)))))
[root@tfapk001 ~]# echo ${JAVA_HOME}
/usr/lib/jvm/java-21-openjdk-21.0.8.0.9-1.el9.x86_64
Tomcatを起動するために、setenv.shにJAVA_HOMEを記載する。
[root@tfapk001 ~]# ls -ltr /opt/apache-tomcat-11.0.13/bin/setenv.sh
ls: '/opt/apache-tomcat-11.0.13/bin/setenv.sh' にアクセスできません: そのようなファイルやディレクトリはありません
[root@tfapk001 ~]# vi /opt/apache-tomcat-11.0.13/bin/setenv.sh
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-21.0.8.0.9-1.el9.x86_64
[root@tfapk001 ~]# ls -ltr /opt/apache-tomcat-11.0.13/bin/
合計 932
-rwxr-x---. 1 tomcat tomcat 1908 10月 10 22:57 version.sh
-rw-r-----. 1 tomcat tomcat 2026 10月 10 22:57 version.bat
-rwxr-x---. 1 tomcat tomcat 4600 10月 10 22:57 tool-wrapper.sh
-rw-r-----. 1 tomcat tomcat 3623 10月 10 22:57 tool-wrapper.bat
-rw-r-----. 1 tomcat tomcat 474706 10月 10 22:57 tomcat-native.tar.gz
-rw-r-----. 1 tomcat tomcat 51028 10月 10 22:57 tomcat-juli.jar
-rwxr-x---. 1 tomcat tomcat 1904 10月 10 22:57 startup.sh
-rw-r-----. 1 tomcat tomcat 2022 10月 10 22:57 startup.bat
-rwxr-x---. 1 tomcat tomcat 1902 10月 10 22:57 shutdown.sh
-rw-r-----. 1 tomcat tomcat 2020 10月 10 22:57 shutdown.bat
-rwxr-x---. 1 tomcat tomcat 3941 10月 10 22:57 setclasspath.sh
-rw-r-----. 1 tomcat tomcat 3382 10月 10 22:57 setclasspath.bat
-rwxr-x---. 1 tomcat tomcat 1970 10月 10 22:57 migrate.sh
-rw-r-----. 1 tomcat tomcat 2096 10月 10 22:57 migrate.bat
-rwxr-x---. 1 tomcat tomcat 3382 10月 10 22:57 makebase.sh
-rw-r-----. 1 tomcat tomcat 3606 10月 10 22:57 makebase.bat
-rwxr-x---. 1 tomcat tomcat 1965 10月 10 22:57 digest.sh
-rw-r-----. 1 tomcat tomcat 2091 10月 10 22:57 digest.bat
-rwxr-x---. 1 tomcat tomcat 8319 10月 10 22:57 daemon.sh
-rwxr-x---. 1 tomcat tomcat 1922 10月 10 22:57 configtest.sh
-rw-r-----. 1 tomcat tomcat 2040 10月 10 22:57 configtest.bat
-rw-r-----. 1 tomcat tomcat 26670 10月 10 22:57 commons-daemon.jar
-rw-r-----. 1 tomcat tomcat 215448 10月 10 22:57 commons-daemon-native.tar.gz
-rwxr-x---. 1 tomcat tomcat 1997 10月 10 22:57 ciphers.sh
-rw-r-----. 1 tomcat tomcat 2123 10月 10 22:57 ciphers.bat
-rwxr-x---. 1 tomcat tomcat 21169 10月 10 22:57 catalina.sh
-rw-r-----. 1 tomcat tomcat 13557 10月 10 22:57 catalina.bat
-rw-r-----. 1 tomcat tomcat 1664 10月 10 22:57 catalina-tasks.xml
-rw-r-----. 1 tomcat tomcat 32198 10月 10 22:57 bootstrap.jar
-rw-r--r--. 1 root root 82 10月 26 19:59 setenv.sh
[root@tfapk001 ~]# chown tomcat:tomcat /opt/apache-tomcat-11.0.13/bin/setenv.sh
[root@tfapk001 ~]# chmod 750 /opt/apache-tomcat-11.0.13/bin/setenv.sh
[root@tfapk001 ~]# ls -la /opt/apache-tomcat-11.0.13/bin/setenv.sh
-rwxr-x---. 1 tomcat tomcat 82 10月 26 19:59 /opt/apache-tomcat-11.0.13/bin/setenv.sh
ここまで来たら、Tomcatを起動する。
[root@tfapk001 ~]# systemctl start tomcat11
[root@tfapk001 ~]# systemctl status tomcat11
● tomcat11.service - Apache Tomcat 11
Loaded: loaded (/usr/lib/systemd/system/tomcat11.service; enabled; preset: disabled)
Active: active (exited) since Sun 2025-10-26 20:01:35 JST; 3s ago
Process: 3325 ExecStart=/opt/apache-tomcat-11.0.13/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 3325 (code=exited, status=0/SUCCESS)
Tasks: 21 (limit: 22977)
Memory: 82.1M
CPU: 6.793s
CGroup: /system.slice/tomcat11.service
mq3333 /usr/lib/jvm/java-21-openjdk-21.0.8.0.9-1.el9.x86_64/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-11.0.13/conf/logging.properties -Djava.util.logging.man>
10月 26 20:01:35 tfapk001 systemd[1]: Starting Apache Tomcat 11...
10月 26 20:01:35 tfapk001 startup.sh[3325]: Tomcat started.
10月 26 20:01:35 tfapk001 systemd[1]: Finished Apache Tomcat 11.
起動できた。
次回は、TomcatにJolokiaをかませていく。
参考

