APM用のNew Relic Java Agentの場合、インストールは、JVMオプションに-javaagent:/path/to/newrelic.jar
を追加することで行います。これは多くの場合、ヒープメモリの最小値と最大値を指定するのと同じ方法です (-Xms と -Xmx)。
Java Agentをインストールされた状態にし、JVMを起動または再起動すると、数分以内にデータレポートが表示されるはずです。問題が発生した場合は、以下にサポートチームが行うトラブルシューティングの手順をご紹介していますので、問題の早期発見と解決にお役立てください。また、「データが表示されない(Java)」のトラブルシューティングの手順に従った場合、以下の手順の一部が類似している可能性があります。
- アプリケーションがトラフィックを受信していること、少なくとも5分間受信していること、トラブルシューティング中も引き続きトラフィックを受信していることを確認します。
- アプリケーションがAgentの互換性と要件を満たしていることを確認すします。商用ソフトウェアパッケージの中には、製品に共通のフレームワークが組み込まれているものがあり、より複雑な構造になっている可能性があります。
- Diagnostics CLI を実行してデータを収集し、以下を検証します。
- newrelic.yml 設定ファイルを検証します。
- Javaプロセスが検出された場合、Javaプロセスのオプションを確認します。Java のバージョンによっては、Agentの特定のリリースと互換性がありません。
- Agentログファイルを確認します。
- OS、JDK/JREバージョンを確認します。
- 正しいライセンスキーを使用しているか確認します。
- 報告対象となるアプリケーション名の確認します。
- 高セキュリティモードの構成の不一致を確認します。高セキュリティモード設定はクライアントとサーバー(New Relic)側の設定が一致していないと送信されません。どちらかのみ有効になっていないか確認してください。
- アプリケーションログに「New Relic」と名のついたログが2行含まれているかを確認します。この行は、どのnewrelic.ymlファイルから設定が読み込まれ、どのファイルにログ情報が書き込まれているかを示しています。
- Javaプロセスに-javaagentパラメータが含まれていることを確認します。フレームワークによってはオプションの指定順位に制約があります。Include the Java agent with a JVM argument にいくつかの例を挙げていますが、これはすべてを網羅したリストではありません。
- UNIX/LINUXでは、コマンドラインの
ps -ef JavaProcess
で動作するはずです。 - Windowsには無数のツールがあります。タスクマネージャ、wmic、Powershell、Process Explorerなどです。
- プロセスには、Tomcatなどのベンダーが付けた名前があります。
- Windowsでは、Javaプロセスがサービスとして実行されている可能性があります。
- UNIX/LINUXでは、コマンドラインの
- エージェントのログを確認します。ログがない場合は、ステップ5が失敗した可能性があります。ログのデフォルトの場所は、newrelic.jarファイルが存在するディレクトリ/フォルダの下の
/logs
にあり、デフォルトのファイル名はnewrelic_agent.log
です。 - 上記のステップ3のファイルがない場合、newrelic.ymlファイルにファイルパス
log_file_path
とlog_file_name
が設定されているか確認してください。- あるいは、JVMオプションに
-Dnewrelic.config.log_file_path=
と-Dnewrelic.config.log_file_name=
のパラメータがあるかもしれません。 - 環境変数を使って設定する方法もありますが、設定の優先順位に注意してください。
- あるいは、JVMオプションに
-javaagent
オプションを有効にするために、アプリケーションを再起動しましたか?- Windowsをお使いの場合、アプリケーションを停止して再起動しましたか?
- Windows上で動作しており、アプリケーションがWindowsサービスとして動作している場合、Windowsサービスをアップデートしましたか?
- 上記の手順については、社内のチームと協力する必要があるかもしれません。
COTS(Commercial Off The Shelf)ソフトウェアに含まれる様々なフレームワークや組み込みフレームワークでは、-javaagentパラメータの追加がスタートアップスクリプトや管理コンソールに隠されていたり、アプリケーションが起動してパラメータが永続化されない新しいJVMインスタンスを生成するために、エージェントが拾われない可能性があります。
トラブルシューティングの際に注意しなければならないコーナーケース。
Javaの一部のバージョンでは、エンドースされたディレクトリ(-Djava.endorsed.dirs
)を使用していますが、最近のバージョンでは推奨されていません。Javaオプションでこのオプションが設定されていると、リストされたフォルダのみがJREによって読み取られることになります。エージェントがエンドースされたディレクトリの外にある場合、適切に構成されているように見えても無視されます。
Tableau Softwareを使用している場合、製品にハードコードされたJVMオプションの更新を許可しないバージョンを使用していないことを確認してください。このような場合、Tableau社または社内のチームと協力して解決策を見つける必要があります。
別の-javaagent
オプションが同一のJVMで指定されている場合、ほとんどの状況では問題ないはずですが、問題が発生する可能性があります。オプションの順番を入れ替えて、New Relicエージェントが最初にロードされるようにすると、これらの問題が解決することがあります。それでも問題が解決しない場合は、New Relic エージェントと他のエージェントが何らかの衝突を起こしている可能性があります。
それでも問題が解決しない場合は、support.newrelic.com にアクセスして、New Relic Global Technical Supportに連絡してください。 すでに試した手順や、期待していた結果と表示された結果の詳細を、できるだけ詳しく記載してください。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。