久しぶりに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から情報が引き出せます。
以上
コメントがあればどうぞ