まず最初に、今回の記事を書くに当たり、以下のページをだいぶ参考にさせて頂きました。<(_ _)>
-- 前回 --
-- 今回 --
Jolokiaには、JAR形式とWAR形式があるが、今回はJAR形式を採用する。
以下のサイトより jolokia-agent-jvm-2.4.0-javaagent.jar をダウンロードする。
ダウンロードしたら、/opt/jolokia 配下に配置する。
まずはディレクトリ作成。
① ディレクトリ作成
[root@tfapk001 ~]# mkdir 755 /opt/jolokia
[root@tfapk001 ~]# chown tomcat:tomcat /opt/jolokia
[root@tfapk001 ~]# ls -ld /opt/jolokia
drwxr-xr-x. 2 tomcat tomcat 51 10月 26 20:05 /opt/jolokia
WinSCPで配置する。
その際に所有者・権限も下記のとおり変更しておく。
② 所有者・権限の確認
[root@tfapk001 ~]# ls -la /opt/jolokia/jolokia-agent-jvm-2.4.0-javaagent.jar
-rw-r--r--. 1 tomcat tomcat 730778 10月 26 19:00 /opt/jolokia/jolokia-agent-jvm-2.4.0-javaagent.jar
Tomcat起動時に読み込まれるように環境変数 CATALINA_OPTS に -javaagent を設定する。
③ 環境変数 CATALINA_OPTS の追記
[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
export CATALINA_OPTS="$CATALINA_OPTS \
-javaagent:/opt/jolokia/jolokia-agent-jvm-2.4.0-javaagent.jar=port=8778,host=127.0.0.1"
Tomcatを起動する。
④ 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:21:42 JST; 4s ago
Process: 4764 ExecStart=/opt/apache-tomcat-11.0.13/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 4764 (code=exited, status=0/SUCCESS)
Tasks: 23 (limit: 22977)
Memory: 107.4M
CPU: 7.430s
CGroup: /system.slice/tomcat11.service
mq4772 /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:21:42 tfapk001 systemd[1]: Starting Apache Tomcat 11...
10月 26 20:21:42 tfapk001 startup.sh[4764]: Tomcat started.
10月 26 20:21:42 tfapk001 systemd[1]: Finished Apache Tomcat 11.
[root@tfapk001 ~]# ps -ef | grep tomcat | grep agent
tomcat 4772 1 13 20:21 ? 00:00:09 /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.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --enable-native-access=ALL-UNNAMED -javaagent:/opt/jolokia/jolokia-agent-jvm-2.4.0-javaagent.jar=port=8778,host=127.0.0.1 -classpath /opt/apache-tomcat-11.0.13/bin/bootstrap.jar:/opt/apache-tomcat-11.0.13/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-11.0.13 -Dcatalina.home=/opt/apache-tomcat-11.0.13 -Djava.io.tmpdir=/opt/apache-tomcat-11.0.13/temp org.apache.catalina.startup.Bootstrap start
psコマンドでTomcatのプロセスを確認すると、setenv.shに記載したのと同じ
-javaagent:/opt/jolokia/jolokia-agent-jvm-2.4.0-javaagent.jar=port=8778,host=127.0.0.1
が確認できる。
Jolokiaで指定したポートがリスニングされているか、確認する。
⑤ リスニングポートの確認
[root@tfapk001 ~]# netstat -tulnp | grep 8778
tcp6 0 0 127.0.0.1:8778 :::* LISTEN 4772/java
Jolokiaが起動していることを確認できた。
参考