{"id":26333,"date":"2023-11-01T09:27:55","date_gmt":"2023-11-01T09:27:55","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=26333"},"modified":"2025-05-20T10:17:50","modified_gmt":"2025-05-20T10:17:50","slug":"newrelic-apm-install-and-configure-newrelic-apm-java-agent-tutorials","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/newrelic-apm-install-and-configure-newrelic-apm-java-agent-tutorials\/","title":{"rendered":"Newrelic APM- Install and Configure using Tomcat &#038; Java Agent Tutorials"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Step 1 &#8211; Install JDK <\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/complete-guide-of-java-installation-in-linux\/#Download_and_Install_JDKJRE_11_in_Ubuntu\">https:\/\/www.devopsschool.com\/blog\/complete-guide-of-java-installation-in-linux\/#Download_and_Install_JDKJRE_11_in_Ubuntu<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Step 2 &#8211; Install &amp; Start Tomcat<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/tomcat-install-and-configuration-tutorial-and-guide\/#Method_1_-_Install_and_Configuration_Tomcat_in_Any_Linux_using_Zip_file\">https:\/\/www.devopsschool.com\/blog\/tomcat-install-and-configuration-tutorial-and-guide\/#Method_1_-_Install_and_Configuration_Tomcat_in_Any_Linux_using_Zip_file<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Step 3 &#8211; Install your apps<\/h1>\n\n\n\n<p>Lets use Tomcat&#8217;s default example app only. You may have permission issues for accessing http:\/\/18.210.16.76:8080\/examples\/ which can be fixed by following commands below<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">$ cd \/opt\/apache-tomcat-9.0.82\/webapps\/examples\n$ find . -name context.xml\n$ vi .\/META-INF\/context.xml\n<\/code><\/span><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"468\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1024x468.png\" alt=\"\" class=\"wp-image-41211\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1024x468.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-300x137.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-768x351.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image.png 1188w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Step 4 &#8211; Install NewRelic Infra Agent &amp; APM Agent<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/newrelic-infrastructure-monitoring-linux-vitural-machine-using-newrelic-agent\/\">https:\/\/www.devopsschool.com\/blog\/newrelic-infrastructure-monitoring-linux-vitural-machine-using-newrelic-agent\/<\/a><\/li>\n<\/ul>\n\n\n\n<p>NewRelic Infra Agent would detect the Tomcat and Java automatically and try to configure APM Java Agent as per the image as below;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1-1024x546.png\" alt=\"\" class=\"wp-image-41214\" style=\"aspect-ratio:1.8754578754578755;width:773px;height:auto\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1-1024x546.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1-300x160.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1-768x410.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1-1536x819.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-1.png 1549w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"376\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-2-1024x376.png\" alt=\"\" class=\"wp-image-41215\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-2-1024x376.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-2-300x110.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-2-768x282.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-2-1536x564.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-2.png 1540w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"445\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-3-1024x445.png\" alt=\"\" class=\"wp-image-41216\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-3-1024x445.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-3-300x130.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-3-768x334.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-3.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">root@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-58<\/span><span class=\"hljs-number\">-86<\/span>:\/etc\/newrelic-infra\/integrations.d<span class=\"hljs-comment\"># ls<\/span>\ndocker-config.yml  java-dynamic-attach.yml\n\nroot@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-58<\/span><span class=\"hljs-number\">-86<\/span>:\/etc\/newrelic-infra\/integrations.d<span class=\"hljs-comment\"># more java-dynamic-attach.yml<\/span>\nintegrations:\n  - name: java-dynamic-attach\n    exec: .\/dynamic-attach.sh\n    working_dir: \/etc\/newrelic-java\n    interval: <span class=\"hljs-number\">60<\/span>s\n    timeout: <span class=\"hljs-number\">1200<\/span>s\n    integration_user: root\n\nroot@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-58<\/span><span class=\"hljs-number\">-86<\/span>:\/etc\/newrelic-infra\/integrations.d<span class=\"hljs-comment\">#<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 5 -(Manual) Install NewRelic APM Java Agent<\/h1>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"675\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-5-1024x675.png\" alt=\"\" class=\"wp-image-41221\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-5-1024x675.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-5-300x198.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-5-768x506.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-5.png 1158w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"605\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-6-1024x605.png\" alt=\"\" class=\"wp-image-41223\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-6-1024x605.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-6-300x177.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-6-768x454.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-6.png 1174w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"616\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-7-1024x616.png\" alt=\"\" class=\"wp-image-41224\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-7-1024x616.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-7-300x181.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-7-768x462.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-7.png 1278w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"407\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-8-1024x407.png\" alt=\"\" class=\"wp-image-41225\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-8-1024x407.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-8-300x119.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-8-768x305.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-8.png 1135w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"450\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-9-1024x450.png\" alt=\"\" class=\"wp-image-41226\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-9-1024x450.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-9-300x132.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-9-768x338.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-9.png 1306w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\nAlternative\n\ncurl -Ls https:<span class=\"hljs-comment\">\/\/download.newrelic.com\/install\/newrelic-cli\/scripts\/install.sh | bash &amp;&amp; sudo NEW_RELIC_API_KEY=NRAK-32EHABRB7444 NEW_RELIC_ACCOUNT_ID=3404444 \/usr\/local\/bin\/newrelic install -n java-agent-installer<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Manual way to set Newrelic APM Agent in Tomcat<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$ cd \/opt\n$ curl -O https:<span class=\"hljs-comment\">\/\/download.newrelic.com\/newrelic\/java-agent\/newrelic-agent\/current\/newrelic-java.zip<\/span>\n$ unzip newrelic-java.zip\n$ cd newrelic\n$ mv newrelic.yml newrelic.yml-bkp\n$ vi newrelic.yml <span class=\"hljs-comment\"># COPY PASTE from Download newrelic.yml<\/span>\n$ chmod -R <span class=\"hljs-number\">755<\/span> .\n$ cd \/opt\/\n$ cd apache-tomcat<span class=\"hljs-number\">-9.0<\/span><span class=\"hljs-number\">.73<\/span>\n$ cd bin\n$ vi setenv.sh\nexport CATALINA_OPTS=<span class=\"hljs-string\">\"$CATALINA_OPTS -javaagent:\/opt\/newrelic\/newrelic.jar\"<\/span>\n$ .\/shutdown.sh\n$ .\/startup.sh\n$ ps -eaf | grep newrelic.jar<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"219\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-43-1024x219.png\" alt=\"\" class=\"wp-image-49396\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-43-1024x219.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-43-300x64.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-43-768x164.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-43-1536x328.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-43.png 1602w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The <code>CATALINA_OPTS<\/code> environment variable is used to set Java options for the Tomcat server. The option <code>-javaagent:\/opt\/newrelic\/newrelic\/newrelic.jar<\/code> is used to load the New Relic Java agent, which enables monitoring of your Tomcat application using New Relic APM.<\/p>\n\n\n\n<p>If you are looking for other options to set in <code>CATALINA_OPTS<\/code> to configure the New Relic Java agent, some common options include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-Dnewrelic.config.file=&lt;path to newrelic.yml&gt;<\/code>: This option can be used to specify the path to the New Relic configuration file, which contains settings such as application name, license key, and logging configuration.<\/li>\n\n\n\n<li><code>-Dnewrelic.environment=&lt;environment name&gt;<\/code>: This option can be used to specify the name of the environment in which your application is running, such as &#8220;production&#8221; or &#8220;staging&#8221;.<\/li>\n\n\n\n<li><code>-Dnewrelic.appname=&lt;application name&gt;<\/code>: This option can be used to specify the name of your application as it will appear in the New Relic APM dashboard.<\/li>\n\n\n\n<li><code>-Dnewrelic.verbose=true<\/code>: This option can be used to enable verbose logging for the New Relic Java agent.<\/li>\n\n\n\n<li><code>-Dnewrelic.config.log_file_path=&lt;path to log file&gt;<\/code>: This option can be used to specify the path to the New Relic log file.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Step 6 &#8211; Access the apps<\/h1>\n\n\n\n<p>You may create a Traffic on App using Jmeter as below;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"403\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-11-1024x403.png\" alt=\"\" class=\"wp-image-41237\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-11-1024x403.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-11-300x118.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-11-768x303.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-11.png 1510w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Step 7 &#8211; Verify a APM apps on NewRelic Dashboard<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"330\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-10-1024x330.png\" alt=\"\" class=\"wp-image-41235\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-10-1024x330.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-10-300x97.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-10-768x248.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/11\/image-10.png 1519w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Step 1 &#8211; Install JDK Step 2 &#8211; Install &amp; Start Tomcat Step 3 &#8211; Install your apps Lets use Tomcat&#8217;s default example app only. You may have permission issues&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-26333","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=26333"}],"version-history":[{"count":17,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26333\/revisions"}],"predecessor-version":[{"id":49397,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26333\/revisions\/49397"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=26333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=26333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=26333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}