Wildfly コンテナイメージから JMX を使ってメトリクスを取得する
今回は Wildfly のコンテナイメージから JMX を使ってメトリクスを取得してみます.
コンテナなのに JMX!?なんで Prometheus とか使わないの!?というツッコミはご容赦ください…
カスタムの Wildfly のイメージ作成
FROM jboss/wildfly
ADD target/demoapi-0.0.1-SNAPSHOT.war /opt/jboss/wildfly/standalone/deployments/
RUN /opt/jboss/wildfly/bin/add-user.sh admin1234 Password1! --silent
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
RUN/CMD を記述します.
jconsole.sh を持って来る
どうもクライアントで使用する jconsole のバージョンと Wildfly のバージョンが一致していないとダメなようだったので、Docker イメージの中から jconsole.sh を持ってきます.
コンテナ内の作業
関連モジュールを tar.gz で固めます.
$ pwd
/opt/jboss/wildfly
$ tar -zcvf bin.tar.gz bin
$ ls
LICENSE.txt bin docs modules
README.txt bin.tar.gz domain standalone
appclient copyright.txt jboss-modules.jar welcome-content
クライアントの作業
$ docker cp <コンテナID>:/opt/jboss/wildfly/bin.tar.gz bin.tar.gz
コピー後、tar.gz を解凍してください
jconsole で接続する
解凍した jconsole のパスに移動し、jconsole.sh を実行します.
$ cd path/to/bin
$ ./jconsole.sh
service:jmx:remote+http://localhost:9990 に接続します.
メトリクスが取得できています.
以上です.