ChamomileGuides 3.0.3 Help

배치 설치 가이드

개요

다음은 배치실행 어플리케이션을 리눅스 서버에 설치하는 과정을 설명한다.

어플리케이션 계정 생성

어플리케이션을 구동하기 위한 리눅스 계정을 생성한다.

# 계정 생성 root@host> useradd chamomile -d /home/chamomile # 패스워드 입력 root@host> passwd chamomile # switch user chamomile@host> su - chamomile

ulimit 설정 변경

ulimit는 프로세스의 자원 한도를 설정하는 것으로 soft한도와 hard한도 두가지가 있습니다.

  • soft : 새로운 프로그램을 생성하면 기본으로 적용되는 한도

  • hard : 소프트한도에서 최대로 늘릴 수 있는 한도

어플리케이션 계정은 최적화를 위하여 해당 설정을 조정한다.

# 현재 chamomile계정의 설정 확인 chamomile@host> ulimit –a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31147 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 4096 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited

위의 경우 리소스 사용이 제약적이므로 배치 실행 시 오류 발생할 가능성이 크므로 아래와 같이 설정을 추가한다. (unlimited 또는 직접 건수 지정)

root@host> vim /etc/security/limits.conf … chamomile soft nproc unlimited chamomile hard nproc unlimited chamomile soft nofile unlimited chamomile hard nofile unlimited …

어플리케이션 설치

배치실행어플리케이션 바이너리 설치 (JDK등은 이미 설치되어있다고 가정하고 설명은 생략한다.)

# 압축파일 해제 chamomile@host> tar -zxvf chamomile-batch-0.0.1-dist.tar.gz # Symbolic Link 생성 chamomile@host> ln -s ./chamomile-batch-0.0.1 ./chamomile-batch # 어플리케이션 HOME 이동 chamomile@host> cd ./chamomile-batch # 기동스크립트 권한 변경 chamomile@host> chmod +x ./application.sh

라이선스 적용

라이선스 파일을 chamomile-batch-0.0.1/conf 폴더에 위치시킨다.

배치실행 데이터베이스 생성 (Mysql/MariaDB)

데이터베이스 별 DDL 스크립트는 배포 binary에 포함되어 있다.

2가지 주제영역의 테이블을 생성해야 한다.

  1. 캐모마일 배치실행 어플리케이션 관련 테이블

  2. 스프링배치 JobReposiory 관련 테이블

데이터베이스 및 계정 생성

Mysql(MariaDB)는 설치 되어있다고 가정한다.

# 데이터베이스 서버로 sql 디렉터리 파일 전송(DDL스크립트 및 SQL) chamomile@host> scp -rp ./sql root@[MYSQL서버]:./ # Mysql 데이터베이스 서버 접속(mysql 계정이 nologin상태인 경우 root로 접속) chamomile@host> ssh mysql@${mysql 설치서버} # Mysql 데이터베이스 및 사용자 생성 mysql@host> mysql -u root -p mysql Mysql> -- Creating Database CREATE DATABASE CHAMOMILE; -- Creating User INSERT INTO USER (HOST,USER,PASSWORD, SELECT_PRIV, INSERT_PRIV, UPDATE_PRIV, DELETE_PRIV, CREATE_PRIV, DROP_PRIV, INDEX_PRIV, ALTER_PRIV, SSL_CIPHER,X509_ISSUER,X509_SUBJECT,AUTHENTICATION_STRING) VALUES ('%', 'chamomile', PASSWORD('[패스워드]'),'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','','','',''); INSERT INTO DB (HOST, DB, USER, SELECT_PRIV, INSERT_PRIV, UPDATE_PRIV, DELETE_PRIV, CREATE_PRIV, DROP_PRIV, INDEX_PRIV, ALTER_PRIV) VALUES ('%', 'chamomile', 'chamomile', 'Y', 'Y', 'Y', 'Y','Y','Y','Y','Y'); flush privileges;

테이블 생성

# 신규 생성 데이터베이스 접속 mysql@host> mysql -u chamomile -p chamomile # 배치실행 어플리케이션 스키마 생성 Mysql> source ./sql/ddl/chamomile-batch.mysql.sql # 스프링 배치 스키마 생성 Mysql> source ./sql/spring-batch/spring-batch.mysql.sql # 초기 테스트 데이터 적재 Mysql> source ./sql/data/chamomile-batch.data.sql Mysql> source ./sql/test/emp.mysq.sql

배치실행 어플리케이션 설정

데이터베이스 접속정보 설정

chamomile@host> vim ./conf/application.properties … # 기본 언어셋 설정 (한국어:ko, 영어:en 디폴드값은 ko) defaultLocale=ko # 데이터베이스 아이디 설정(오라클:ORACLE, MariaDB/MySQL: MYSQL, SQLServer: MSSQL, 티베로: TIBERO) databaseId=MYSQL # OLTP connection pool dataSource.oltp.driver=com.mysql.jdbc.Driver dataSource.oltp.url=jdbc:mysql://[데이터베이스서버]:3306/chamomile dataSource.oltp.username=[사용자] dataSource.oltp.password=ENC([패스워드PBE]) dataSource.oltp.initialSize=5 dataSource.oltp.maxActive=10 dataSource.oltp.validationQuery=select 1 from dual # OLAP connection pool dataSource.olap.driver=com.mysql.jdbc.Driver dataSource.olap.url=jdbc:mysql://10.131.7.140:3306/chamomile dataSource.olap.username=[사용자] dataSource.olap.password=ENC(([패스워드PBE]) dataSource.olap.initialSize=5 dataSource.olap.maxActive=10 dataSource.olap.validationQuery=select 1 from dual # BATCH connection pool dataSource.batch.driver=com.mysql.jdbc.Driver dataSource.batch.url=jdbc:mysql://[데이터베이스서버]:3306/chamomile dataSource.batch.username=[사용자] dataSource.batch.password=ENC([패스워드PBE]) dataSource.batch.initialSize=2 dataSource.batch.maxActive=5 dataSource.batch.validationQuery=select 1 from dual …

관리자 웹콘솔 포트정보 변경

관리자 웹콘솔의 접속 포트 변경시 아래의 설정파일 변경 후 재기동한다.(기본 6100번 포트로 설정)

chamomile@host> vim ./conf/application.xml … <webServer id="application" port="6100"> <ssl> <keyStorePath>conf/ssl/keystore</keyStorePath> <keyStoreType>pkcs12</keyStoreType> <keyStorePass>abcd1234</keyStorePass> </ssl> <context path=""> <resourceBase>webapp/application</resourceBase> <descriptor>webapp/application/WEB-INF/web.xml</descriptor> </context> </webServer> …

관리자 웹콘솔 SSL 적용

보안상의 문제로 HTTPS로 설정해야되는 경우 아래의 설정정보에 인증서 정보를 입력한다.

chamomile@host> vim ./conf/application.xml … <webServer id="application" port="6100"> <ssl> <keyStorePath>conf/ssl/keystore</keyStorePath> <keyStoreType>pkcs12</keyStoreType> <keyStorePass>abcd1234</keyStorePass> </ssl> …

배치실행 어플리케이션 실행

어플리케이션 기동

chamomile\@host\> ./application.sh start

어플리케이션 확인

chamomile@host> ./application.sh status Application Status chamomi+ 16397 1 30 17:41 pts/1 Sl 0:36 java -server -Djava.net.preferIPv4Stack=true -Djava.security.egd=/dev/./urandom -Dlog4j.configuration=file:conf/log4j.xml -Dlog4jdbc.drivers=com.tmax.tibero.jdbc.TbDriver -classpath ./*:./lib/* net.lotte.chamomile.batch.Application

어플리케이션 로그 확인

chamomile@host> ./application.sh log [2018-07-31 17:41:57.474][INFO ](ApplicationContainer.java:115)- _______ _____ __ _______ __ _________ ____ / ___/ // / _ | / |/ / __ \/ |/ / _/ / / __/ / /__/ _ / __ |/ /|_/ / /_/ / /|_/ // // /__/ _/ \___/_//_/_/ |_/_/ /_/\____/_/ /_/___/____/___/ [2018-07-31 17:42:06.699][INFO ](FrameworkServlet.java:489)- [2018-07-31 17:42:06.712][INFO ](AbstractApplicationContext.java:583)-Refreshing W [2018-07-31 17:42:06.739][INFO ](XmlBeanDefinitionReader.java:317)-Loading XML bea [2018-07-31 17:42:07.063][INFO ](XmlBeanDefinitionReader.java:317)-Loading XML bea

어플리케이션 종료 (Graceful)

기본적으로 shutdown 은 graceful로 처리된다. (배치작업이 있을 경우 종료까지 대기함)

chamomile\@host\> ./application.sh stop

어플리케이션 강제종료

chamomile\@host\> ./application.sh status chamomile\@host\> kill -9 [프로세스PID]

설치 후 점검

웹콘솔 접속 여부 확인

설치서버의 웹콘솔 접속의 정상여부를 확인한다.

[https://[설치서버호스트]:설정포트(https://설치서버호스트:설정포트)

20231123142819.png

로그인 화면이 정상적으로 열린다면 로그인한다.

Default 사용자/패스워드는 ADMIN / 1111 이다.

배치프로그램 실행 정상 확인(Build-In)

메뉴[배치워크플로우 관리] 로 이동하여 샘플 배치프로그램 중 BUILD-IN 으로 구성된 배치프로그램이 정상적으로 작동하는지 여부를 확인한다.

해당 샘플 배치프로그램을 선택하여 상세화면으로 진입한다.

상세화면에서 상단 [시작][중지] 버튼을 클릭하여 배치프로그램의 실행/중지를 테스트 한다.

Last modified: 19 11월 2024