2.3.1. 모니터링 도구 Backend
2.3.1.1. requirements
- JDK 8 버전 이상 설치
- 9990 포트 사용 가능
- Apache Maven 3.3.1 이상 설치
2.3.1.2. 환경설정 수정 및 배포 스크립트 실행
디렉토리 파일 구성
- configprops.json : 나이파이 관련 ip, 포트 등을 설정하는 파일
- deploy.sh : 전체 실행 명령어가 담긴 배포 스크립트 파일
- logs : 로그파일을 포함하는 디렉토리
- nifi-monitor-spring-boot.jar : 소스파일을 패키징한 실행 파일
- nifi_process_id.txt : 현재 서버에서 실행되는 나이파이의 프로세스 id를 저장하는 파일
- src : 나이파이 모니터링 Back-End 소스코드
- target : 나이파이 모니터링 Back-End 실행 관련 패키지 파일
NiFi 연동 설정
vi configprops.json
- config.nifiRootFlowId : 모니터링 대상 나이파이의 최상위 프로세스 그룹 ID
- config.nifiPort : 모니터링 대상 나이파이의 포트
- config.runningOS : 모니터링 백엔드 서비스가 작동할 OS(MacOS, WindowsOS, CentOS, Ubuntu)
- config.nifiURL : 모니터링 대상 나이파이 URL(포트 포함)
- config.nifiRegistryURL : 모니터링 대상 나이파이 레지스트리 URL(포트 포함)
배포 스크립트 파일
#!/bin/bash
dt=$(date '+%Y%m%d')
dd=$(date '+%d')
yymm=$(date '+%Y%m')
REPOSITORY=/home/cbnu/deploy/monitoring
PROJECT_NAME=nifi-monitoring-spring-boot
SERVICE_NAME=nifi-monitor-spring-boot
cd $REPOSITORY/$PROJECT_NAME/
echo "> Start Buiding the Project"
mvn clean install
echo "> crud 디렉토리로 이동"
cd $REPOSITORY/$PROJECT_NAME
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/target/*.jar $REPOSITORY/$PROJECT_NAME/
cp $REPOSITORY/$PROJECT_NAME/configprops.json $REPOSITORY/$PROJECT_NAME/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f ${SERVICE_NAME}*.jar)
echo "> 현재 구동중인 애플리케이션 pid: $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then
echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -15 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
echo "> 새 애플리케이션 배포"
JAR_NAME=$(ls -tr $REPOSITORY/$PROJECT_NAME | grep *.jar | tail –n 1)
echo "> JAR Name: $JAR_NAME"
echo "> Absolute Path: $REPOSITORY/$PROJECT_NAME"
nohup java -jar -Dapp.config_file_path=$REPOSITORY/$PROJECT_NAME $REPOSITORY/$PROJECT_NAME/"$JAR_NAME" > $REPOSITORY/$PROJECT_NAME/logs/${dt}_${PROJECT_NAME}.log 2>&1 &- 소스파일을 Maven을 이용하여 빌드한 뒤 실행하는 과정
- 프로세스가 실행 중이면 프로세스를 종료한 뒤 실행
- 로그파일은 logs 디렉토리에 실행한 “날짜_nifi-monitoring-spring-boot.log” 이름으로 생성
- 다시 배포 스크립트 파일이 실행될 때까지 생성된 로그파일에 로그가 기록되며, 배포스크립트 파일을 다시 실행할 시 새로운 로그파일이 생성됨
- 다른 디렉토리위치 혹은 다른 서버에서 다운로드 및 빌드 시 “REPOSITORY” 변수를 해당 디렉토리 위치에 맞게 변경해야 함
- 나이파이 정보 변경 후 실행 시 configprops.json 파일 변경 후 deploy.sh 파일 실행
- 실행 명령어
(sudo) ./deploy.sh
- deploy.sh로 실행해도 동작하지만, 오픈스택의 경우 나이파이 실행 시 sudo 권한이 필요하기 때문에 deploy.sh도 sudo 권한으로 실행함