GroovyJMXアクセス

最終更新日: 20 年 2023 月 XNUMX 日

データソース内のJMXMBeanにアクセスする場合、通常はJMXコレクションメカニズムを使用できますが、JMXクエリからの結果の複雑な処理を行う必要がある場合は、Groovyを使用してJMX結果を取得する方がはるかに簡単です。

A 完全なリファレンス LogicMonitorのGroovyJMXメソッドの概要は、このページの下部にありますが、この機能がどのように機能するかを示すいくつかの例を次に示します。

 

例1-MBean属性の値を取得する

// logicmonitorjmxヘルパークラスをインポートしますimportcom.santaba.agent.groovyapi.jmx。*; //クエリを実行するjmxホスト、ポート、および資格情報を取得しますdef jmx_host = hostProps.get( 'system.hostname'); def jmx_port = hostProps.get( 'jmx.port'); def jmx_user = hostProps.get( 'jmx.user'); def jmx_pass = hostProps.get( 'jmx.pass'); // jmxurlを定義しますdefjmx_url = "service:jmx:rmi:/// jndi / rmi://" + jmx_host + ":" + jmx_port + "/ jmxrmi"; // jmxurlへの接続を開きますdefjmx_conn = JMX.open(jmx_url、jmx_user、jmx_pass); // Beanの値を出力しますprintjmx_conn.getValue( "java.lang:type = Threading:ThreadCount"); //正常に実行されたことを示す応答コードで戻りますreturn(0);

 

 

例2–特定のMBeanプロパティの値のリストを取得する

// logicmonitorjmxヘルパークラスをインポートしますimportcom.santaba.agent.groovyapi.jmx。*; // jmxホスト、クエリを実行するポートを取得しますdef jmx_host = hostProps.get( 'system.hostname'); def jmx_port = hostProps.get( 'jmx.port'); // jmxurlを定義しますdefjmx_url = "service:jmx:rmi:/// jndi / rmi://" + jmx_host + ":" + jmx_port + "/ jmxrmi"; //認証が不要であると想定して、jmxサーバーへの接続を開きますdef jmx_conn = JMX.open(jmx_url); //各メモリプールの名前を取得しますmempool_array = jmx_conn.getChildren( "java.lang:type = MemoryPool、name = *"); // mempool名を繰り返し処理しますmempool_array.each {pool-> println pool; } //正常に実行されたことを示す応答コードで戻りますreturn(0);

 

 

例3–JMXMPを使用してJMXクライアントを作成する

// logicmonitorjmxヘルパークラスをインポートしますimportcom.santaba.agent.groovyapi.jmx。*; // jmxホスト、クエリを実行するポートを取得しますdef jmx_host = hostProps.get( 'system.hostname'); def jmx_port = hostProps.get( 'jmx.port'); //新しいハッシュマップを作成し、jmxmpパラメーターをキーと値のペアとして入力しますclientEnv = new HashMap(); clientEnv.put( "jmx.remote.profiles"、 "TLS SASL / PLAIN"); clientEnv.put( "jmx.remote.tls.socket.factory"、SSLContext.getInstance( "TLSv1")。getSocketFactory()); def jmxmp_conn = JMX.open( "jmxmp"、jmx_host、jmx_port、clientEnv、5000); //もっと何かをする...

 

 

JMXメソッドリファレンス

オブジェクトのインスタレーション

JMX.open(url、[timeout])– 認証なしでリモートjmxサービスへの接続を開く

  • @param文字列 URL – jmx url
  • @param 整数 タイムアウト –ミリ秒単位の接続タイムアウト
  • @returnオブジェクト 接続 後続のメソッド呼び出しで使用するjmx接続オブジェクト

JMX.open(url、[userid]、[passwd]、[timeout])– 認証を使用してリモートjmxサービスへの接続を開きます

  • @param文字列 URL – jmx url
  • @param文字列 ユーザーID –ユーザーID資格情報
  • @param文字列 passwd –パスワード資格情報
  • @param 整数 タイムアウト –ミリ秒単位の接続タイムアウト
  • @returnオブジェクト 接続 後続のメソッド呼び出しで使用するjmx接続オブジェクト

JMX.open(プロトコル、ホスト、ポート、environmentMap、[タイムアウト])– リモートjmxmpまたはrmiサービスへの接続を開きます

  • @param文字列 –jmxプロトコル
  • @param文字列 host –接続するホスト名
  • @param 整数 ポート –接続するポート
  • @param マップ 環境マップ – jmx環境マップ。資格情報、リモートプロファイル、TLS暗号スイートなどが含まれる場合があります)
  • @param 整数 タイムアウト –ミリ秒単位の接続タイムアウト
  • @returnオブジェクト 接続 後続のメソッド呼び出しで使用するjmx接続オブジェクト

オブジェクトメソッド

getValue(jmxpath) – jmxmbeanの値を取得します

  • @param文字列 jmxpath – jmxmbeanパス
  • @return文字列 ムビアン – jmxmbean値

getChildren(jmxpath)提供されたものに一致するものが見つかるまで、接続からテキストを読み取ります 正規表現

  • @param文字列 jmxpath –jmxノードまたはプロパティパス
  • @return配列 プロパティ名|ノード –パスに応じて、子ノードの名前またはプロパティ名
記事上で