Javaアプリケーション

最終更新日: 30 年 2020 月 XNUMX 日

LogicMonitorは、Javaアプリケーションの監視にJMXを使用します。 Tomcatの監視については、を参照してください。 こちらをご覧ください。.

JMXの有効化

JMXは、起動時にJavaJVMにパラメーターを渡すことで有効になります。 Javaアプリケーション内でJMXモニタリングを有効にするための完全な手順については、を参照してください。 JMXを使用した監視と管理.

ユーザー名/パスワードアクセスを使用してJavaプロセスのJMX監視を有効にするには:

  • JVMの起動時にJMXがリッスンするTCPポートを定義します。
    • com.sun.management.jmxremote.port = portNum
    • com.sun.management.jmxremote.rmi.port = portNum
  • パスワードファイルjmxremote.passwordを作成します。内容はロールとパスワードで、スペースで区切ります。例: monitorRole SecretPass
  • パスワードファイルjmxremote.accessを作成します。内容は役割とアクセスレベルであり、スペースで区切られています。例: monitorRole読み取り専用
  • 両方のファイルがJavaプロセスのユーザーによって所有されており、そのユーザーのみが読み取り可能であることを確認してください。 ((chmod600ファイル名 Linuxの場合)

次に、プロセスを開始するときに、これらのパラメーターをJavaに渡す必要があります。

com.sun.management.jmxremote.access.file =jmxremote.accessファイルの場所

com.sun.management.jmxremote.password.file =jmxremote.passwordファイルの場所

com.sun.management.jmxremote.port =JMXポート

com.sun.management.jmxremote.ssl =false

マシン情報の記入> という構文でなければなりません。例えば、

-Dcom.sun.management.jmxremote.access.file = / root / jmxremote.access -Dcom.sun.management.jmxremote.password.file = / root / java_jmx_pass -Dcom.sun.management.jmxremote.port = 9003 -Dcom .sun.management.jmxremote.ssl = false

LogicMonitorでは、プロパティjmx.user、jmx.pass、およびjmx.portsを、jmxアクセスに必要な適切なユーザー名、パスワード、およびポートに設定します。 (これらのプロパティは、グローバル、グループ、またはデバイスレベルで設定できます。を参照してください。 認証資格情報の定義.

注:異なるポートで複数のJMXアプリを実行している場合、jmx.portsは、JMXアクセスをチェックするためのポートのコンマ区切りリストにすることができます。

JMXAccessが機能しない場合

JMX接続の確立中に、照会されるホストがRMI接続のアドレスで応答することに注意してください。これには、Javaシステム上の/ etc / hostsファイルが、/ etc / hostsのように正しく設定されている必要があります。ファイルにはそのホスト名が含まれており、クエリを実行しているホストが解決するのと同じアドレスに解決します。

たとえば、/ etc / hosts用にこれを備えたシステム:

 127.0.0.1          demo1.logicmonitor.com 

demo1.logicmonitor.comへのすべてのJMX接続が失敗します(動的RMI接続を127.0.0.1に行う必要があることを示す応答を送信するため)。

 10.4.4.4            demo1.logicmonitor.com

成功します(10.4.4.4が実際のIPアドレスであると仮定します)。

名前解決の問題を回避する代わりに、-Djava.rmi.server.hostname =パラメーターを使用して、Javaアプリケーションの開始時にRMI接続に使用するホスト名を明示的に識別することもできます。 JMXアクセスが正しく設定されていることを確認するには、Jconsoleを使用することをお勧めします。

注: デフォルトでは、JMXアクセスは1024を超えるRMIの動的ポートを開きます。コレクタが1024を超える非特権ポートでJavaサーバーにこの接続を確立できるようにファイアウォールルールを変更する必要がある場合があります。フラグを使用して明示的に設定することによるRMIアクセス:

-Dcom.sun.management.jmxremote.rmi.port=PORT.

これは、RMIポートをJMXが使用しているのと同じポートに設定するように機能します。つまり、ファイアウォールを介してXNUMXつのポートを開くだけで済みます。

記事上で