New Relic(SaaS Application Performance Management) agent 설치
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 를 설치하는 방법에 대해서 정리해 본다.
사전 준비 사항
- newrelic 의 계정생성
- newrelic 사이트의 install 문서를 읽어본다(https://newrelic.com/docs/general/how-do-i-install-the-agent)
- login 을 한후에 상단의 Account Settings 을 클릭하면 우측에 사용할수 있는 agent 의 종류가 보일것이다. 종류에 맞게 다운로드 받자.
New Relic for Java Application Server
공통
- 다운받은 agent 파일의 압축을 해제하고 newrelic.yml 의 설정을 변경한다. (서비스의 구분을 위해 app_name: 항목은 꼭 변경한다.)
- newrelic.jar와 newrelic.yml 을 적당한 폴더에 복사한다. ( 두 파일은 동일한 위치에 있어야 한다.)
Tomcat 에 설치
bin/catalina.sh 에 맨 위에 다음 내용을 추가한다.
catalina.sh 수정# newrelic.jar 가 설치된 절대 경로를 설정 JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/tomcat/newrelic.jar" export JAVA_OPTS
- tomcat을 구동한다.
Web Logic
- WebLogic 의 도메인 홈 폴더로 이동한다.
startM.sh 를 열어서 다음 내용을 추가한다.
startM.sh 수정JAVA_OPTIONS="$JAVA_OPTIONS -javaagent:/export/home/weblogic/Oracle/Middleware/user_projects/domains/newtsaProject/deploy/newrelic.jar " export JAVA_OPTIONS
- WebLogic 의 app domain 을 구동한다.
new relic agent의 정상구동 여부 확인
- newrelic 사이트에 로그인후 상단의 Applications 메뉴에 공통 2번 항목에 app_name 에 설정한 서비스 명이 보이는지 확인한다.
- 이상이 있을 경우 newrelic_agent.log 의 내용을 확인하여 조치한다.
New Relic for PHP
Redhat, CentOS 계열
https://newrelic.com/docs/php/quick-installation-instructions-advanced-users 참고
New Relic repository 를 등록한다.
rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
처음이라면 다음 패키지 설치
yum install newrelic-php5
upgrade라면 다음 명령어 수행
yum update newrelic-php5
cp /etc/newrelic/newrelic.cfg.template /etc/newrelic/newrelic.cfg
/etc/init.d/newrelic-daemon restart
부팅시 자동실행을 위해 다음 명령어 실행
chkconfig newrelic-daemon on
- Restart httpd, nginx, php-fpm, etc.
- 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
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>
위 설정이 끝났으면 browser 로 연결하여 newrelic.license 가 제대로 나오는지 확인한다. license 가 제대로 나와야 newrelic 대쉬보드에서 모니터링이 가능하다.