GeekFactory

int128.hatenablog.com

MuninでJMX経由でJVMを監視する

MuninでJMX経由でJava VMを監視する方法のメモ。

前提

  • muninが正しく動いていること。
  • 監視対象サーバでmunin-nodeが正しく動いていること。
  • 監視対象サーバでJMXが正しく設定されていること。jconsoleでヒープ状況などが表示されるか確認しておきます。

方法

https://github.com/munin-monitoring/contrib/ を /usr/share/munin/contrib に配置します。

/usr/share/munin/contrib/plugins/java/jmx/examples/java:
-rw-r--r-- 1 root root  714 java_cpu.conf
-rw-r--r-- 1 root root 1946 java_process_memory.conf
-rw-r--r-- 1 root root  428 java_threads.conf

/usr/share/munin/contrib/plugins/java/jmx/plugin:
-rwxr-xr-x 1 root root 1820 jmx_
-rw-r--r-- 1 root root 8977 jmxquery.jar

プラグインシンボリックリンクを張ります。

/etc/munin/plugins:
lrwxrwxrwx 1 root root 53 jmx_hogejvm_memory -> /usr/share/munin/contrib/plugins/java/jmx/plugin/jmx_
lrwxrwxrwx 1 root root 53 jmx_fugajvm_memory -> /usr/share/munin/contrib/plugins/java/jmx/plugin/jmx_

examplesから設定ファイルをコピーします。

sudo cp -a /usr/share/munin/contrib/plugins/java/jmx/examples/java/java_process_memory.conf /usr/share/munin/contrib/plugins/java/jmx/plugin/hogejvm_memory.conf
sudo cp -a /usr/share/munin/contrib/plugins/java/jmx/examples/java/java_process_memory.conf /usr/share/munin/contrib/plugins/java/jmx/plugin/fugajvm_memory.conf

必要に応じてタイトルやカテゴリを編集します。

graph_title JVM Memory (Hoge App)
graph_vlabel Bytes
graph_category Java

/etc/munin/plugin-conf.d/jmx を編集します。

[jmx_hogejvm_*]
env.jmxurl service:jmx:rmi:///jndi/rmi://localhost:20001/jmxrmi

[jmx_fugajvm_*]
env.jmxurl service:jmx:rmi:///jndi/rmi://localhost:20002/jmxrmi

munin-nodeを再起動して、ログにエラーが出ていないか確認します。