DevJong12

nGrinder설치 본문

Server/nGrinder

nGrinder설치

Jong12 2022. 10. 21. 18:51
728x90

개요

프로젝트의 기능 개발은 완료되었다 보니 부하테스트를 진행해보고자 nGrinder를 설치해보고자 하였다. 이포스트는 nGrinder의 Controller와 Agent의 설치과정을 작성하였다.


nGrinder란?

어플리케이션의 부하 테스트 용도로 많이 사용되는 툴중에 하나로 nGrinder는 Controller와 Agent로 구성이 되어 있으며 두개를 같은 서버에 설치해도 되고 서로 다른 서버에 설치를 해도 된다.

※ 부하테스트이다 보니 추천하는건 서로 다른 서버에 설치를 하는 것을 추천하며 Agent는 어플리케이션이 존재하는 서버에 설치해야 한다.

※ 공식문서에서 3GB의 Free Memory라는 문구를 봤던 것 같은데 다시 찾으려니 못찾겠다.. 해당 문구를 보고 새 Controller서버를 분할 하였고, 메모리를 4GB서버로 설정하였다.


작업 리스트

작업은 크게 아래의 리스트로 이뤄진다. 현재 서버를 받거나 설치를 하지 않은 경우부터 나열하였다.
필자는 NCP를 활용하였으며, OS는 Ubuntu로 진행하였다.
  1. 서버 설정 or 설치  및 OS Update(이미 받은 경우 제외)
  2. 방화벽 설정
  3. JDK설치
  4. Docker 설치
  5. SVN설치
  6. Controller 설치
  7. Agent설치

작업내용

서버 설정 or 설치  및 OS Update(이미 받은 경우 제외)

참고했던 Reference에서 FreeMemory의 경우 3GB권장사양이라는 글을 봤었다.

권장사양의 말에 따라 아래의 사양을 선택하였으며, 현재 포스트를 작성하는 22년 10월 기준 Ubuntu의 유료모델 최저사양이다.

이후 Ubuntu의 Update를 다음 명령어를 사용해 진행하였다

root:~# sudo apt-get update
Hit:1 <http://security.ubuntu.com/ubuntu> bionic-security InRelease
Hit:2 <http://kr.archive.ubuntu.com/ubuntu> bionic InRelease
Get:3 <http://kr.archive.ubuntu.com/ubuntu> bionic-updates InRelease [88.7 kB]
Get:4 <http://kr.archive.ubuntu.com/ubuntu> bionic-backports InRelease [83.3 kB]
Fetched 172 kB in 2s (87.3 kB/s)
Reading package lists... Done

방화벽 설정

필자의 경우 NCP를 활용하니 NCP를 기준으로만 기록하도록 하겠다.

 

포트포워딩작업이 필요한 것이며, NCPACG라는 명칭으로 되어있다.

 

1. nCloud의 ACG로 이동하여 적용중인 서버의 ACG항목을 설정을 누른다.

 

2. 80번 포트 추가

 

3. nGrinder에서 사용하는 포트 추가.

 


JDK설치

JDK의 경우 nGrinder Wiki에서 JDK지원에 대한 문구를 알 수 있다.

 

 

To install nGrinder controller and agent, you need Oracle JDK 1.6~ or OpenJDK 1.7~.

실제 위키에 작성이 되어 있는 문구로, 필자의 경우에는 1.8을 설치하여 진행하였다.

Reference : https://github.com/naver/ngrinder/wiki/Installation-Guide

 

GitHub - naver/ngrinder: enterprise level performance testing solution

enterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.

github.com

//JDK설치
root:sudo apt install openjdk-8-jdk

//Version 확인
root:~# java -version
openjdk version "1.8.0_342"
OpenJDK Runtime Environment (build 1.8.0_342-8u342-b07-0ubuntu1~18.04-b07)
OpenJDK 64-Bit Server VM (build 25.342-b07, mixed mode)

//설치 위치 확인
root:~# which javac
/usr/bin/javac
root@flab-nooblol-test:~# readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac

//JAVA_HOME 설정
root:vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/bin/
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH

//변경점 적용 및 확인
root:source /etc/profile
root:~# echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64/bin/

Vim을 통한 profile의 수정의 경우에는 최하단에 export를 직접 기록해주었다.


Docker 설치

Docker의 경우에는 Docker Install Guide를 그대로 따라하였다.

Reference : https://docs.docker.com/engine/install/ubuntu/

 

Install Docker Engine on Ubuntu

 

docs.docker.com

 

// 1. Uninstall Old Versions
root:sudo apt-get remove docker docker-engine docker.io containerd runc

// 2. SetUp Repository
root:sudo apt-get install \\
    ca-certificates \\
    curl \\
    gnupg \\
    lsb-release

// 3. Add Docker’s official GPG key
root:sudo mkdir -p /etc/apt/keyrings
root:curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

// 4. Install Docker Engine
root:sudo apt-get update
root:sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

SVN설치

로컬에서 돌릴때 SVN과 관련해서 계속 오류가 발생했었다. nGrinder에 SVN이 내장이 되어있다곤 하는데...혹시 몰라 설치를 같이 진행하였다.

root:sudo apt-get install subversion

Controller 설치 (Docker실행)

최초에 nGridne의 jar파일을 받아 실행하는 방식으로 해서 오류가 났었기에 깊은 생각을 하고 싶지 않아서 Docker를 활용하는 방향으로 변경하였다.

 

Port의 경우에는 Tomcat 8080포트를 제외하고는 기본포트를 활용하였다.

docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller -p 8080:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller:{version}

Docker를 사용해서 컨테이너를 실행

 

같은 명령어로 실행을 하였다면 외부포트는 80번으로 잡히게 된다.

크롬에서 http:IP/login 으로 접속을 해보자

 

초기 관리자 ID / PW는 둘다 admin으로 입력하면 된다


Agent설치

관리자로 접속을 하게 되면 아래사진처럼 Agent Management 항목에서 Download링크를 확인이 가능하다.

직접 다운받아서 FTP로 전달해줘도 괜찮긴 한데 굳이 2번 작업하기 귀찮았다.

1번 과정에서 Ip와 Port는 본인한테 맞게 작업하면 된다. 80번이면 굳이 ..안적어도 상관없다.

아래와 같은 과정으로 이뤄지면 정상적으로 설치가 진행된 것 이다.

//1. Agent설치
root:wget http://{Public IP}:Port/agent/download/ngrinder-agent-{version}.tar 

//2. 압축 해제
root:tar -xvf ngrinder-agent-{version}.tar

//3. Agent설정
root:cd ./nGrinder-agent
root:vi __agent.conf

common.start_mode=agent
agent.controller_host={Controller Ip}
agent.controller_post=16001
agent.region=NONE

//4. 실행
root:./run_agent.sh
2022-10-16 23:46:59,784 INFO  agent config: NGRINDER_AGENT_HOME : /root/.ngrinder_agent
2022-10-16 23:47:00,002 INFO  starter: ***************************************************
2022-10-16 23:47:00,003 INFO  starter:    Start nGrinder Agent ...
2022-10-16 23:47:00,003 INFO  starter: ***************************************************
2022-10-16 23:47:00,003 INFO  starter: JVM server mode is disabled.
2022-10-16 23:47:00,024 INFO  starter: connecting to controller {IP}:{Port}
2022-10-16 23:47:00,046 INFO  agent controller daemon: The agent controller daemon is started.
2022-10-16 23:47:00,096 INFO  agent controller: Connected to agent controller server at /{IP}:{Port}
2022-10-16 23:47:00,099 INFO  agent controller: Waiting for agent controller server signal

 


오류사항

필자의 경우 Agent를 설치하면서 오류가 있었다 검색을 해보니 멀웨이와 관련된? 오류들이라고 하였는데 libudev~~가 출력이 되었었다.

필자의 경우 아래 링크로 해결을 하였다.

https://devjong12.tistory.com/83

 

Linux libudev 오류, 삭제방법

개요 서버에서 테스트를 계속 꾸준히 했던게 아니다 보니, 바이러스에 감염된 줄도 몰랐다. nGrinder Agent를 실행하려고 보니까 실행이 안되면서 알게 되었다. 뭐 당장 급한건 아니기 때문에 일단 A

devjong12.tistory.com

 

728x90

'Server > nGrinder' 카테고리의 다른 글

SVN를 활용해 nGrinder 프로젝트 IDE연동  (0) 2022.10.28
Comments