New Relic APM Java agentのインストールとエラー対処(Tomcat8)


New Relic APM Java agentをアプリケーションサーバ(Java、Tomcat8)にインストールしたときのTipsです。

検証環境

OS: CentOS 7
Java: java version "1.8.0_121"
Tomcat8: apache-tomcat-8.5.11
Javaアプリケーションサーバはこちらを参考に構築しました。
JDK 8 インストール
Tomcat8

Java agent インストール手順

2通りありますが、ここではself-installerの手順に従います。

Java agent self-installer
Java agent manual installation

インストール(エラー)

早速エラー。

# unzip newrelic-java-3.35.2.zip
# cd newrelic
# java -jar newrelic.jar install
***** ( ( o))  New Relic Java Agent Installer

***** Installing version 3.35.2 ...

* Could not edit start script because:
Could not locate a Tomcat, Jetty, JBoss, JBoss7 or Glassfish instance in /root

* Try re-running the install command with the -s <AppServerRootDirectory> option or from <AppServerRootDirectory>/newrelic.
If that doesn't work, locate and edit the start script manually.

* No need to create New Relic configuration file because:
 A config file already exists: /root/newrelic/newrelic.yml

***** Install incomplete

***** Next steps:
For help completing the install, see https://newrelic.com/docs/java/new-relic-for-java
#

初歩的ですが、理由はzipの解凍先が正しいパスではなかったからです。じゃあどこ?という話。

Java agent self-installerをみると、

Optional file download procedureで、

unzip newrelic.zip -d /path/to/appserver/

Run the installerで、

cd /path/to/appserver/newrelic
java -jar newrelic.jar install

と記されています。

"/path/to/appserver/"が何を意味するのかわかりにくいと思います。

  • "/path/to/appserver/"という名前のパスを指定するの?(この可能性は真っ先に低そう)
  • Tomcatがあるパスのこと?具体的にどこ?(階層深いし)

後者としても、アプリケーションサーバ(Tomcat等)に詳しいこと、監視対象となる環境固有の情報に詳しいことが要求されます。実際の本番環境で試すときはこの辺の事前確認が重要になると考えられます。

今回の場合、こちらをヒントに、/usr/tomcat8/配下にunzipすればインストールが成功しました。

具体例を下に載せます。

インストール(成功)

# unzip newrelic-java-3.35.2.zip -d /usr/tomcat8/
Archive:  newrelic-java-3.35.2.zip
   creating: /usr/tomcat8/newrelic/
  inflating: /usr/tomcat8/newrelic/newrelic.jar
  inflating: /usr/tomcat8/newrelic/LICENSE
  inflating: /usr/tomcat8/newrelic/CHANGELOG
  inflating: /usr/tomcat8/newrelic/README.txt
  inflating: /usr/tomcat8/newrelic/extension-example.xml
  inflating: /usr/tomcat8/newrelic/extension.xsd
  inflating: /usr/tomcat8/newrelic/newrelic.yml
  inflating: /usr/tomcat8/newrelic/nrcerts
  inflating: /usr/tomcat8/newrelic/newrelic-api.jar
  inflating: /usr/tomcat8/newrelic/newrelic-api-sources.jar
  inflating: /usr/tomcat8/newrelic/newrelic-api-javadoc.jar
# cd /usr/tomcat8/newrelic/
# java -jar newrelic.jar install
***** ( ( o))  New Relic Java Agent Installer

***** Installing version 3.35.2 ...

* Backed up start script to /usr/tomcat8/bin/catalina.sh.20170217_140452

* Added agent switch to start script /usr/tomcat8/bin/catalina.sh

* No need to create New Relic configuration file because:
 A config file already exists: /usr/tomcat8/newrelic/newrelic.yml

***** Install successful

***** Next steps:
You're almost done! To see performance data for your app:

1) Restart your app server
2) Exercise your app
3) Log into http://rpm.newrelic.com

Within two minutes, your app should show up, ready to monitor and troubleshoot.
If app data doesn't appear, check newrelic/logs/newrelic_agent.log for errors.
#

念のためTomcatのプロセス再起動。

# systemctl restart tomcat8

めでたく監視がスタートしました。

以上