問題タブ [jolokia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jolokia を使用して、同じ Tomcat サーバー上の webapp の JMX エンドポイントを監視する
Jolokiaは私にとって未知の領域であり、ドキュメントを読んだ後でも、私が念頭に置いているシナリオで動作するかどうかはわかりません.
設定:
- Tomcat アプリケーション サーバー (バージョンの範囲は 6.x から 7.x)。通常は Windows プラットフォーム上にあり、場合によっては Linux のフレーバー上にあります。
- JMX 監視が有効になっている (RMI 経由でアクセス可能) サードパーティの Java Web アプリケーション (SAP BusinessObjects) をデプロイしました。
考えられる落とし穴:
- 監視対象の Java Web アプリケーションは商用かつクローズド ソースであるため、変更はできません。変更できるのは JMX ポート番号だけです
- JMX エンドポイントはカスタム エンドポイントであるため、デフォルトの
jmxrmi
エンドポイントではありません。 - JMX 接続には認証が必要です。
ゴール:
私がやりたいことは、Jolokia WAR ファイルを Tomcat サーバーにデプロイしてから、他の Web アプリケーションから MBean 属性を読み取れるように構成することです。
Python (バージョン 3) とRequests HTTP ライブラリを使用して、自分でクライアントをコーディングします。
私は Jolokia のドキュメントを読んでいます (繰り返しますが、この時点ではまったくの初心者です) が、これが可能かどうかはわかりません (JMX に入る場所が見つからないため) /RMI url または認証情報)。
質問:
- このセットアップに WAR エージェントを使用できますか?
- そうでない場合は、その理由を説明していただけますか (信じられないからではなく、理解できるように)。また、このシナリオにより適した別のエージェントはありますか?
- はいの場合、接続する Web アプリケーションに Jolokia を構成する方法を教えていただけますか?
spring-boot - Spring Boot WAR jolokia 統合
Spring Boot 1.2.3 Reference Docsによると。jolokia を有効にするのは、次の Maven 依存関係を追加するのと同じくらい簡単なようです。
これはファット jar としてパッケージ化された Spring Boot アプリケーションでは機能しますが、WAR ファイルとしてパッケージ化された場合は機能しません。
根本的な原因は次のようです。
私は開発目的で STS を使用しており、組み込みの重要な tc Server 3.1 にデプロイしています。を含む依存関係 (json-simple-1.1.1.jar) がorg.json.simple.JSONAware
Maven 依存関係ノードの下に表示されるため、問題が何であるかわかりません。
apache-camel - バニラの Java/Camel/Spring で JSON からデータを抽出する
Jolokia REST API を介して ActiveMQ サーバーから JMX データを取得する Camel ルートを作成しようとしています。ActiveMQ サーバーから JSON オブジェクトを正常に取得できましたが、Camel ルートで JSON オブジェクトを解析する方法がわからないという問題が発生しています。Camel は、Jackson、Gson、および XStream と統合されていますが、それぞれに、私が持っていない追加のライブラリが必要なようです。Camel は JSONPath もサポートしていますが、私が持っていない別のライブラリが必要です。これまでの私の研究はすべて、新しいソフトウェア ライブラリを使用することを示しているようです。そのため、解決策を知っている人を探して、さらにいくつかの行き止まりを試す時間を節約できるようにしています。
大きな問題は、Java/Camel/Spring/ActiveMQ/apache-commons に付属するもので JSON を解析しようとしていることです。Camel/Spring XML のみを使用するソリューションを希望しますが、Java を使用する別のソリューションが機能します (Apache Commons の JXPath など)。
私が現在所有しているライブラリを使用しようとしている理由は、当社が新しいソフトウェア ライブラリを承認するまでに長いプロセスを必要とするからです。ライブラリが承認されるまで数か月待つか、独自の専用パーサーを作成できますが、Jolokia JMX REST API から取得している JSON オブジェクトから情報の一部を抽出する別の方法があることを願っています。 ActiveMQ で。
cross-domain - Spring Boot、Jolokia Remote Access が「Access-Control-Allow-Origin」ヘッダーが存在しないことを返す
Spring Boot アプリケーションで jmx を使用して jolokia をセットアップしたので、HTTP 経由で jmx 情報を取得できます。
ただし、「要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。したがって、Origin ' http://localhost:8080 ' はアクセスを許可されていません」というエラーが表示され、javascript ajax でデータを取得できません。
jolokia エンドポイントが 'Access-Control-Allow-Origin: *' ヘッダーを返して任意のオリジンを許可するようにしたい、または少なくとも jolokia-access.xml で指定した許可されたオリジンのヘッダーを返すようにしたいのですが、ヘッダーが取得されません応答があり、何を見逃したのかわかりません
スクリプトをリモートで実行したいので、私が実行しているモニタリング JavaScript は、私のスプリング ブート アプリケーションがある同じサーバー上にはありません。
以下は私のスプリングブートアプリケーションのセットアップです。
application.properties と jolokia-access.xml の両方がクラスパスにあるため、application.properties の management.port に対して行った変更と、jolokia-access.xml のリモート ポスト アクセス制限が適用されていることがわかります。
pom.xml
アプリケーションのプロパティ
jolokia-access.xml
curl で jolokia エンドポイントにヒットすると、以下のように json として応答に jmx データを含めることができます
ただし、 jolokia エンドポイントからの応答に Access-Control-Allow-Origin ヘッダーがないため、以下の javascipt は失敗しました。「endpoints.cors.allowed-origins=*」プロパティをセットアップしても、応答にヘッダーが表示されません
JavaScript の監視
JavaScript が送信した要求ヘッダー
JavaScript が受け取った応答ヘッダー
上記のように、「Access-Control-Allow-Origin」ヘッダーはまったくありません。
spring - Spring を使用した Jolokia エージェントの構成
こちら で提供されている Jolokia Spring サポートのリファレンス ドキュメントに従って、Spring アプリケーションで Jolokia JVM エージェントを構成しようとしています。
jolokia-spring-1.3.1
私はmavenの依存関係として追加しました。以下は私の春のアプリケーションコンテキストです:
コードを実行すると、コンソールに次の出力が表示されますが、Jolokia エージェントは作成されません。
http://127.0.0.1:15151/jolokia/
を参照すると、次のように表示されます。
hawtioを使用して使用可能な JVM を一覧表示すると、作成された JVM が表示されますが、[エージェント URL] の下は空白です。hawtio でエージェントを起動しようとすると、コンソールに次のエラーが表示されます。
spring XML を使用する代わりに、次の Java オプションを使用してコードを実行します。
次に、エージェントが正しく開始され、使用可能になります。これは、次のコンソール出力によって確認されます。
エージェントとその正しいポート 15000 をリストする hawtio と同様に。
また、リファレンス ドキュメントで提案されているように、Jolokia 名前空間を使用せずに Spring 構成を書き直そうとしました。次に例を示します。
しかし、これでも同じ問題が発生します。
私の質問は、Jolokia エージェントが失敗する原因となっている Spring 構成で何が間違っているのでしょうか?
参考までに、Spring のバージョンは 4.1.6 で、JDK は 1.8.0_45 です。
ありがとう
java - Jolokia が Tomcat のシャットダウンを防止
jolokia を Tomcat に統合しました (Tomcat 7.0.53、jdk 1.8.0_45)
tomcat-directory/bin/setenv.sh で javaagent を構成しました。
今、Tomcatをシャットダウンするのに問題があります。ps は、Java プロセスが既に実行されていることを示しています。シャットダウンの出力は次のとおりです。
これはスレッド ダンプです。
catalina_opts から javaagent を削除すると、すべてが正常に機能するようになりました。stackoverflow で検索しましたが、解決策が見つかりませんでした。