久しぶりにjava。

prometheus/jmx_exporterを使って、おれおれjar(主にstandaloneサーバ)を監視する場合についてまとめておきます。

jmx_exporterを使って、tomcat/jetty等のサーブレットコンテナなどを監視する方法はよくあるのですが、おれおれjarについてはあまりやっている人が少なそうなので。。

環境は、

OS:CentOS7

JDK:OpenJDK8

でやってます。


前提として、$HOMEに以下が配備されているものとします。

  • jmx_prometheus_javaagent-0.3.1.jar
  • config.yml
  • your.jar

上記の場合、jmx_exporterを使っての監視するためのコマンドは以下となります。(先に結論)

$ java \
 -javaagent:${HOME}/jmx_prometheus_javaagent-0.3.1.jar=9080:${HOME}/config.yaml \
 -Djava.rmi.useLocalHostName=true \
 -Djava.rmi.server.hostname=127.0.0.1 \
 -Dcom.sun.management.jmxremote.port=1099 \
 -Dcom.sun.management.jmxremote.authenticate=false \
 -Dcom.sun.management.jmxremote.ssl=false \
 -Dcom.sun.management.jmxremote.rmi.port=1099 \
 -jar ${HOME}/your.jar

ちなみに、config.ymlの内容は以下のとおりです。

---
hostPort: 127.0.0.1:1099
username:
password:

rules:
- pattern: ".*"

設定内容は、

javaオプションで1099ポートでjmxリスナーを上げて、

javaagent設定を食わしたjmx_exporterにjmxにて1099ポートへアクセスさせる、

というものです。

これにて、

$ curl -s localhost:9080/metrics

で、jmx_exporterから情報が引き出せます。

以上

コメントがあればどうぞ


CAPTCHA Image
Reload Image