14

JMXクエリツールを探しています。jolokiaとjmxtransに出くわしましたが、どちらもJSONベースのクエリをサポートしています。JMXtransには、Jolokiaにはない監視ツールのライターがいます。私はグーグルで検索しましたが、2つを比較する情報はあまり得られませんでした。しかし、私は両方のツールで肯定的なブログ投稿を読んだことがあります。誰かが以前にこれらを使用したことがある場合、plsはあなたの経験を共有しています...

4

3 に答える 3

20

私はjmxtransの作者です。jmxtransを開発する前に、Jolokiaを検討しました。別のユースケースを念頭に置いていたので、jmxtransを使用して開発することにしました。

JolokiaはTomcatで戦争として実行されます。JMXサーバーにクエリを実行できるという点でjmxtransに似ていますが、それが類似性の終わりです。機能を同等にするために、残りのjmxtransをJolokiaの上に実装する必要があります。

一方、jmxtransはスタンドアロンであり、Tomcatの要件はありません。私のターゲットオーディエンスはnetops/devopsの役割です。比較的単純なJSONベースの構造で構成されているため、構成して使用するために工学の学位は必要ありません。

jmxtransを使用して、jmxを介して統計を公開するサービスを継続的に監視すると考えられます。jmxtransを使用して、データをjmxから必要な出力形式に「変換」します。一般的に、DevOpsの人々は、JVMをGraphite / Gangliaのようなある種の監視ソリューションと統合したいと考えているので、これらのツールの出力ライターを提供しました。

jmxtransは、jmxサーバーに対してクエリを実行する方法についても非常に賢く、そのための最適化が少しあります。また、多くのサーバーへのリクエストを並列化して、jmxtransをスケーリングし、単一のjmxtransインスタンスで数百台のサーバーに継続的にクエリを実行できるようにするための作業もたくさんあります。

それが少し明確になることを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-04-21T05:58:25.490 に答える
18

確かに、jmxtransとJolokiaは異なる焦点を持っています。Jmxtransは、JMX要求を定期的に照会し、その結果をgraphiteやrrdtoolなどのバックエンドに送信するスケジューラーを備えた完全な監視ソリューションです。標準のJSR-160(RMIベース)通信を使用して、JMX対応のJavaサーバーにクエリを実行します。

一方、 JolokiaはHTTP / JSON-JMXアダプターであり、Java以外のクライアントが簡単にアクセスできるようにし、純粋なJSR-160実装では利用できないいくつかの独自の機能を追加します。監視プラットフォームに統合するには、さらに別のソフトウェアが必要です。Nagiosには、Jolokiaエージェントにクエリを実行するためのフル機能のNagiosプラグインを提供するJmx4Perlがあります。

私はJolokiaの作者なので、Jolokiaのハイライトをいくつか強調しておきましょう。

  • 多くのリクエストを1つの一括リクエストとして一度に送信できます。これにより、1回のHTTPターンアラウンドで数百の属性をクエリできます。これは、大規模な環境では本当に大きな違いになります。
  • HTTP Jolokiaを使用しているため、ファイアウォールの境界を越えて簡単にクエリを実行できます(これは標準のJMXコネクタを使用する場合の悪夢です)。
  • プレーンなXMLポリシーファイルを使用することで、きめ細かい認証が簡単に可能になります
  • エージェントは、Tomcatまたはその他のJava EEコンテナーだけでなく、Java 6アプリケーション(ActiveMQやCamelなど)でも使用できます。
  • コマンドラインツールの優れたスイート(たとえば、コンテキスト依存のコマンド補完を備えたreadlineベースのJMXシェル)には、Jmx4Perlが付属しています。
  • Perl、Javascript、Pythonなどからライブラリにアクセスできます。
  • ....詳細については、www.jolokia.orgを参照してください。

要約すると、JSR-160リモーティングに基づく完全な監視ソリューションが必要な場合はjmxtransを使用する必要があり(ただし、Nagiosとcheck_jmx4perlも使用できます)、JSR-160の制限を克服する必要がある場合、または1つのメリットが得られる場合はJolokiaを使用する必要があります。そのユニークな機能の。監視するサーバーへの通信のためにJolokiaをjmxtransに統合することを想像することもできます。これにより、JSR-160RMIの代わりにJSON/ HTTPを経由します(これにより、焦点の違いとサポートされているユースケースも明確になります)。

于 2012-06-04T09:03:20.427 に答える
1

もう1つのプロジェクトをテーブルに配置します-https://github.com/dimovelev/metrics-sampler 正規表現と変数置換を使用してJMXデータをクエリし、メトリックソースとしてJDBCクエリもサポートします(主にOracle DB統計を監視するため) apachemod_qosのものの場合はmod_qos。出力として必要なのはグラファイトだけであり、それが現在サポートされている唯一の出力です。

ちなみに、IMHO JMXポートは、ホットスポットが起動時にランダムなエフェメラルポートを選択するという理由だけでファイアウォールに問題があります。jrockitを使用すると、標準のjvmオプションを使用して(レジストリと同じポートに)指定できます。ホットスポットでこれを行うには、自分でコーディングする必要があります(または、tomcat jmxコネクタからのコードを再利用します)。良い点は、両方のポートを同じ値に設定しても問題がないため、ファイアウォールルールが1つだけ必要なことです。

乾杯ディモ

于 2012-09-25T21:07:39.763 に答える