Nagiosプラグインを実装しようとしていますが、そのためには、監視するオブジェクトと属性を具体的に知っている必要があります。問題は、標準システムのjmxオブジェクトと属性のどこにもリストを見つけることができなかったということです。誰かが私を正しい方向に向けることができますか?メモリプール、ヒープサイズなどを監視する必要があります。
特定のMBeanServerに登録されているすべてのMBeanにアクセスするには、いつでも mBeanServer.queryNames(null、null); を使用できます(ここで、mBeanServer
は取得したMBeanServerConnection
です。ローカルまたはリモート)。
ただし、独自のNagiosプラグインを実装する前に、既存のプラグインを使用してみませんか?例えば。 jmx4Perl のcheck_jmx4Perl
これには、JMX名前空間を探索するためのツールが付属しています(jmx4Perl <url> list
すべてのJMXMBeanとその属性および操作を一覧表示する場合またはj4psh
状況依存のコマンドライン補完を備えたreadlineベースのJMXシェル)。
あなたが使用することができます
Set mbeans = mBeanServer.queryNames(null, null);
for (Object mbean : mbeans)
{
WriteAttributes(mBeanServer, (ObjectName)mbean);
}
private void WriteAttributes(final MBeanServer mBeanServer, final ObjectName http)
throws InstanceNotFoundException, IntrospectionException, ReflectionException
{
MBeanInfo info = mBeanServer.getMBeanInfo(http);
MBeanAttributeInfo[] attrInfo = info.getAttributes();
System.out.println("Attributes for object: " + http +":\n");
for (MBeanAttributeInfo attr : attrInfo)
{
System.out.println(" " + attr.getName() + "\n");
}
}
これにより、すべてのオブジェクト名とその属性が書き込まれます。
システム管理者の観点から、私は質問の根拠を完全に理解しています。標準のJMXドキュメント、またはJMXオブジェクトツリーを参照しようとしているときに遭遇する可能性のあるオブジェクトは、圧倒されて混乱する可能性があります。
私はこれを見つけました Op5 KB記事 JBossに関心のあるJMXオブジェクトのまともな概要を提供するのに非常に役立ちます。
明らかに、実際に使用している監視システムに合わせて調整する必要がありますが、nagiosベースの監視システムが使用されている例には十分です。
JVMプラットフォームMBeanドキュメント をお探しですか?
MBeanを取得し、それらに問い合わせるための例があります。
ThreadMXBean プラットフォームMBeanは、スレッドの競合とスレッドのCPU時間を監視するためのサポートを提供します。