web-dev-qa-db-ja.com

JMXオブジェクトと属性のリスト?

Nagiosプラグインを実装しようとしていますが、そのためには、監視するオブジェクトと属性を具体的に知っている必要があります。問題は、標準システムのjmxオブジェクトと属性のどこにもリストを見つけることができなかったということです。誰かが私を正しい方向に向けることができますか?メモリプール、ヒープサイズなどを監視する必要があります。

16
Matthew

特定のMBeanServerに登録されているすべてのMBeanにアクセスするには、いつでも mBeanServer.queryNames(null、null); を使用できます(ここで、mBeanServerは取得したMBeanServerConnectionです。ローカルまたはリモート)。

ただし、独自のNagiosプラグインを実装する前に、既存のプラグインを使用してみませんか?例えば。 jmx4Perlcheck_jmx4Perlこれには、JMX名前空間を探索するためのツールが付属しています(jmx4Perl <url> listすべてのJMXMBeanとその属性および操作を一覧表示する場合またはj4psh状況依存のコマンドライン補完を備えたreadlineベースのJMXシェル)。

19
Roland Huß

あなたが使用することができます

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");
    }
}

これにより、すべてのオブジェクト名とその属性が書き込まれます。

20
Gilad

システム管理者の観点から、私は質問の根拠を完全に理解しています。標準のJMXドキュメント、またはJMXオブジェクトツリーを参照しようとしているときに遭遇する可能性のあるオブジェクトは、圧倒されて混乱する可能性があります。

私はこれを見つけました Op5 KB記事 JBossに関心のあるJMXオブジェクトのまともな概要を提供するのに非常に役立ちます。

明らかに、実際に使用している監視システムに合わせて調整する必要がありますが、nagiosベースの監視システムが使用されている例には十分です。

1
Chux Uzoeto

JVMプラットフォームMBeanドキュメント をお探しですか?

MBeanを取得し、それらに問い合わせるための例があります。

ThreadMXBean プラットフォームMBeanは、スレッドの競合とスレッドのCPU時間を監視するためのサポートを提供します。

0
Joel

MC4J または JConcole をチェックしてください-両方を使用するのは簡単です。

0
helios