New Relic 는 SaaS 기반의 APM(Application Performance Management) 서비스 제공회사이다.
JIRA 5의 Release Note에서 New Relic 과도 연계항목을 읽고 알게 되어 가입했는데 다양한 Application Server(Java, .NET, PHP, Ruby, Python)를 지원하며 실시간 모니터링 및 tunning 을 위한 다양한 정보를 제공하고 있다.
모니터링을 위해서는 OS 와 App Server 에 맞는 agent 를 제공하므로 제공하는 Service 에 맞는 agent 를 설치하면 된다.
본 문서에서는 Java 와 PHP agent 를 설치하는 방법에 대해서 정리해 본다.

사전 준비 사항

  1. newrelic 의 계정생성
  2. newrelic 사이트의 install 문서를 읽어본다(https://newrelic.com/docs/general/how-do-i-install-the-agent)
  3. login 을 한후에 상단의 Account Settings 을 클릭하면 우측에 사용할수 있는 agent 의 종류가 보일것이다. 종류에 맞게 다운로드 받자.
  4.  

 

New Relic for Java Application Server

공통

  1. 다운받은 agent 파일의 압축을 해제하고 newrelic.yml 의 설정을 변경한다. ((lightbulb)서비스의 구분을 위해 app_name:  항목은 꼭 변경한다.)
  2. newrelic.jar와 newrelic.yml 을 적당한 폴더에 복사한다. ((warning) 두 파일은 동일한 위치에 있어야 한다.)

Tomcat 에 설치

  1. bin/catalina.sh 에 맨 위에 다음 내용을 추가한다.

    catalina.sh 수정

    # newrelic.jar 가 설치된 절대 경로를 설정
    JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/tomcat/newrelic.jar"
    export JAVA_OPTS
    BASH
  2. tomcat을 구동한다.

 

Web Logic

  1. WebLogic 의 도메인 홈 폴더로 이동한다.
  2. startM.sh 를 열어서 다음 내용을 추가한다.

    startM.sh 수정

    JAVA_OPTIONS="$JAVA_OPTIONS -javaagent:/export/home/weblogic/Oracle/Middleware/user_projects/domains/newtsaProject/deploy/newrelic.jar "
    export JAVA_OPTIONS
    BASH
  3. WebLogic 의 app domain 을 구동한다.

 

new relic agent의 정상구동 여부 확인

  1. newrelic 사이트에 로그인후 상단의 Applications 메뉴에 공통 2번 항목에 app_name 에 설정한 서비스 명이 보이는지 확인한다.
  2. 이상이 있을 경우 newrelic_agent.log 의 내용을 확인하여 조치한다.

 

New Relic for PHP

Redhat, CentOS 계열

https://newrelic.com/docs/php/quick-installation-instructions-advanced-users 참고

  1.  New Relic repository 를 등록한다.

    rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm

     

  2. 처음이라면 다음 패키지 설치

    yum install newrelic-php5 
    CODE

     

  3. upgrade라면 다음 명령어 수행 

    yum update newrelic-php5
    CODE

      

  4.  cp /etc/newrelic/newrelic.cfg.template /etc/newrelic/newrelic.cfg
  5. /etc/init.d/newrelic-daemon restart
  6. 부팅시 자동실행을 위해 다음 명령어 실행 

    chkconfig newrelic-daemon on
    CODE

      

  7. Restart httpd, nginx, php-fpm, etc.
  8. phpinfo(); 를 호출하는 php 페이지를 하나 만들고 Web Browser 로 연결하여 다음과 같이 newrelic 항목이 보이는지 확인한다.
     

PHP 설정

newrelic-php 모듈은 정상적으로 설치된 것이며 라이센스와 환경 설정을 해야한다.

newrelic의 php 설정은 global 과 Per-Directory 로 나뉘어 진다.

 

Global

php.ini 에 설정할 수 있는 항목이며 다음과 같이 세가지 값을 설정할 수 있다.

php.ini

[newrelic]
newrelic.daemon.logfile=/var/log/newrelic/newrelic-daemon.log
newrelic.logfile=/var/log/newrelic/php_agent.log
# verbosedebug, debug, verbose, info, warning, error이며 기본값은 info이다
newrelic.loglevel=info
BASH

 

Per-Directory

httpd.conf 의 VirtualHost 마다 설정할 수 있는 항목이다. 일단 다음 항목만 설정하면 된다.

httpd.conf

<IfModule php5_module>
## newrelic 관리페이지에서 보여줄 app 이름. 구분을 위해서 서비스 명을 적어준다.
php_value newrelic.appname "My Wordpress App"
## newrelic 관리페이지에서 볼 수 있는 라이센스키 (40자이다)
php_value newrelic.license "mylicensekey"
## 사용하는 php framework. 지정하지 않으면 auto-detect 이다.
php_value newrelic.framework "wordpress"
</IfModule>
BASH

 

위 설정이 끝났으면 browser 로 연결하여 newrelic.license 가 제대로 나오는지 확인한다. license 가 제대로 나와야 newrelic 대쉬보드에서 모니터링이 가능하다.