don't stop believing

CentOS에 nGrinder 설치 하기 (v3.4) 본문

Testing Automation/nGrinder

CentOS에 nGrinder 설치 하기 (v3.4)

Tongchun 2017. 10. 11. 17:38

CentOS에 nGrinder 3.4 버전을 설치해 봅시다.

내부 개발환경에서는 Ubuntu를 사용하는 경우가 많지만 실제 서비스할 때 퍼블리셔는 CentOS를 제공합니다.

제가 받은 서버는 AWS의 EC2에 있는 Amazon Linux AMI 입니다.

Last login: Wed Oct 11 06:39:15 2017 from 123.45.67.89

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2017.09-release-notes/

접속 후 아래 명령으로 버전과 OS정보를 확인할 수 있습니다.

$ grep . /etc/*release*
/etc/os-release:NAME="Amazon Linux AMI"
/etc/os-release:VERSION="2017.09"
/etc/os-release:ID="amzn"
/etc/os-release:ID_LIKE="rhel fedora"
/etc/os-release:VERSION_ID="2017.09"
/etc/os-release:PRETTY_NAME="Amazon Linux AMI 2017.09"
/etc/os-release:ANSI_COLOR="0;33"
/etc/os-release:CPE_NAME="cpe:/o:amazon:linux:2017.09:ga"
/etc/os-release:HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
/etc/system-release:Amazon Linux AMI release 2017.09
/etc/system-release-cpe:cpe:/o:amazon:linux:2017.09:ga

먼저 java가 설치되어 있는지 확인해 봅니다.

$ java -version
java version "1.7.0_151"
OpenJDK Runtime Environment (amzn-2.6.11.0.74.amzn1-x86_64 u151-b00)
OpenJDK 64-Bit Server VM (build 24.151-b00, mixed mode)

확인해 보니 OpenJDK가 설치되어 있네요. Oracle JAVA 8 JDK를 설치해 봅시다.

Oracle JAVA 8 JDK를 다운로드 받습니다.

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz"

압축을 풀고 /usr/share/jdk8로 이동시킵니다.

$ sudo tar xzf jdk-8u144-linux-x64.tar.gz
$ sudo mv jdk1.8.0_144 /usr/share/jdk8

alternatives로 java를 설치하고 config로 사용할 java를 선택해 줍니다.

$ sudo alternatives --install /usr/bin/java java /usr/share/jdk8/jre/bin/java 0
$ sudo alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/share/jdk8/jre/bin/java

Enter to keep the current selection[+], or type selection number: 2

새로 설치한 2를 선택하고 java 버전을 확인하면 1.8 버전으로 변경된 것을 확인할 수 있습니다.

$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

다음으로 java 환경변수를 설정합니다.

/etc/profile에 java 경로를 설정해 줍니다.

$ sudo vi /etc/profile

profile 파일의 마지막 줄에 아래 두 줄을 추가하고 저장합니다.

export JAVA_HOME=/usr/share/jdk8
export PATH=$PATH:$JAVA_HOME/bin

source로 적용하고 JAVA_HOME 경로가 제대로 적용되었는지 확인합니다.

$ source /etc/profile
$ echo $JAVA_HOME
/usr/share/jdk8

이번에는 tomcat을 설치해 봅시다. 설치할 버전은 8입니다.

tomcat 다운받고 압축을 풉니다. 그리고 적당한 곳으로 이동합니다.

참고로 tomcat 다운로드는 아래 url에 확인할 수 있습니다.

[https://tomcat.apache.org/download-80.cgi]

$ wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
$ sudo tar xzf apache-tomcat-8.0.47.tar.gz
$ sudo mv apache-tomcat-8.0.47 /usr/share/tomcat8

그리고 tomcat의 환경변수도 추가해 줍니다.

$ sudo vi /etc/profile

/etc/profile 파일을 열고 마지막 줄에 아래 두 줄을 추가하고 저장합니다.

export CATALINA_HOME=/usr/share/tomcat8
export PATH=$PATH:$CATALINA_HOME/bin

마찬가지로 source로 적용해 주고 CATALINA_HOME도 확인해 줍니다.

$ source /etc/profile
$ echo $CATALINA_HOME
/usr/share/tomcat8

이제 tomcat을 시작하고 기본 페이지에 접속하는지 확인해 봅시다.

$ sudo sh /usr/share/tomcat8/bin/startup.sh 
Using CATALINA_BASE:   /usr/share/tomcat8
Using CATALINA_HOME:   /usr/share/tomcat8
Using CATALINA_TMPDIR: /usr/share/tomcat8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar
Tomcat started.

tomcat의 기본 포트는 8080입니다.
브라우저를 열고 서버 IP의 8080포트로 접속해 봅니다.

tomcat을 쉽게 start, stop 시키기 위해 서비스에 등록해 봅시다. 

우선 init.d에 tomcat8을 만들고 스크립트를 작성합니다.

$ sudo vi /etc/init.d/tomcat8

CATALINA_HOME경로를 확인해 작성해 줍니다.

#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat8
# chkconfig: 234 20 80

JAVA_HOME=$JAVA_HOME
export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH

CATALINA_HOME=/usr/share/tomcat8

case $1 in

start)
sh $CATALINA_HOME/bin/startup.sh
;;

stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;

restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;

esac
exit 0

파일 저장후 아래와 같이 권한을 변경합니다.

$ sudo chmod +x /etc/init.d/tomcat8
$ sudo chmod 755 /etc/init.d/tomcat8

CentOS가 재시작되면 자동으로 tomcat이 실해되도록 chkconfig에도 추가하고 확인도 해봅니다.

$ sudo chkconfig --add tomcat8
$ sudo chkconfig --list tomcat8

tomcat 로그도 권한 설정을 해 줍니다.

chown은 현재 계정으로 추가합니다. sudo chown -R <접속계정>:<접속계정> /usr/share/tomcat8/logs

$ sudo chown -R ec2-user:ec2-user /usr/share/tomcat8/logs
$ sudo chmod -R u+rw /usr/share/tomcat8/logs

tomcat을 시작하기 전 JAVA_OPTS를 추가해 줍니다.

catalina.sh를 열고 아래와 같이 추가 합니다.

$ sudo vi /usr/share/tomcat8/bin/catalina.sh

주석이 끝나는 상단 부분에 아래와 같이 추가합니다.

JAVA_OPTS="-Xms600m -Xmx1024m -XX:MaxPermSize=200m"

이제 tomcat설치와 설정은 끝났고 service로 tomcat을 start또는 restart해 줍니다.

$ sudo service tomcat8 restart

tomcat 실행 확인은 아래 명령으로 확인할 수 있습니다.

$ ps -ef | grep java
$ sudo tail -f /usr/share/tomcat8/logs/catalina.out

이제 nGrinder Controller를 설치해 봅시다.

tomcat의 webapps 폴더로 이동 후 nGrinder Controller를 다운받습니다.

$ cd /usr/share/tomcat8/webapps/
$ sudo wget https://github.com/naver/ngrinder/releases/download/ngrinder-3.4.1-20170131/ngrinder-controller-3.4.1.war

tomcat 서버 ip와 port에 nGrinder Controller의 경로로 접속해 봅니다.

http://<서버 IP>:<서버 Port>//ngrinder-controller-3.4.1

nGrinder Controller의 기본 계정은 admin, 비번도 admin 입니다.

ngrinder의 로그 확인은 아래 경로와 명령으로 확인할 수 있습니다.

만약 ngrilder.log 파일 경로가 다르다면 find 명령으로 확인해 보세요.

$ sudo tail -f /root/.ngrinder/logs/ngrinder.log


이제 Agent를 설치해 보겠습니다.

만약 Agent를 다른 서버에 설치한 다면 JAVA 설치와 설정은 되어 있어야 합니다.

JAVA가 설치되어 있다면 설치된 Controller에서 Agent를 다운로드 합니다.


Agent는 대상 Controller를 바라봐야 하기 때문에 먼저 설치한 Controller에서 다운로드 받아야 합니다.

다운로드 경로 확인은 nGrinder-Controller >  admin > Download Agent에서 확인할 수 있습니다.

제 경로는 http://<서버 IP>:8080/ngrinder-controller-3.4.1/agent/download 입니다.

적당한 곳에 Agent를 관리할 폴더를 만들고 agent를 다운로드 합니다.

$ sudo mkdir /usr/share/ngrinder
$ cd /usr/share/ngrinder
$ sudo wget -O ngrinder-agent-3.4.1.tar http://<Controller 서버 내부 IP>:8080/ngrinder-controller-3.4.1/agent/download

ngrinder-agent-3.4.1.tar로 다운받았다면 압축을 풀어줍니다.

압축을 풀면 ngrinder-agent라고 폴더가 생성되며 해당 폴더로 이동합니다.

$ sudo tar xvf ngrinder-agent-3.4.1.tar
$ cd ngrinder-agent

__agent.conf 파일을 열어 대상 Controller 정보가 정확한지 확인해 줍니다.

$ sudo vim __agent.conf

agent.controller_host가 controller의 IP (내부 IP)인지 확인합니다.

common.start_mode=agent
agent.controller_host=10.100.12.187
agent.controller_port=16001
agent.region=NONE

이제 agent의 권한을 변경하고 실행해 줍니다.

변경해줄 파일은 run_agent.sh와 run_agent_bg.sh입니다. 

chown은 다음과 같은 형식입니다.

$ sudo chown <접속계정>:<접속계정> /usr/share/ngrinder/ngrinder-agent/run_agent.sh

$ sudo chown ec2-user:ec2-user /usr/share/ngrinder/ngrinder-agent/run_agent.sh
$ sudo chown ec2-user:ec2-user /usr/share/ngrinder/ngrinder-agent/run_agent_bg.sh

$ sudo chmod u+x /usr/share/ngrinder/ngrinder-agent/run_agent.sh
$ sudo chmod u+x /usr/share/ngrinder/ngrinder-agent/run_agent_bg.sh

run_agent.sh는 일반 실행이고 run_agent_bg.sh는 백그라운드 실행입니다.

부하 발생 시 agent의 로그를 실시간으로 확인하고 싶다면 run_agent.sh로 실행합니다.

sudo sh /usr/share/ngrinder/ngrinder-agent/run_agent.sh

정상적으로 실행이 되었는지 Controller에서 확인해 봅니다.

Controller > admin > Agent Management 에서 확인할 수 있습니다.

Agent 서버가 재시작 되어도 Agent가 자동으로 실행할 수 있도록 설정해 줍니다.

rc.local 파일에 실행 스크립트를 추가해 줍니다.

sudo vi /etc/rc.local

rc.local 파일의 마지막 줄에 아래 스크립트를 추가합니다.

# This script is executed at the end of each multiuser runlevel
/usr/share/ngrinder/ngrinder-agent/run_agent_bg.sh || exit 1
exit 0

여기까지 CentOS에 nGrinder 설치였습니다.

'Testing Automation > nGrinder' 카테고리의 다른 글

nGrinder에서 json 다루기  (0) 2018.10.24
nGrinder Controller 설정  (1) 2017.09.19
Ubuntu에 nGrinder 설치 하기 (v3.4)  (0) 2017.09.05
Comments