Статьи

Мониторинг приложения ADF, развернутого в Weblogic с использованием Newrelic Java Agent

Я зарегистрировался на  Newrelic  некоторое время назад. Меня завлекла регистрация бесплатной футболкой для всех, кто развертывает агент Newrelic и использует его для мониторинга приложения. Я никогда не думал, что можно отслеживать приложения, развернутые локально. И снова сегодня было электронное письмо о том, что любой, кто регистрируется, получает один месяц подписки на CodeSchool. Так почему бы не   попробовать Newrelic .

Я разрабатывал инструмент для своего проекта в ADF и развертывал его на сервере weblogic. Поэтому я подумал об использовании  Newrelic для мониторинга приложений Java . В этом посте я использую WebLogic Server версии 10.3.5.0. Представленная здесь документация   не помогла полностью настроить.

Я использовал JDeveloper с IntegratedWebLogicServer для управления сервером weblogic.

Вот следующие шаги:
1. Загрузите Java-агент  отсюда . И распакуйте на домашний сервер Weblogic , который по умолчанию в этом месте: C:\Oracle\Middleware\wlserver_10.3. Таким образом, теперь вы увидите новую папку в вашем домашнем каталоге weblogic.

2. Теперь вам нужно подключить агент Java, который является newrelic.jar, к вашему серверу weblogic во время его запуска. Для версии сервера weblogic, которую я использовал, и на компьютере с Windows запуск weblogic управляется startWebLogic.cmd. В моем случае этот сценарий присутствовал в: C:\Users\USER_NAME\AppData\Roaming\JDeveloper\system11.1.2.1.38.60.81\DefaultDomain\bin. Другой способ выяснить, какой сценарий используется, заключается в том, что при попытке запустить IntegratedWebLogicServer из JDeveloper вы видите, что происходит некоторая регистрация, и в этом вы можете узнать, какой сценарий использовался для запуска вашего сервера weblogic. На снимке экрана показано ведение журнала с указанием имени скрипта:
WeblogicStartCommand

Откройте файл startWebLogic.cmd и добавьте следующую строку где-нибудь вверху скрипта:

set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:"C:\Oracle\Middleware\wlserver_10.3\newrelic\newrelic.jar"

путь должен быть путем, где вы извлекли новый реликтовый почтовый индекс.

3. Теперь запустите сервер weblogic и разверните на нем свое приложение, используя JDeveloper. Когда сервер запускается, он выбирает агента NewRelic, и вы можете увидеть некоторые записи, похожие на:

Jun 26, 2013 23:21:38 +0530 NewRelic 1 INFO: Agent is using Logback
Jun 26, 2013 23:21:38 +0530 NewRelic 1 INFO: Loading configuration file "C:\Oracle\Middleware\wlserver_10.3\newrelic\.\newrelic.yml"

И вы также увидите каталог журналов, создаваемый в каталоге вашего агента, и увидите, что журналы обновляются в newrelic_agent.log

Как только вы подтвердите, что ваш агент Newrelic присоединился к серверу weblogic, вы можете посетить панель мониторинга Newrelic со своего сайта и просмотреть данные, отправляемые агентом Newrelic.

Некоторые проблемы, которые я нашел

Issue 1: Failed hostname verification check
Once the agent is running it keeps communicating with the Newrelic Saas application to send the application statistics. I found that the Weblogic server was reporting the following error:

<Jun 26, 2013 10:47:58 PM IST> <Warning> <Security> <BEA-090504> <Certificate chain received from collector.newrelic.com. - 204.93.223.153 failed hostname verification check. Certificate contained *.newrelic.com but check expected collector.newrelic.com.>

One can resolve this by turning off the Domain name verification which I found here. I opened the startWebLogic.cmd file and appended the following line: -Dweblogic.security.SSL.ignoreHostnameVerification=true. You would have to append this at two places. Your startWebLogic.cmd will not look something like:

if "%WLS_REDIRECT_LOG%"=="" (
echo Starting WLS with line:
echo %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy -Dweblogic.security.SSL.ignoreHostnameVerification=true %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy -Dweblogic.security.SSL.ignoreHostnameVerification=true %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%
) else (
echo Redirecting output from WLS window to %WLS_REDIRECT_LOG%
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy -Dweblogic.security.SSL.ignoreHostnameVerification=true %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%  >"%WLS_REDIRECT_LOG%" 2>&1
)

Issue 2: Proxy settings related issue
One can set the proxy settings in the newrelic.yml file which can be found in the newrelic directory or the directory where your newrelic agent is present.

With this I was able to manage my ADF application deployed to a local weblogic server using the Newrelic Java application monitoring tool.

Let me know if you are stuck trying the above steps.