Jenkins(MBean)のJVMに関する情報をJolokiaで取得

CI/CD

JenkinsやNorikraを利用しているので、JVMに関する情報をcloudforecastを利用して記録している。これはMBeanの情報をHTTP(JSON)で返してくれるJolokiaというJVM-agentを利用して情報を取得しています。

スポンサーリンク

chef-jolokia-jvm

Jolokiaを利用する機会が多くなってきたのでchefで利用するためにcookbookを書きました。内容的にはjarファイルをおいているだけです。symlinkを貼ってバージョンが変わっても固定されたpathで利用したいのでcookbookにしました。

JenkinsでJolokiaを利用する

UbuntuなどにJenkinsを導入すると/etc/default/jenkinsにJVMにオプションを与えるためにJAVA_ARGSという設定が存在する。これにJolokiaをjavaagentとして利用するための設定を加えます。

JAVA_ARGS="-javaagent:/var/lib/jenkins/jolokia-jvm-1.2.3-agent.jar=port=8778,host=0.0.0.0"

Jenkinsを再起動して、動作を確認してください。

$ curl  http://localhost:8778/jolokia/read/java.lang:type=Memory

JSONが帰ってくれば成功。cloudforecastを利用するなり、他のソフトを使うなりしてデータを取得できます。

NorikraでJolokiaを利用する

最新のNorikraのバージョンではjavaagentオプションが加えられている
起動時に

$ norikra start -javaagent:/opt/jolokia/jolokia-agent.jar=port=8778,host=0.0.0.0

とオプションを指定してあげれば、Jolokiaを利用できます。

まとめ

Jolokiaを利用することでJVMの状態を普段利用しているツール(cloudforecast)で可視化できるようになりました。普段見慣れているツールでJVMの状態を確認できるのはありがたいです。
なお、GCなどの命令も送れてしまうので、Jolokiaへのアクセス制限などの設定を忘れずに。

タイトルとURLをコピーしました