J-Jobs

Guides -J-Jobs Orchestrator v2.4 운영자 가이드

페이지 개요

J-Jobs Orchestrator 운영자 가이드

최종 작성일: 2019년 7월 24일

기준 버전 : J-Jobs v2.4

Copyright ⓒ LG CNS LG CNS의 사전 승인 없이 본 내용의 전부 또는 일부에 대한 복사, 배포 사용을 금합니다.

제품 구성 및 고객 지원

제품 구성

J-Jobs의 설치 및 운영에 필요한 소프트웨어는 Zip 파일 형태로 제공되며, 설치 파일의 구성은 다음과 같다.

소프트웨어

  • Windows/Linux 용 J-Jobs 설치 파일
    • Windows용 jjobs_windows_installer_x64_2.4.x.exe 약 280M bytes
    • linux 용 jjobs_linux_installer_x64_2.4.x.tar.gz 약 290M bytes
  • J-Jobs 실행 시 필요한 소프트웨어 (설치 파일에 포함)
    • META DBMS - PostgreSQL 10.3
    • JVM - Open JDK 1.8
    • WAS - Tomcat 8

문서(가이드)

  • J-Jobs 설치 가이드
    • J-Jobs Manager, J-Jobs Server, J-Jobs Agent를 설치하는 방법에 대한 가이드
  • J-Jobs 운영자 가이드
    • J-Jobs 시스템 관리/운영 방법에 대한 가이드
  • J-Jobs 사용자 가이드
    • 일반 사용자의 J-Jobs Manager의 사용 방법에 대한 가이드
    • 배치 작업을 위한 Job 등록, 스케줄 등록, 모니터링 방법 등을 기술
  • HOW TO 가이드
    • J-Jobs Orchestrator를 이용한 CI/CD 활용 방법 제시
    • Cloud(AWS, GCP, Azure) 및 Docket 템플릿 사용 방법 가이드

고객 지원

J-Jobs에 대한 구매 및 기술 지원은 다음의 연락처로 문의한다.

J-Jobs 소개

개요

J-Jobs Orchestrator는 J-Jobs 제품군 중 하나로써, 다양한 클라우드 플랫폼 및 Docker 등의 Hybrid Cloud 환경으로 구성된 시스템의 운영 관리에 특화된 기능을 제공하는 솔루션이다. J-Jobs Orchestrator를 이용하여 반복적인 시스템 작업을 자동화할 수 있고, CI/CD를 위한 목적으로 사용할 수 있다.

도입효과

  • 안정성

    • [ ] OS에서 제공하는 기본 스케줄러인 Unix계열의 Cron이나 Windows Task Scheduler 사용시 권한 관리 및 통제가 어려워 보안 이슈가 발생 할 가능성이 있음
    • [ ] 관리 시스템이 늘어날 수록 휴먼 에러 발생 가능성이 높아짐
    • [x] 다양한 OS에서 운영되는 배치스케줄을 통합 관리하여 운영 안정성 확보
  • 운영 편의성

    • [ ] 전사 배치작업을 통합하여 관리 할 수 없다면 배치관리의 투명성 확보가 어려움
    • [ ] 문제 발생시 빠른 대응이 어려움
    • [ ] 통합 스케줄러를 사용하지 않았을 경우 배치작업을 각각의 서버에 접속하여 등록하고 확인해야 함
    • [x] 직관적이고 통일된 인터페이스로 배치 작업, 배치 스케줄 관리 및 모니터링에 대한 편의성을 제공
  • 비용 효율성

    • [ ] 문제 발생시 감지 및 대응이 늦어 서비스 지연발생, 이에 따른 조직의 신뢰도 저하
    • [ ] 배치서버나 배치작업&스케줄 등의 관리 대상 증가에 따른 관리 비용 증가
    • [x] IT 운영 팀의 배치 관리와 모니터링에 소모되는 노력과 시간을 단축시켜 IT 비용 절감

특징

  • 다양한 Cloud 플랫폼 지원
    • AWS, Azure, GCP 등 주요 Cloud 플랫폼 연계
    • Docker 기반의 컨테이너 연계
  • 업무 요건 별 최적화된 가상화 시나리오 구성 가능
  • CI/CD를 위한 다양한 기능 지원
    • 시각화 편집도구를 이용한 CI/CD 작업 흐름(Pipeline) 관리
    • On-Premise, Cloud(AWS, Azure, GCP), 컨테이너(Docker) 환경으로 배포 가능
  • 반복적인 시스템 작업 자동화
    • 정기적인 시스템 반영 작업들을 자동화(PM, IPL 등)
    • 다수의 서버 작업을 병렬로 동시 처리하여 시간을 단축하고 서비스 안정성 및 품질 확보
    • 실행/제어/모니터링, 병렬처리, 수동 승인, 스케줄, 알림(E-mail, SMS 등) 기능 제공
  • 편리한 통합 배치 스케줄 관리
    • 여러 배치서버의 배치작업을 하나의 관리 도구를 이용하여 통합 관리 가능
    • 동일한 사용자 인터페이스를 통한 배치작업 등록 및 스케줄 등록
  • 멀티플랫폼 지원
    • Unix계열, Linux계열 및 Windows 기반의 플랫폼을 지원하며 이기종 플랫폼 통합 관리가 가능함
    • 다양한 종류의 OS에 따른 배치작업 스케줄을 통합하여 관리 할 수 있음

Architecture

J-Jobs의 아키텍처 구조를 설명한다.

구성요소

J-Jobs는 Job 편집 및 실행과 스케줄링 그리고 각 종 모니터링 화면을 제공하는 Web Application 형태의 Manager와 Manager로부터 Job과 스케줄 실행을 의뢰받아 이를 각 Agent에서 실행할 수 있도록 전달하는 Server, 그리고 실제 Job을 실행하는 Agent까지 총 3-tier로 구성된다. Manager와 Server는 REST API를 통해 Job 실행을 의뢰하고, 결과를 전달한다. Agent는 TCP 방식으로 Server와 통신하며 Job 실행을 전달받는다. Manager, Server는 WAS 상에서 기동되며, Agent는 JVM 프로세스로 동작한다.

J-Jobs Manager

  • Job 편집부터 실행, 스케줄링, 실행구역 설정 등의 사용자 화면을 제공
  • 현재 실행 중인 Job 상태 및 수행 결과에 대한 직관적 모니터링 기능 제공
  • Job 실행 및 중지, 재처리 기능
  • 사용자 및 권한 관리 등

J-Jobs Server

  • 이벤트 기반의 Job 스케줄링 기능 담당
  • Job 부하분산 처리
    • Agent의 부하 상태를 동적으로 고려하여 신규 Job 실행 노드를 결정하는 방식
    • 특정 Agent의 과부하 발생 시, 다른 Agent로 분산 시켜 거래 안정성 보장
  • Job 처리 가용성 제공
    • 접속된 Agent들의 상태를 체크하여 비정상 또는 비가용 Agent 대신 다른 Agent에서 처리

J-Jobs Agent

  • Agent는 Job 처리를 의뢰받아 내부적으로 Runtime 프로세스를 구동하여 실제 배치 작업 실행
  • Agent는 File Queue를 통해 Runtime 프로세스로 Job 실행 요청 전달

용어

J-Jobs에서 주로 사용하는 용어는 다음과 같다.

용어의미
JobJ-Jobs의 최소 실행 단위이자, Process 단위로 기동되어 처리하는 작업 단위
- "Job은 여러 Step으로 구성되며 Step들간의 실행 순서, 분기, 병렬 등의 흐름을 정의한다."
StepJob의 하위 개념으로 실제 수행되는 프로그램 또는 Task 단위
- "Step에서는 다양한 유형의 template 중 하나를 선택하여 하나의 작업을 수행한다."
TemplateStep을 생성할 때 기본이 되며, 기본적으로 Java, Python, R, Command 호출 등의 template 제공
Job InstanceJob 실행의 논리적 단위이며, Job을 실행할 때 하나의 Job Instance가 생성
Job ExecutionJob을 실행할 때마다 생성되는 단위이며 Job을 재실행할 경우 동일한 Job Instance 내에서 새로운 Job Execution이 생성
Job ParameterJob 실행 시 전달되는 파라미터이며, key/value 문자열 형태로 전달
Schedule실행 가능한 Job에 대해 '특정 일시' 혹은 '반복 일정'으로 Job 실행 예약, Timezone 및 Summer Time, 유효 기간/유효 시간 옵션 제공

J-Jobs 시스템 관리

개요

J-Jobs는 시스템 관리를 담당하는 시스템 관리자(root)와 배치 작업과 관련된 운영 업무를 담당하는 관리자(Administrator 역할을 부여받은 사용자)로 구분하고 있으며, J-Jobs Manager는 시스템 관리자(root)와 관리자(Administrator) 관점으로 각각 다른 메뉴를 제공하고 있다.

설치/제거

초기화

Manager 설정 값을 기본 값으로 초기화하여 초기 상태로 되돌릴 수 있다. 초기화 마법사의 기능 일부와 동일하다.

  • 매니저 설정 보기 : Manager에서 사용 중인 설정 값을 확인한다.
  • 매니저 설정 초기화 : Manager 설정 값을 초기 상태로 복구한다.(사용자가 수정한 설정 값을 초기값으로 변경)
  • Refresh Flag 보기 : J-Jobs 내부적으로 사용하는 Flag 값을 확인한다.
  • Refresh Flag 초기화 : 필요한 Flag 레코드를 REFRESH_FLAG 테이블에 추가한다.
  • 시퀀스 초기화 : Refresh Flag의 값에 사용하는 시퀀스를 0으로 초기화한다.
  • 역할 초기화 : 사용자에게 부여하는 역할(ADMINISTRATOR, USER, GUEST)을 추가한다.
  • API 초기화 : J-Jobs Manager에서 사용하는 API를 역할 별로 추가한다.
  • 메뉴 초기화 : 역할 별로 메뉴 구성을 기본 설정으로 초기화한다.
  • Template 초기화 : J-Jobs에서 기본으로 제공하는 Template을 추가/초기화한다.
  • 타임존 초기화 : J-Jobs에서 기본으로 제공하는 대표 도시의 타임존을 추가/초기화한다.
  • 알림 초기화 : 알림 관련 설정을 초기화하며, 기존에 추가한 전역, Job, 스케줄에 대한 알림이 모두 삭제된다.
  • Step 정보 갱신 : J-Jobs 이전 버전의 Job을 마이그레이션 하기 위해 사용한다.
  • Job 속성 초기화 : J-Jobs 이전 버전의 Job을 마이그레이션 하기 위해 사용한다.
  • 폴더 초기화 : J-Jobs 이전 버전의 Job(폴더가 없는)을 마이그레이션 하기 위해 사용한다.
  • 이력 관리 대상 테이블 초기화 : 이력 관리 대상 테이블 목록을 초기화 한다

라이선스

J-Jobs를 사용하기 위한 라이선스를 업로드 및 다운로드 할 수 있다. 라이선스 관리는 시스템 관리자(root) 외에 운영 관리자(Administrator) 에서도 [라이선스] 메뉴로 관리가 가능하다.

  • 라이선스 업로드 : 라이선스 파일(*.dat)을 업로드하여 정보를 확인 할 수 있다.
  • 라이선스 다운로드 : 기등록된 라이선스 정보를 라이선스 파일 형태(*.dat)로 다운로드한다.

이력 데이터 관리

이력 관리를 하고자 하는 테이블을 대상으로 특정 기간의 데이터를 수작업으로 백업 또는 삭제를 할 수 있다.

  • 이력 테이블 목록 보기 : 이력 데이터를 관리하고자 하는 대상 테이블 목록을 확인하는 팝업. 관리대상은 운영 관리자(Administrator)의 [이력 테이블] 메뉴에서 설정할 수 있다.
  • 이력 데이터 초기화 : 이력 데이터 관리 타입(삭제/백업&삭제)과 기간을 기초로 하여 데이터를 백업 또는 삭제한다.

이관 데이터 관리

J-Jobs에서 정의한 이관을 목적으로 관리되는 테이블에 한하여 전체 데이터를 다운로드, 업로드 기능을 제공하며, 시스템 전환시에 도움이 되는 기능이다.

  • 이관 목록 보기 : J-Jobs에서 정의한 이관 대상 테이블 목록을 보여준다
  • 다운로드 : 이관 대상 테이블의 전체 데이터를 다운로드한다.
  • 초기화&업로드 : 업로드하는 대상 테이블을 전체 삭제 후 데이터를 업로드한다.
  • 업로드 : 기존 데이터를 유지하면서 데이터를 업로드한다.

테이블 관리

J-Jobs에서 사용하는 메타테이블에 대한 데이터 삭제, 테이블 삭제 또는 생성 등의 관리를 할 수 있다.

  • 모든 테이블 삭제 : 메타 테이블 전체를 삭제(drop)한다. 테이블이 삭제되므로 자동 로그아웃이 된다.

  • 테이블 보기 : 메타 테이블 전체 리스트를 조회한다. 상태를 확인 하고 재생성을 할 수 있다.

  • 이관 테이블 선택 / 이력 테이블 선택 / 전체 테이블 선택 : 조건에 맞는 테이블에 대해서 체크박스에 선택이 된다.

  • 선택된 테이블 데이터 삭제 : 테이블은 유지한 되며 데이터만 전체 삭제(delete)한다.

환경설정

일반

Manager 에서 사용되는 일반 환경에 대해서 설정할 수 있다.

항목설명기본 설정
기본 언어 설정Manager의 기본 언어 설정한국어 (Korean)
타임존Manager의 타임존 설정Asia/Seoul
시간표시 형식Manager에서 날짜 및 시간 표시 형식YYYY-MM-DD HH:mm:ss
기본 Job 로그레벨Job 생성 시, Job 로그 레벨 기본값info
기본 Step 로그레벨Step의 로그 레벨 기본값info
기본 로그 모아보기Job 로그에서 Step 로그를 모아보는 기본값사용 안 함
서버 설명설정한 서버의 설명을 초기 로그인 화면과 상단에 표시DevelopmentServer / 사용 안 함
서버 설명 색설정한 색으로 서버 설명 표시Blue

Feature 설정

  • Job 버전관리 Feature : Job의 버전 관리를 사용할 지 여부를 선택한다. 사용할 경우, 보관 건수 제한과 관리할 File의 종류를 선택한다.
  • DevOn Enterprise Feature : DevOn Enterprise Framework 기능과 연계된 기능을 사용할지에 대한 여부를 선택한다.
  • Cloud Feature : 클라우드 기능을 사용할 지 여부를 선택한다. 사용할 경우 AWS, Azure, GCP 등의 클라우드 플랫폼과 연계된 J-Jobs 기능 및 메뉴가 활성화된다.
  • 이력 데이터 관리 Feature : 이력 관리 대상 테이블에 대해서 지정된 처리 방식, 경로, 보유 기간 기준으로 설정된 수행 시간에 자동으로 데이터를 백업 또는 삭제를 수행한다.

진단

J-Jobs는 Request ID를 기준으로 Job의 실행과 결과를 추적할 수 있다.

  • 실행 상세 정보 : 해당 ID에 관련된 모든 메타 데이터를 수집하여 Request ID와 연관된 Instance ID, Execution ID 등을 Json 형식으로 확인할 수 있다.
  • Download : 필요한 경우 파일로 다운로드 할 수 있다.

Cache 목록

J-Jobs는 Manager와 Server에서 좀 더 빠른 메타 데이터 조회를 위해 일부 데이터를 캐싱하고 있다. 이러한 캐싱된 데이터의 목록을 확인하고 관리할 수 있다.

  • API 캐시 삭제 : 현재 캐싱된 API 데이터를 삭제하고, 이후 API 목록이 조회될 때 DB로부터 데이터를 다시 캐싱하도록 한다.

역할

사용자(User)에게 할당할 수 있는 역할을 추가하거나 수정, 삭제 할 수 있다. 기본적으로 ADMINISTRATOR, USER, GUEST 역할이 제공되며, 그 밖의 역할을 추가하여 사용할 수 있다. J-Jobs의 모든 기능은 API로 제공되므로, 역할별로 사용 가능한 API를 매핑함으로써 기능에 대한 사용을 제어할 수 있다.

해당 역할에 추가되어 있는 허용 가능한 API 목록을 보여준다.

다음과 같이 새로운 역할을 추가할 수 있다.

  • 역할 ID : 고유한 역할 ID 값
  • 역할 이름 : 역할에 대한 이름
  • 기본 여부 : 사용자 추가 시, 기본적으로 해당 역할로 할당할지에 대한 여부
  • 다른 역할에서 복사 : 기존에 추가되어 있는 역할로부터 복사하여 역할 생성, 기존에 매핑된 API 목록도 함께 복사된다.

역할에 전체 API 목록 중에 특정 API를 추가하거나 삭제하여 사용자가 접근할 수 있는 기능을 관리할 수 있다.

API

J-Jobs에서 사용자가 사용할 수 있는 모든 기능은 API로 제공되며, 이러한 API 목록을 관리하는 화면이다. API 목록은 J-Jobs가 제공하는 전체 API를 나타내며, 새로운 API를 추가하거나, 모든 사용자가 사용하지 않는 API의 경우에는 삭제할 수 있다.

신규 API는 다음과 같이 등록할 수 있다.

  • API ID : API 고유 ID
  • 메소드 : REST API의 method 중 선택(GET, POST, PUT, DELETE 등)
  • REST URL 패턴 : /api/v1/ 으로 시작하는 API URL
  • 설명 : API에 대한 설명
  • 사용 여부 : 해당 API에 대한 사용 여부, 체크가 되어 있지 않을 경우 등록만 되고 사용할 수 없다.
  • 전체 허용 여부 : 역할에 관계 없이 모든 사용자에 대해 해당 API를 사용할 수 있도록 허용한다.

메뉴

사용자 역할 별로 메뉴를 다르게 구성할 수 있다. 기본 역할에 대한 초기 메뉴 구성은 설치/제거 > 초기화 > 메뉴 초기화을 통해 할 수 있다.

왼쪽 상단에 역할을 선택하고 1 Level 폴더 또는 메뉴를 추가 한다. 2 Level 부터는 상위 폴더를 선택 후 우측 [메뉴 상세 정보]에서 [하위 폴더 추가] 또는 [하위 메뉴 추가]를 통해 생성 할 수 있다.

  • 역할 : 폴더 또는 메뉴가 할당된 Role
  • 종류 : FOLDER 또는 NODE
  • ID : 전체적으로 고유한 ID 로 자동 부여된다.
  • 상위 ID : NODE 종류에만 있으며, 상위 폴더ID 가 자동 부여된다.
  • 메뉴 명 : 폴더 명 또는 메뉴 명을 J-Jobs 다국어 설정파일에 명시된 코드로 입력하면 아래에 실제 Text가 보여진다.
  • Icon : Font Awesome의 icon class 명을 이용하여 등록하면 좌측에 모양이 보여진다.
  • 메뉴 순서 : 숫자값을 이용하여 오름차순으로 메뉴 순서를 조정할 수 있다.
  • 메뉴 State Id : NODE 종류에만 있으며, J-Jobs 내부 적으로 사용되는 reference 정보이다.
  • 메뉴 UI sref : NODE 종류에만 있으며, J-Jobs 내부 적으로 사용되는 reference 정보이다.

메뉴를 추가하기 위해서 아래와 같이 J-Jobs에서 제공하는 전체 메뉴 목록 중 하나를 선택하여 추가해야 한다.

1 Level 폴더나 메뉴는 Manager 화면 상에서 Top 메뉴로 보여지며, 2 Level 부터는 dropdown 형식으로 보여진다.

사용자

사용자는 J-Jobs Manager에 로그인할 수 있는 계정을 말하며, 해당 사용자에게 하나의 역할을 할당할 수 있다. 사용자 비밀번호 정책은 10자 이상, 190자 이하이며 영문자와 숫자가 포함되어야 한다. 로그인 중복 방지와 사용자 세션 유지 시간을 별도 설정할 수 있다.

새로운 사용자를 다음과 같이 등록/수정 할 수 있다.

  • 사용자 ID : 사용자 계정 ID
  • 사용자 이름: 사용자 이름
  • 비밀번호 : 10자 이상 190자 이하, 영문자와 숫자 포함
  • 비밀번호 확인 : 동일한 비밀번호를 입력
  • 언어 : 해당 사용자가 Manager에서 사용할 언어 선택
  • 타임존 : 해당 사용자가 Manager에서 사용할 타임존 선택
  • 시간표시 형식 : Manager에서 표시되는 시간, 날짜에 대한 형식 지정
  • 역할ID : 해당 사용자가 갖게 될 역할 지정
  • 로그인 중복 체크 여부 : 해당 ID로 중복 로그인을 허용할지 여부
  • 사용자 세션 타임아웃 설정(분) : 사용자가 로그인 이후 세션 유지 시간 설정

  • 비밀 토큰 변경 : J-Jobs 에서는 사용자 마다 토큰이라는 비밀키를 사용하며, 필요에 따라 토큰정보를 갱신 할 수 있다.
  • 비밀번호 변경 : 사용자의 비밀번호를 변경 할 수 있다.

사용자 정보는 우측 상단의 사용자 이름을 클릭하여 팝업으로도 확인 할 수 있다.

J-Jobs 운영 관리

개요

J-Jobs는 시스템 관리를 담당하는 시스템 관리자(root)와 배치 작업과 관련된 운영 관리를 담당하는 관리자(Administrator 역할을 부여받은 사용자)로 구분하고 있으며, J-Jobs Manager는 시스템 관리자(root)와 관리자(Administrator) 관점으로 각각 다른 메뉴를 제공하고 있다.

J-Jobs 운영 관리를 위한 관리자(Administrator)의 메뉴는 시스템 관리자에게 제공되는 메뉴 중 설치/제거 > 초기화 > 메뉴 초기화를 수행하여 Administrator 역할에 설정된 메뉴 구성을 기준으로 한다. 기본으로 설정된 메뉴는 크게 Job, 실행, 결과, 모니터링, 관리자로 구성된다.

Job 관리

관리자는 User 역할의 기능(API) 및 메뉴를 모두 포함하여 사용할 수 있고, Job에 설정된 권한(Job Lock 기능)에 관계없이 모든 Job을 실행하거나 수정, 삭제 할 수 있다.

Job 메뉴의 오른쪽 상단 메뉴 중 Job 관리를 통해 Job을 업로드/다운로드 하거나 엑셀로 일괄 업로드/다운로드 할 수 있다. 또, 기본 예제인 샘플 Job 추가도 수행 가능하다.

ㅁㅇ

zip 업로드

zip 업로드 기능은 zip 다운로드기능을 이용하여 다운로드 받은 zip 파일을 이용하여 Job을 등록할 수 있다.

  • 파일 찾기 : 팝업화면으로 다운로드 받은 zip 파일을 선택할 수 있는 탐색기 화면이 제공된다.
  • 파일 확인 : 선택한 zip 파일에 포함된 Job 목록을 표시한다.
  • 업로드 대상 Job 체크 : Job의 ID는 Unique해야 하므로, 상태가 DUP으로 표시된 Job은 업로드 할 수 없다. 전체 혹은 특정 Job을 선택(체크)한다.
  • 폴더 지정
    • 활성화 : 활성화를 클릭하면, 폴더 목록이 표시되며 지정한 폴더로 Job이 추가된다.
    • 비활성화 : zip 파일에 저장된 기존의 폴더 경로로 Job이 추가된다.
  • 업로드 : 업로드 버튼을 클릭하면, zip 파일이 업로드 된 후에 선택한 Job이 추가된다.

![](media/job upload.png)

zip 다운로드

사용자 가이드를 참고한다.

기본 예제 Job 추가

기본 템플릿을 이용하여 생성된 예제 Job이 Samples폴더에 자동 생성된다

Job설명
Dummy_Job일정시간 동안 waiting 하는 예제
Java_JobJava 파일을 호출하는 예제
Command_JobCommand 명령으로 Notepad 열기 예제
Split_JobStep을 병렬로 실행하는 예제
Dust_JobREST API, Command/Shell, Email 이 함께 사용된 예제
Decision_Job분기처리에 의한 실행 예제

실행 및 결과

사용자 가이드를 참고한다.

통계

Job 실행과 관련된 각종 결과에 대한 통계를 제공한다.

월간 Job 수행 통계

월 단위의 일별 Job 수행 결과에 대한 통계 데이터를 조회할 수 있다.

Job 수행 결과 통계를 확인하기 위한 조회 조건으로을 선택한 뒤 조회 버튼을 클릭한다.

해당 월에 일자별로 Job 수행 결과로 성공, 실패, 미완료 건수에 대한 통계 데이터를 그래프와 테이블 형태로 확인할 수 있다. 또한 해당 기간 동안, 수행 시간이 가장 오래 걸린 10개의 Job 과 가장 많은 오류가 발생한 10개의 Job 목록을 확인할 수 있다.

연간 Job 수행 통계

연 단위의 월별 Job 수행 결과에 대한 통계 데이터를 조회할 수 있다.

조회하고자 하는 년도를 선택한 뒤, 조회한다. 해당 연도의 월별 Job 수행 결과로 성공, 실패, 미완료 건수에 대한 통계 데이터를 그래프와 테이블 형태로 확인할 수 있다.

폴더별 Job 수행 통계

폴더별로 Job 수행 결과에 대한 통계 데이터를 조회할 수 있다.

조회하고자 하는 기간을 선택한 뒤, 조회한다. 조회 기간 동안 폴더별로 Job 수행 결과를 성공, 실패, 미완료 건수로 확인할 수 있다. 폴더별로 하위 폴더가 있을 경우 모든 하위 폴더에 대한 합계 건수를 보여주며, 해당 폴더 바로 하위에 속한 Job 수행 결과 건수는 회색 원 안에 표시된다. 또한 하위 폴더별 Job 수행 통계 그래프를 클릭하면, 해당 폴더 하위에 있는 폴더별로 성공, 실패, 미완료 건수에 대한 통계 그래프를 확인할 수 있다.

에이전트별 Job 수행 통계

에이전트별로 Job 수행 결과에 대한 통계 데이터를 조회할 수 있다.

조회하고자 하는 기간을 선택하고 조회한다. 해당 기간에 에이전트별로 Job 수행 결과 건수에 대한 통계 데이터를 그래프와 테이블 형태로 확인할 수 있다. 우측에는 해당 기간 동안에 상태별 에이전트의 수행 통계를 파이 그래프 형태로 제공한다.

에이전트별 자원 통계

에이전트별 자원 사용률에 대한 통계를 조회할 수 있다.

조회하고자 하는 기준 시간을 선택한 뒤 조회한다. 기준 시간 30분 전, 후 동안(1시간)의 수집된 CPU, 메모리, 디스크의 평균, 최대 사용률(%)을 그래프와 테이블 형태로 확인할 수 있으며 해당 시간동안에 실행된 Job 요청 정보가 함께 표시된다.

에이전트로부터 수신되는 자원사용률 값은 일정한 시간 간격마다 평균값과 최대값으로 계산하여 기록된다. 기록 시간 주기는 J-Job Server 웹 어플리케이션 하위에 있는management.properties 파일에 jjob.manager.aw.resource.interval 값(millisecond)을 통해 변경할 수 있다.

모니터링

사용자 가이드를 참고한다.

Cloud

J-Jobs Orchestrator에서는 주요 Cloud Platform(AWS, Azure, GCP) 관련 기능을 제공한다. Cloud 계정을 설정하는 Account와 Cloud 상에서 J-Job Agent를 필요에 따라 자동으로 스케일링 할 수 있는 Auto Scaling, 그리고 각 클라우드 플랫폼에서 제공하는 CLI를 J-Job Manager 상에서 바로 실행할 수 있는 CLI와 클라우드의 인스턴스를 관리할 수 있는 Instances를 기본적으로 사용할 수 있다.

Cloud에 대한 자세한 사항은 HOW_TO_가이드를 참고한다.

Account

J-Jobs에서 사용 가능한 클라우드 플랫폼인 AWS, Azure, GCP 각각의 사용 계정을 설정할 수 있다. 각 클라우드 제품마다 계정 설정이 상이하므로 각 제품마다 계정 정보를 참고하여 값을 입력한다.

기존에 추가된 클라우드 계정이 카드 형태로 표시되며 상단에 추가하고자 하는 클라우드 제품군을 선택한 뒤 추가 버튼을 클릭하여 계정 정보를 입력한 뒤 저장한다. 아래는 AWS에 접근하기 위한 계정 추가 예시이다.

Auto Scaling

Auto Scaling 기능은 미리 설정된 기준에 따라 J-Job Agent가 클라우드 인스턴스 상에서 자동으로 기동되거나 중지되면 대량의 Job을 실행할 수 있는 기능이다. Account에서 클라우드 계정 정보를 추가한 뒤, 에이전트 그룹에 에이전트 임계치 설정을 통해 에이전트의 가용 여부를 판단할 수 있는 기준을 설정한다. 이 때 Account에서 설정한 Agent Image Id(Name) 에 따라 J-Job Agent가 탑재된 Instance Image로 클라우드 상에서 새로운 인스턴스가 기동된다.

에이전트 그룹에서 오토스케일 설정을 클릭하여 오토스케일을 새로 설정하거나 기존에 설정한 값을 변경할 수 있다.

  • Select cloud account : [Cloud > Account]에서 설정한 클라우드 계정을 선택한다.
  • Agent auto-scale range setting : 에이전트 그룹에 설정된 에이전트 임계치 설정에 따라 Agent가 없거나 기존 Agent가 비가용 상태로 판단될 경우, 가용한 에이전트를 기동시킬 최소부터 최대까지 범위를 설정한다.
  • Advanced setting
    • 인스턴스 상태 확인 주기(기본값 1분) : 클라우드 상의 인스턴스의 상태를 주기적으로 확인하기 위한 시간 설정
    • 인스턴스 중지 대기(기본값 5분) : 에이전트가 종료된 이후에 다시 같은 인스턴스 내에서 에이전트가 시작될 것을 대비하여 인스턴스 중지하기 전 대기 시간 설정
    • 인스턴스 종료 대기(기본값 60분) : 에이전트가 종료되고 인스턴스가 중지된 상태에서 인스턴스를 완전히 종료하기 위한 대기 시간 설정

에이전트 그룹에 설정된 전체 오토스케일 상황을 확인하고 이를 수정 할 수 있다.

CLI

각 클라우드 플랫폼에서 제공하는 CLI를 J-Job Manager에서 실행하고 이에 대한 결과값을 바로 확인할 수 있다. Account에서 설정한 클라우드 접속 계정을 선택 한 뒤, 실행하고자 하는 CLI 명령어를 입력하고 Execute을 클릭하여 실행한다. Output에서 실행 결과에 대한 응답 메세지를 확인할 수 있다.

클라우드 제품별로 사용할 수 있는 주요 CLI 명령어를 간단한 예제로 제공한다.

Instances

클라우드 상의 인스턴스를 관리할 수 있는 화면이다. Account에서 설정한 클라우드 접속 계정을 선택하면 아래와 같이 해당 계정에 대한 모든 인스턴스가 카드 목록 형태로 나타나며, 각각의 인스턴스의 상태와 정보를 확인할 수 있고 인스턴스를 시작(Account에 설정된 Agent Image Id 기반)하거나, 중지, 재시작, 종료할 수 있다.

관리자

시스템 설정

서버설정

서버들의 논리적인 그룹인 서버 그룹을 관리하고, 서버 그룹 하위에 서버(J-Jobs Server)를 등록할 수 있다.

서버그룹 추가

서버 설정 화면 우측 상단에 위치한 +서버그룹 추가 버튼을 클릭하여, 서버 그룹을 추가한다.

  • 그룹 ID : 서버 그룹 고유 ID, 1 이상의 정수
  • 설명 : 서버 그룹 설명
  • 최대 처리건수 : 서버 그룹 내 서버에 적용되는 기본값으로써 Job 요청에 대한 최대 처리 건수 설정
  • 추출 간격(초) : 서버 그룹 내 서버에 적용되는 기본값으로써, Server가 메타 DB에 적재되어 있는 Job 요청들에 대한 추출 간격(초) 설정
  • 우선순위 : 서버 그룹에 요청되는 Job 실행 우선순위에 대한 기본값
  • 기준시간 : 서버 그룹 내 서버의 기준 시간
  • 타임존 : 서버 그룹 내 서버의 타임존 설정
서버그룹 삭제

삭제하고자 하는 서버그룹의 서버그룹 편집을 클릭한 다음, 아래 삭제 버튼을 클릭한다.

서버 추가

서버 그룹 하위에 신규 서버(J-Jobs Server)를 추가할 수 있다. 별도의 과정(J-Jobs 설치 참고)을 통해 설치한 서버를 수동으로 추가한다. 신규 서버를 추가하기 위한 정보는 다음과 같다.

일반 정보

  • 서버 ID : 신규 서버의 고유 ID
  • 서버 설명 : 서버에 대한 추가 설명
  • 프로토콜 : 서버의 프로토콜(http, https) 선택
  • 호스트명 : 서버의 호스트명
  • IP : 서버의 Service IP
  • 포트 : 서버의 Service Port
  • Context Path : Server의 context path 입력(예시: /jjob-server)
  • 최대 처리 건수 : 서버 그룹에 설정된 기본값과 다르게 설정하고자 할 때 입력한다.
  • 추출 간격 : 서버 그룹에 설정된 기본값과 다르게 설정하고자 할 때 입력한다.
통신 정보

서버와 에이전트간의 통신을 위한 정보를 설정한다.

  • 프로토콜 : 통신 프로토콜(tcp, ssl)
  • TCP 서비스 IP : TCP 통신을 위한 서버의 서비스 IP
  • TCP 포트 : TCP 통신을 위한 Port
  • Read Timeout : TCP 통신 시 Read Timeout 설정
  • 요청 처리자 수 : Job 요청을 처리하기 위한 Server의 처리자 수
  • 최대 연결 수 : 서버와 에이전트 간의 TCP 연결의 최대 개수 (보통 에이전트 개수 *4로 설정)
  • 시스템 로그 레벨 : 에이전트와의 통신 관련 시스템 로그 설정
  • 메시지 로그 레벨 : 에이전트와의 통신 과정에서 송수신하는 메시지 로그 설정
설치 정보

원격 설치 및 시작/종료를 위한 SSH 정보와 설치 경로를 입력한다.

  • 설치 경로 : 원격으로 J-Jobs Installer를 업로드하여 Server를 설치할 때 경로, 혹은 기존에 설치된 서버 경로 입력
  • 윈도우 여부 : 서버가 설치된 Host의 OS가 Windows인지 여부
  • SSH Key 경로 : SSH 접속을 위하여 미리 발급된 publickey 경로
  • SSH ID : SSH 접속 계정
  • SSH 비밀번호 : SSH 접속 비밀번호
  • SSH 포트 : SSH 접속 포트(기본 22)
  • 설치 파일 경로 : J-Jobs Installer 업로드 파일 선택
  • 설치 : 설치 파일 경로를 선택한 경우 버튼이 활성화되며, 버튼을 클릭하면 해당 파일을 업로드한 뒤 사전에 입력한 서버 관련 정보를 기반으로 J-Jobs Server를 설치 경로 하위에 설치한다.
서버 삭제

삭제하고자 하는 서버의 서버 편집을 클릭한 다음, 팝업 화면 하단에 위치한 삭제 버튼을 클릭한다.

단, 서버 삭제는 서버 상세 정보 팝업 화면의 일반정보 탭 하위에 위치한 요청 추출 일시정지 체크 박스를 선택하고 저장한 뒤, 아래 그림과 같이 해당 서버가 '일시정지중' 상태여야만 삭제가 가능하다.

에이전트설정

에이전트 그룹과 에이전트를 설정할 수 있는 화면이다. 에이전트들의 논리적인 그룹인 에이전트 그룹을 추가할 수 있고, 에이전트는 기본 그룹(DEFAULT GROUP)에 속하거나 특정 에이전트 그룹 하위에 속할 수 있다. 에이전트의 소속 에이전트 그룹을 변경하는 방법은 화면 상에 에이전트를 Drag & Drop 하여 다른 에이전트 그룹에 할당한다.

  • 목록 보기 형식으로 전환 : 에이전트 설정 화면을 목록 형태로 볼 수 있다.
  • 상위 서버 그룹명, ID : 에이전트 그룹과 에이전트가 속한 상위 서버 그룹명과 서버 그룹 ID
  • 에이전트 그룹명, ID : 에이전트들의 논리적인 그룹인 에이전트의 그룹명과 에이전트 그룹 ID
  • 에이전트명과 ID : 에이전트명과 에이전트 ID
  • 에이전트 편집 : 에이전트 관련 설정 편집, 에이전트 정보를 편집한 경우 에이전트를 재시작해야 한다.
  • 원격 에이전트 시작(SSH) : 에이전트가 설치된 곳의 SSH 접속 정보가 있을 경우, 해당 SSH를 통해 원격으로 에이전트를 기동시킨다.
  • 원격 에이전트 중지(SSH) : 에이전트가 설치된 곳의 SSH 접속 정보가 있을 경우, 해당 SSH를 통해 원격으로 에이전트를 중지시킨다.
  • 에이전트 재시작 : 에이전트를 재시작하며, 재시작하는 동안 Job 처리는 불가하다.
  • 프로세스 재시작 : 기존의 프로세스는 종료되며 새로운 런타임 프로세스가 시작된다.
  • 에이전트 삭제 : 해당 에이전트를 삭제한다.
에이전트 그룹 추가

에이전트들의 논리적인 그룹인 에이전트 그룹을 신규로 추가한다.

  • 그룹 ID : 에이전트 그룹의 고유 ID(1이상의 정수값)
  • 설명: 에이전트 그룹 설명
  • 배정 우선순위 요소 : 에이전트 그룹 하위 다수의 에이전트가 있을 경우, 선택한 배정 우선순위 요소에 따라 Job을 처리하는 에이전트를 결정한다. 예를 들어, 배정 우선순위 요소를 'Memory'로 선택할 경우 두 대의 에이전트 중 가용 메모리가 더 많은 에이전트에 Job 처리 요청이 배정된다.
  • 전처리 스크립트 : 에이전트 그룹 내 모든 에이전트가 기동 전 공통적으로 수행할 쉘 스크립트
  • 에이전트 임계치 설정 : 에이전트의 가용 상태를 판단하는 기준을 설정할 수 있다. 각각의 조건은 OR로 판단된다. 설정한 조건값(임계값)을 만족할 경우 해당 에이전트는 비가용하다고 판단하여 다시 가용한 상태로 될때까지 Job 요청을 받지 않는다.
    • Job 처리율 : 현재 처리 중인 Job 개수 / 에이전트 최대 동시 처리 건수 * 100
    • CPU : CPU 사용률(%)
    • Memory : 가용 메모리(MB)
    • Disk : 여유 디스크 공간(MB)
에이전트 추가

에이전트를 설치하고 기동하면 자동으로 J-Jobs Manager에 신규 에이전트가 등록된다. 필요에 따라 별도로 에이전트를 수동으로 추가할 수 있다.

  • 일반 정보

    • 에이전트 ID : 에이전트의 고유 ID이며, ID는 서버 그룹 내에서 유일해야 한다.
    • 에이전트 이름
    • 프로세스 개수 : 에이전트 하위에 실행되는 런타임 프로세스 개수
    • 최대 동시실행 : 에이전트가 최대로 동시에 실행할 수 있는 Job 건수
    • 트랜잭션 : 트랜잭션 사용 여부
  • 확장 정보

    • 요청 처리자 수 : Job 실행 요청을 처리하는 처리자 수
    • JSL 경로 : JSL 파일이 저장될 경로
    • JSL 버전 사용 여부 : JSL 버전 사용 여부, 체크할 경우 더 높은 버전의 JSL 버전 기준으로 실행
    • 최대 할당 Heap 메모리 : 프로세스 당 최대 할당 Heap 메모리 크기 설정
    • 초기 할당 Heap 메모리 : 프로세스가 시작할 때 할당되는 Heap 메모리 크기 설정
    • 모니터링에서 캐시 메모리 제외 여부 : 에이전트 자원 모니터링에서 메모리 사용률에서 캐시 메모리 사용량을 제외할지에 대한 여부
  • 로그 정보

    • 로그 경로 : 로그 생성 위치
    • 백업 로그 경로 : 로그 유지 일수가 지난 로그들을 백업할 위치
    • 로그 유지 일수 : 현재 기준으로 지정된 일수를 지난 로그들을 백업 로그 경로로 이동시킨다.
    • 일자별 로그 관리 사용 여부 : 일자별로 로그를 남길지에 대한 여부
    • 시스템 로그 레벨 : 에이전트 동작에 관련된 로그 레벨
    • 메시지 로그 레벨 : 서버와의 통신 시 발생하는 메시지에 대한 로그 레벨
  • SSH/SFTP 접속 정보

    • SFTP 시작 경로 : SFTP 접속 시 초기 경로(특정 경로 하위로만 접근 제한)
    • 윈도우 여부 : 에이전트가 설치된 곳의 OS가 윈도우인지 여부
    • SSH 호스트 주소(IP) : 에이전트가 설치된 곳의 SSH 호스트 IP
    • SSH Key 경로 : SSH 접속을 위해 미리 발급된 publickey 위치 지정
    • SSH ID : SSH 접속 계정
    • SSH 비밀번호: SSH 접속 비밀번호
    • SSH 포트 : SSH 포트
    • 설치 경로 : 원격으로 설치할 에이전트의 경로 혹은 기존에 설치된 에이전트의 경로
    • 설치 파일 경로 : J-Jobs Installer 업로드 파일 선택
    • 설치 : 설치 파일을 선택한 경우 버튼이 활성화된다. 선택한 Installer 파일을 원격으로 전송하며 입력한 에이전트 정보를 바탕으로 신규 에이전트를 설치한다.

Datasource

J-Jobs에서 사용하는 datasource를 추가하고 관리할 수 있다. 왼쪽에는 현재 등록된 datsource 목록이 보이고, 이 중 하나를 선택하여 상세 설정을 확인할 수 있다.

  • 이름 : datasource의 이름
  • 종류 : datasource 유형 선택
    • Job : J-Jobs Agent가 J-Jobs Meta DB에 접속하기 위한 datasource 유형
    • 사용자 : 실제 배치 처리를 위해 업무적으로 사용하는 datasource 유형
  • DB 이름 : J-Jobs에서 지원하는 DBMS 종류
  • JDBC 드라이버 : JDBC 드라이버 클래스 경로
  • JDBC URL : JDBC 형식의 접속 URL
  • 사용자 이름
  • 비밀번호
    • 암호화
  • 자동 커밋 사용 여부 : DBMS의 AutoCommit 기능 on/off
  • Datasource 사용 여부
  • JNDI 사용 여부
  • Pool 사용 여부 : Database Connection Pool 기능 on/off
    • Pool 종류 : common-dbcp, non-common-dbcp
    • Pool 최대 : Connection Pool 최대 개수
    • Pool 최소 : Connection Pool 최소 개수
    • Pool 최대 대기 : Pool 대기 시간(ms)
  • 접속 테스트 : 입력한 설정 값으로 DB에 접속이 가능한지 테스트한다.

패치

J-Job Manager를 통해 J-Jobs를 패치할 수 있는 기능을 제공한다. 단, 아래와 같은 제약 사항을 갖는다.

  • Major, Minor 버전은 동일하고 Micro 버전만 변경되는 패치만 가능하다. (예시 : 2.4.0 -> 2.4.1 가능, 2.3.5 -> 2.4.1 불가)
  • Manager 패치는 WAS가 Apache Tomcat인 경우에만 패치가 가능하다.

Manager, Server, Agent 각각 패치할 수 있으며, 제공되는 패치 파일을 업로드한 뒤 패치를 진행한다.

Manager 패치

패치 파일 관리에서 제공된 Manager 용 패치 파일(manager_patch_x.x.x.zip)을 업로드한다. 업로드 한 패치 파일의 버전을 확인한 뒤, 패치를 진행한다. 패치가 정상적으로 성공하면 Manager를 WAS 상에서 재기동한다.

Server 패치

패치 파일 관리에서 제공된 서버용 패치 파일(server_patch_x.x.x.zip)을 업로드 한다.

현재 연결된 서버의 상태가 정상이어야 하며, 패치 전 요청 일시정지 를 이용하여 패치 진행 동안 Job 실행 요청을 일시 중단시킨다. 이후 패치를 진행한다.

패치가 정상으로 진행되면, WAS상에서 J-Job Server를 재기동한다.

Agent 패치

패치 파일 관리에서 에이전트용 패치 파일(agent_path_x.x.x.zip)을 업로드한다.

패치하고자 하는 에이전트의 상태가 모두 정상이어야 한다. 이후 에이전트 재시작을 실행하면 에이전트가 재시작되며 패치가 진행된다.

외부증명서

Job에서 외부 연결(ssh, sftp 등)을 위한 증명서를 관리한다. 기존에 등록된 외부증명서 목록을 확인할 수 있으며 신규 외부 증명서를 추가할 수 있다.

알림서버

이메일이나 SMS를 전송할 수 있는 알림 서버 설정을 관리한다.

  • 서버 ID : 알림 서버의 고유한 ID 입력(띄어쓰기 금지)

  • 이름 : 알림 서버의 이름/설명

  • 서버유형 : 현재 SMTP만 제공

  • 서버 호스트 : 알림 서버의 IP

  • 서버 포트 : 알림 서버의 서비스 Port

  • 사용여부 : 해당 알림 서버 사용 여부

  • 사용자 이름 : 알림 서버 접속 시 사용자 계정이 필요할 경우 입력(없을 경우 빈칸 허용)

  • 비밀번호 : 알림 서버 접속 시 사용자 계정의 비밀번호가 필요할 경우 입력

  • 비밀번호 취소 : 기존에 입력한 비밀번호를 지운다.

  • 문자 인코딩 : 메일 내용에 대한 문자 인코딩 설정

  • 머릿말 : 메일 제목에 붙는 머릿말 문구

  • 템플릿 : 이메일 본문에 알림 내용 템플릿 문구 설정(Apache Freemarker 문법 사용)

  • 알림 서버 테스트 : 입력한 정보를 바탕으로 알림 서버 접속이 정상적으로 되는지에 대해 테스트한다.

Template

Job을 편집할 때 사용할 수 있는 Template을 관리한다. 현재 등록되어 있는 Template 목록을 보여주고, 기존 Template을 수정, 삭제하거나 새로운 Template을 추가할 수 있다.

Template 추가

신규 Template을 추가할 수 있으며, 제공되는 Template 파일을 업로드함으로써 추가할 수 있다. 업로드 가능한 Template 파일은 jjob-plugin-*-x.x.x.zip 형태의 파일이다.

파일 찾기를 통해 Template 파일을 선택한 뒤, 파일 확인을 클릭하여 업로드 전 해당 Template 내용을 확인한다. 목록에 표시된 Template을 선택 한 뒤 업로드 한다.

Template 업로드가 정상적으로 이루어지면, 해당 Template을 실행할 수 있도록 연결된 모든 J-Job Agent를 재시작(필수)한다.

라이선스

J-Jobs 라이선스 파일을 등록하거나 확인할 수 있는 라이선스 관리 기능을 제공한다.

J-Jobs는 정식 라이선스 파일을 등록해야 정상 동작한다. 예를 들어, 유효한 라이선스 파일이 등록되어 있지 않다면 J-Jobs는 정상 구동이 되지 않거나, 사용이 제한된다.

라이선스 업로드

라이선스가 등록되어 있지 않다면, 다음과 같은 알림이 표시된다.

라이선스 업로드 버튼을 클릭하여 J-Jobs 담당자를 통해 발급받은 라이선스 파일(license.dat)을 업로드 한다.

라이선스 정보 확인

라이선스 업로드가 정상적으로 수행되면, 다음과 같이 라이선스 정보를 확인할 수 있다.

  • 라이선스 유형 : Trial - 라이선스 유효기간이 30일로 제한된 임시 라이선스 / Real - 정식 라이선스
  • J-Jobs Edition : ORCHESTRATOR(J-Jobs Orchestrator)
  • 라이선스 식별자 : 발급된 라이선스 파일의 UUID
  • 적용 서버 호스트명 : 라이선스가 적용될 서버 호스트명(목록)
  • J-Jobs 유효버전 : 라이선스가 허용하는 유효버전(최소~최대)
  • 에이전트 개수 제한 : 설치/연결 가능한 최대 에이전트 개수
  • 리소스 제한 유형 : CORE - 에이전트의 core 수 / JOB - 등록&실행 가능한 Job 수
  • 최대 실행 Job 수 : 등록/실행 가능한 최대 Job 개수
  • 최대 CPU Core수 : 전체 에이전트의 core 수
  • 발급일자 : 라이선스 발급일자
  • 만료일자 : 라이선스 만료일자
라이선스 다운로드

라이선스 다운로드 버튼을 클릭하면 기등록된 라이선스 정보를 라이선스 파일 형태로 다운로드한다.

About J-Jobs

현재 구동중인 J-Jobs Manger에 대한 설치 정보를 확인할 수 있다.

업무 설정

폴더

J-Jobs에서의 폴더는 Job에 대한 각각의 논리적인 그룹 개념으로 사용되며 계층적 구조를 갖는다. 서버 그룹 당 하나의 최상위 폴더가 존재하며 그 하위부터 폴더를 생성할 수 있다.

  • 최상위 서버 그룹 폴더 : 서버 그룹에 해당하는 폴더로써 서버그룹이 생성될 때 같이 생성된다.
  • 상위 폴더명 변경 : 해당 폴더의 위치를 변경하고자 할때 상위 폴더를 변경한다.
  • 하위 폴더 추가 : 선택한 폴더 하위에 새로운 폴더를 생성한다.

폴더 구조에서 특정 폴더를 선택하고 마우스 오른쪽 버튼을 클릭하면 다음과 같이 팝업 메뉴가 나타난다.

  • 폴더 추가 : 선택한 폴더의 하위에 폴더를 추가한다.

  • 폴더 수정 : 선택한 폴더의 상위 폴더를 변경하여 폴더 이동을 하거나, 폴더명을 변경한다.

  • 폴더 삭제 : 선택한 폴더와 폴더에 포함된 Job을 삭제한다.

캘린더

영업일 관리 등을 위한, 스케줄링에서 사용하는 캘린더를 사용자가 직접 추가하고 관리할 수 있다.

현재 등록되어 있는 캘린더 목록을 보여주며, 새로운 캘린더를 [추가] 버튼을 클릭하여 추가하거나 기존의 캘린더 체크하고 [삭제] 버튼을 클릭하여 삭제할 수 있다.

신규 캘린더 추가

1월부터 12월까지 일자별로 클릭하여(초록색 마킹) 영업일을 지정할 수 있다. 영업일을 한번에 지정하기 위해 [반복 설정]을 이용한다.

  • 캘린더 ID : 캘린더 식별 고유 ID

  • 설명 : 캘린더에 대한 설명

  • 반복 설정 : 캘린더 설정 시, 다음의 조건을 만족하는 경우(체크) 해당 년도의 캘린더에서 영업일로 지정한다.

  • 현재 년도 삭제 : 현재 년도의 영업일을 모두 선택 해제한다.

  • 선택 년도 삭제 : 선택한 년도의 영업일을 모두 선택 해제한다.

  • 다른 이름으로 저장 : 현재 캘린더를 다른 이름으로 저장한다.

파라미터

Job 실행에서 사용할 수 있는 전역 파라미터를 추가하고 관리할 수 있다.

현재 등록된 글로벌 파라미터의 목록을 보여준다. 새로운 파라미터를 등록하려면 추가 버튼을 클릭하거나, 삭제하고자 하는 파라미터를 목록에서 다건을 선택하고 삭제 버튼을 클릭하여 삭제한다. 기존 파라미터를 수정하기 위해 목록에서 파라미터 이름을 클릭한다.

신규 파라미터 추가

  • 파라미터 이름 : 추가할 파라미터의 이름

  • 파리미터 값 : 파라미터로 설정하고자 하는 실제 값을 쓰거나 파라미터 예약어를 사용하여 값을 설정할 수 있다.

  • 파라미터 예약어 목록 : J-Jobs에서 제공하는 파라미터 예약어를 확인할 수 있다. 자세한 설명은 사용자 가이드를 참고한다. 팝업에서 사용하고자 하는 파라미터 오른쪽에 클립보드로 복사() 기능을 이용하면 바로 붙여넣기가 가능하다.

타임존

시간 기반의 스케줄링을 위해 국가별 타임존과 썸머타임을 지원한다. 기본적으로 제공되는 타임존은 18개이며, 그 외 타임존은 관리자가 직접 추가하여 사용할 수 있다.

이메일 알림

J-Jobs에서는 시스템 전역과 Job, Schedule에 특정 조건 상황이 발생하면 Email로 알림을 전송한다.

  • J-Job 매니저 주소 : 메일 내용 하단에 링크 주소를 위한 J-Jobs Manager URL 입력

  • 첨부파일 최대크기(KB) : 지정한 최대 크기만큼 실행된 Job, Step 로그 파일을 잘라서 이메일 알림 본문에 첨부한다. 0일 경우 무제한이다.

  • 이메일 알림 사용 : 시스템 전역에 대한 특정 조건 상황이 발생할 경우 이메일 알림을 발송한다.

  • 서버 ID : 알림서버메뉴에서 등록한 알림 서버(SMTP 서버) 중 하나를 선택한다.

  • 발신자 메일 : 이메일 알림 발송 시, 발신 메일 주소

  • 발신자 이름 : 이메일 알림 발송 시, 발신자 이름

  • 수신자(to, cc, bcc) : 알림을 수신받을 이메일 주소를 하나 이상 입력할 수 있으며, 여러 이메일 수신 주소를 한번에 입력하고자 할 때는 ; 구분자를 이메일 주소 사이에 붙여 입력한다.

  • 알림 조건

    • 서버 이상 : J-Jobs Server가 구동 중 shutdown 등의 이상 현상이 발생할 경우 알림
    • 에이전트 이상 : J-Jobs Agent 구동 중 shutdown 등의 이상 현상이 발생할 경우 알림
    • 미처리된 Job의 개수가 *개 이상 : Job이 정상적으로 요청되었으나, 처리되지 않고 있는 Job의 개수가 *개 이상일 경우 알림
    • 스케줄 지연 *초 이상 : 스케줄 중 예정된 시간으로부터 *초 이상 지연될 경우 알림

배포

실행할 어플리케이션(jar, exe 등)을 에이전트에 배포하는 기능이다. 해당 어플리케이션을 선택하여 모든 서버에 업로드하면, Job 실행 시점에 해당 어플리케이션이 에이전트에 배포되어 실행한다. 배포하고자 하는 파일을 선택한 후 [배포] 버튼을 클릭한다.

사용자 설정

로그인 사용자

현재 로그인 한 사용자의 목록을 보여준다. 해당 기능을 정상적으로 사용하기 위해서 Manager 설정 중 management.propertiesjjob.manager.login.session.listener.use 값이 true로 설정되어 있어야 한다.

  • 계정 로그아웃 : 로그인한 사용자를 강제 로그아웃 시킨다.

사용자

J-Jobs 시스템 관리 메뉴에서 설명하고 있는 사용자 메뉴와 동일한 메뉴로서, 시스템 관리자(root) 메뉴의 사용자 메뉴 설명을 참고한다.

이력 관리

Job 수정이력

Job의 버전 관리를 사용할 경우, Job 버전에 대한 이력을 확인할 수 있는 화면이다.

검색 기간 내의 Job ID나 Job명 등으로 검색하여 해당 Job에 대한 변경 이력을 목록 형태로 확인하고 해당 버전의 Job 내용을 JSL이나 관련 파일을 zip 파일로 다운받을 수 있다.

  • 서버로 버전 이력 전송 : 처음에 서버가 없는 상태에서 저장된 이력들을 이후에 서버가 등록되고 나서 해당 서버에 전달하는 기능

이력 테이블

J-Jobs에서는 Job 실행 이력 뿐만 아니라 스케줄, 서버 설정 등의 주요 설정의 변경 이력을 남기고 있으며, 이렇게 지속적으로 쌓이는 이력 데이터에 대하여 주기적으로 혹은 수시로 백업/삭제할 수 있도록 이력 데이터 관리 기능을 제공한다.

주기적으로 백업/삭제하도록 설정하는 것은 시스템 관리 메뉴 중 환경설정의 Feature 설정 중에서 이력 데이터 관리 Feature에서 하며, 수시로 백업/삭제하는 것은 시스템 관리 메뉴 중 설치/제거의 이력 데이터 관리 탭에서 이력 데이터 초기화를 수행한다.

이력 테이블 메뉴에서는 이력 데이터 관리 대상이 되는 메타 테이블과 데이터 필터링 조건을 관리한다.

이력 관리 대상 테이블 목록에서 테이블 이름을 클릭하면, 다음 그림과 같은 팝업 화면이 표시된다.

  • 테이블 이름 : 이력 관리 대상 테이블 명

  • 적용 조건 : 조건 없음 / 날짜 컬럼 / 조건 / 날짜+조건 중에 선택

  • 날짜 컬럼 이름 : 이력 데이터 필터링 조건을 날짜 컬럼으로 지정함

    설정된 날짜 컬럼을 기준으로 이력 데이터 관리 Feature에서 설정된 보유 기간에 해당하는 데이터는 테이블에 남기고, 나머지 이력 데이터를 백업/삭제함

  • 조건 표현식 : 날짜 컬럼 외에 테이블 별로 이력 관리 대상 범위를 필터링 하는 조건을 입력함

  • 참조 테이블 이름 : 테이블 별로 이력 관리 대상 범위에 대한 필터링 조건이 타 테이블의 데이터과 연관이 있는 경우에 참조 테이블과 기준 컬럼을 설정함

  • 기본 설정 여부 : 기본으로 설정된 테이블에 대해서는 조건 등을 변경/삭제 할 수 없으며, 기본 설정되지 않은 테이블에 한해서는 조건 변경 및 삭제가 가능

참고로 적용 조건 혹은 참조 테이블 두 항목 중에서 하나 이상 입력해야 한다.

이력 처리 실행내역

이력 처리 실행내역 화면에서는 다음 항목에 대한 실행 내역을 확인할 수 있다.

  1. 시스템 관리 메뉴 중 설치/제거의 이력 데이터 관리 탭에서 수시로 이력 데이터 초기화를 실행하는 경우
  2. 이력 데이터 관리 Feature에 설정하여 주기적으로 실행되는 경우
  3. 시스템 관리 메뉴 중 설치/제거의 이관 데이터 관리 탭에서 이관 대상 데이터 다운로드(내보내기) 혹은 이관 대상 데이터 업로드(가져오기)를 실행하는 경우

1556775093910

  • 실행 ID : 이력 데이터 관리 혹은 이관 데이터 관리 기능 실행 시, 채번되는 UUID

  • 수행 방법 : 정기 / 수시

    이력 데이터 관리 Feature 사용으로 설정한 경우, 매일 설정된 시간에 수행되며 정기로 표기됨

    시스템 관리 메뉴 중, 설치/제거에서 시스템 관리자가 수시로 실행하는 경우, 수시로 표기됨

  • 처리 방식 : 데이터 백업/삭제 or 이관 데이터 내보내기/가져오기

  • 보유 기간 : 이력 데이터의 경우, 테이블에 남기고자 하는 데이터 보유 기간

  • 재시도 횟수 : 실행 상태가 오류/중지 시, 재시도한 횟수

  • 시작 날짜 : 실행 시작 시간

  • 종료 날짜 : 실행 종료 시간

  • 처리된 테이블 건수 : 백업/삭제/가져오기/내보내기 처리 대상이 된 테이블의 개수

  • 실행 상태 : 시작 / 재시작 / 중지 요청 / 중지 / 성공 / 오류 / 예외(테이블에 PK가 없는 경우 백업 sql 생성 못함)

  • 처리자 : 수시 실행 시에는 User ID / 정기 실행 시에는 실행된 Server ID

  • 백업 파일 : 백업 / 가져오기 실행 시에 SQL Insert/Update 구문으로 백업 데이터가 생성되어 zip 파일로 백업 대상 폴더에 저장되며, 다운로드 버튼 클릭 시 로컬로 백업 파일을 다운로드 할 수 있음

1556775131280

이력 처리 상세내역

이력 처리 실행내역 화면에서 실행 ID를 클릭하면, 해당 실행 ID의 상세 실행 내역을 확인할 수 있다.

1556775093910

이력 처리 상세내역 화면에서 테이블 이름을 클릭하면, 해당 테이블에 대해 실제 적용된 필터링 조건 확인 및 오류 상태의 경우에는 오류 메시지 확인이 가능하다.

1556775093910

J-Jobs 커스터마이징

이중화 구성 방안

J-Jobs는 이중화 지원을 위해 각각의 모듈이 2식으로 설치 가능하며, 기본적으로 Active-Active로 동작한다. 단, DB 이중화는 지원하지 않는다.

이중화를 고려한 J-Jobs의 기본적인 시스템 구성은 다음과 같다.

img

만약 배치 작업에 대한 부하 등으로 인해, 배치 서버의 증설이 필요한 경우에는 J-Jobs Agent 추가 설치가 가능하며, 이 경우에 대한 시스템 구성은 다음과 같다.

img

이중화 구성

J-Jobs 설치 가이드에서는 다음과 같이 3가지 방법에 대하여 기술하고 있으므로, 프로젝트에서 구성하고자 하는 이중화 아키텍처에 맞게 서버 혹은 J-Jobs Agent를 추가 설치한다.

본 장에서는 순서 위주로 설명하므로, 자세한 설치 / 설정 방법은 설치 가이드를 참고한다.

  • 전체 설치
  • J-Jobs 서버(J-Jobs Manager, J-Jobs Server)만 설치
  • J-Jobs Anget만 설치

J-Jobs 서버 추가 설치

Step 1 - J-Jobs 서버 추가 설치

Windows 버전

jjobs_windows_ x64_v2.4*.exe을 실행하고 'Only Server'를 선택하여, J-Jobs 서버(J-Jobs Manager, J-Jobs Server)만 설치한다. DB는 기 설치된 DB 접속정보만 입력한다.

img

linux 버전

jjobs_linux_ x64_v2.4*.tar.gz를 적절한 위치에 놓고, tar 유틸리티를 이용하여 압축을 푼다. 다음과 같이 입력하여 J-Jobs 서버만 설치한다.

  • [ ] J-Jobs 추가 설치 명령 예제
sh ./jjob_installer.sh --base_path /app/jjobs --dbms_ip 192.168.0.1 --dbms_port 7432 --skip_inst_dbms

Step 2 - J-Jobs 서버 설정 추가

J-Jobs Manager에 접속하여 관리자(Administrator) 계정으로 로그인하여, 관리자 > 시스템 설정 > 서버 설정화면에서 다음과 같이 서버를 추가한다. 서버를 추가 하는 방법은 J-Jobs 운영 관리 장의 관리자 > 시스템 설정 > 서버 > 서버 추가를 참고한다.

만약, 이중화용 J-Jobs 서버를 동일한 호스트 장비에 설치하는 경우에는 J-Jobs에서 사용하고 있는 TCP 포트 충돌을 방지하기 위하여, 통신 정보 탭에 TCP 포트를 기 등록된 서버와 다르게 설정한다.

참고로 J-Jobs 서버에서 사용하는 TCP 포트는 '19000'으로 설정된 경우에 실제 사용하는 포트는 19000 ~ 19004 이므로 TCP 포트 변경 시, 이를 고려해야 한다.

img

img

Step 3 - J-Jobs 서버 시작

추가 설치된 위치에서 start_server.sh 또는 start_server.bat을 실행한다.

Step 4 - J-Job 서버 상태 확인

J-Jobs Manager에 접속하여 모니터링 메뉴 또는 Dashboard를 통하여 추가한 서버 상태를 확인한다.

(자세한 내용은 사용자 가이드를 확인한다.)

J-Jobs Agent 추가 설치

Step 1 - J-Jobs Agent 추가 설치

Windows 버전

jjobs_windows_ x64_v2.4*.exe을 실행하고 'Only Agent'를 선택하여, J-Jobs Agent만 설치한다.

img

linux 버전

jjobs_linux_ x64_v2.4*.tar.gz를 적절한 위치에 놓고, tar 유틸리티를 이용하여 압축을 푼다. 다음과 같이 입력하여 J-Jobs Agent만 설치한다.

  • [ ] J-Jobs Agent 추가 설치 명령 예제
sh ./jjob_agent_installer.sh --base_path /app/jjobs --svr_group 1 --agnt_group 0 --start_url http://192.168.0.1:7065/jjob-server

Step 2 - J-Jobs Agent 시작

추가 설치된 위치에서 start_agent.sh 또는 start_agent.bat을 실행한다.

Step 3 - J-Job Agent 상태 확인

J-Jobs Manager에 접속하여 모니터링 메뉴 또는 Dashboard를 통하여 추가한 Agent 상태를 확인한다.

(자세한 내용은 사용자 가이드를 확인한다.)

Fail-over

J-Jobs Manager, J-Jobs Server, J-Jobs Agent는 모두 Active-Active로 동작하므로, J-Jobs Server나 J-Jobs Agent의 비정상적인 동작이나 시스템 문제 발생 시에 정상적인 타 Server/Agent에서 Job 처리가 가능하여 장애 발생 시에 유연하게 대처할 수 있다.

앞 장의 이중화 구성 방안에서 제안하는 시스템 구성도 상에서 배치관리서버#2에 설치된 Server#2가 다운되었다면, 운영자나 관리자의 별도의 개입 없이 Server#1을 통해서 모든 Job 처리가 진행된다.

또, 배치관리서버#1에 설치된 Agent#1가 다운되었다면, 운영자나 관리자의 별도의 개입 없이 Agent#2를 통해서 모든 Job 처리가 진행된다. 단, Job의 속성 중 실행구역 항목을 Agent#1로 제한하여 설정한 Job은 Agent#2에서 해당 Job이 실행되지 않으며, 이 경우에는 Agent#1이 정상적인 상태가 될 때까지 대기하게 된다.

J-Jobs 유지 관리

데이터 관리

J-Jobs에서 사용되는 메타 테이블은 크게 다음과 같이 3가지 유형으로 구분된다.

  • J-Jobs 설치 시에 프로젝트/환경 별로 다른 데이터가 입력되는 설치 관련 테이블
  • Job, 스케줄, 사용자, 폴더, 파라미터 등의 데이터를 포함한 이관 대상 테이블
  • Job 실행 내역이나 서버, 타임존, 스케줄 등과 같은 설정 변경 이력이 쌓이는 테이블

이관 대상 테이블, 이력 테이블 각각을 대상으로 데이터 이관 기능, 이력 데이터 관리 기능을 제공하며, J-Jobs에서 사용하는 메타 테이블에 대한 자세한 설명은 J-Jobs 설치 가이드의 메타 테이블 장의 설명을 참고한다.

데이터 이관

개발에서 운영으로 J-Jobs 데이터를 이관하는 방법은 다음과 같이 3가지 유형으로 진행 가능하다. 각 방법마다 이관되는 데이터의 범위가 다르므로 유의해서 사용한다.

Job에 실행 구역 정보가 설정되어 있는 경우, 개발 환경의 실행 구역 정보가 그대로 운영 환경으로 이관된다.

Job에 설정된 실행 구역 정보는 DB 테이블 뿐만 아니라 각 에이전트에서 Job을 수행할 때 사용되는 JSL 파일에도 실행구역 설정이 저장되어 있으므로, 데이터 이관 시 이 점에 유의해야 한다.

데이터 이관 작업 전에 Job에 실행 구역 설정을 제거하거나, 개발 환경과 운영 환경의 에이전트 그룹 ID, 에이전트 이름을 동일하게 설정하는 등의 고려가 필요하다.

DB to DB

개발 환경의 J-Jobs Meta DB(이하 개발 DB)에 있는 모든 데이터를 운영 환경의 J-Jobs Meta DB(이하 운영 DB)로 이관하고자 하는 경우, 다음의 순서로 작업한다. 이 방법은 개발 DB의 모든 메타 데이터가 이관 대상이 된다.

  1. (공통) 운영 환경에서 J-Jobs 설치

  2. J-Jobs 설치 시 입력한 운영환경 DB 정보(IP, Port, userName, password) 혹은 J-Jobs 설치 디렉토리에 위치한 설치 로그 파일(install_history.log)에서 운영 DB의 접속 정보(JDBC URL 등)를 확인하여 운영 DB 접속

  3. 개발 DB에 있는 모든 데이터를 운영 DB로 이관

    • Table 스키마 및 데이터
    • PK / UK / Index
    • Sequence
    • Procedure
  4. 설치 환경 별로 다른 데이터를 갖는 되는 다음 테이블의 데이터는 모두 TRUNCATE함

    • JKCL_SERVER
    • JKRE_SERVER
    • JKRE_AGENT
    • JKRE_AGENT_MAP
  5. (옵션) 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 로그인

    • 라이선스 적용 or 확인 - 설치/제거 메뉴에서 라이선스 탭에 있는 업로드/다운로드 기능 이용
    • 이력 데이터 초기화 - 설치/제거 메뉴에서 이력 데이터 관리 탭에 있는 이력 데이터 초기화 기능 이용
    • 서버 설명 변경 - 환경 설정 메뉴에서 일반 탭에 있는 서버 설명을 환경에 맞게 변경함
  6. 운영 환경의 J-Jobs Manager에 관리자 계정으로 로그인

    • 관리자 > 시스템 설정 > 서버설정 메뉴에서 운영환경에 설치된 J-Jobs Server 설정 정보를 추가함

      단, J-Jobs Agent 정보는 Agent가 기동될 때, 운영 DB에 자동으로 추가됨

    • 관리자 > 시스템 설정 > Datasource 메뉴에서 Job 유형으로 등록된 JDBC URL을 운영 DB 접속 정보로 변경함

  7. 개발 환경에 등록된 Job에서 사용되는 command/shell 파일을 운영 환경에 동일한 경로로 이관

  8. J-Jobs Server, J-Jobs Agent를 기동하여 예제 Job 혹은 테스트용 Job을 실행하여 정상 동작 확인

이관 데이터 관리 기능 이용

이관 대상 테이블에 해당하는 Job, 스케줄, 사용자, 폴더, 파라미터 등의 데이터를 개발 DB에서 운영 DB로 이관하고자 하는 경우, 다음의 순서로 작업한다.

  1. (공통) 운영 환경에서 J-Jobs 설치

  2. 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 로그인

    • 메타 테이블이 없습니다 알림 발생 후 테이블 설치 화면으로 이동

    • 테이블 설치 화면에서 메타 테이블 설치 기능을 이용하여 메타 테이블을 설치

      • Table 스키마 및 데이터, PK/UK/Index, Sequence, Procedure
    • 로그인 화면으로 이동

  3. 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 재로그인

    • 설치/제거 메뉴의 초기화 마법사를 사용하여 시스템 설정을 초기화 함 (단, 관리자 계정은 추가하지 않음)
    • (옵션) 환경 설정 메뉴에서 일반 탭에 있는 서버 설명을 환경에 맞게 등록함
  4. 개발 DB에 있는 모든 데이터를 운영 DB로 이관

    • 개발 환경의 J-Jobs Manager에 시스템 관리자 계정으로 로그인하여, 설치/제거 메뉴의 이관 데이터 관리 탭에 있는 다운로드(내보내기) 기능을 이용해서 이관 대상 데이터(J-Jobs_DataExport_실행날짜.zip 파일)를 다운로드 받음
    • 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 로그인하여, 설치/제거 메뉴의 이관 데이터 관리 탭에 있는 업로드(가져오기) 기능을 이용해서 이관 대상 데이터(J-Jobs_DataExport_실행날짜.zip 파일)를 업로드 함
  5. 개발 환경에 등록된 Job에서 사용되는 command/shell 파일을 운영 환경에 동일한 경로로 이관

  6. J-Jobs Server, J-Jobs Agent를 기동하여 예제 Job 혹은 테스트용 Job을 실행하여 정상 동작 확인

Job 엑셀 업로드/다운로드 기능 이용

전체 혹은 특정 폴더에 위치한 Job, 스케줄 데이터를 개발 DB에서 운영 DB로 이관하고자 하는 경우, 다음의 순서로 작업한다.

  1. (공통) 운영 환경에서 J-Jobs 설치

  2. 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 로그인

    • 메타 테이블이 없습니다 알림 발생 후 테이블 설치 화면으로 이동

    • 테이블 설치 화면에서 메타 테이블 설치 기능을 이용하여 메타 테이블을 설치

      • Table 스키마 및 데이터, PK/UK/Index, Sequence, Procedure
    • 로그인 화면으로 이동

  3. 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 재로그인

    • 설치/제거 메뉴의 초기화 마법사를 사용하여 시스템 설정을 초기화 함
    • (옵션) 환경 설정 메뉴에서 일반 탭에 있는 서버 설명을 환경에 맞게 등록함
  4. 개발 DB에 있는 모든 데이터를 운영 DB로 이관

    • 개발 환경의 J-Jobs Manager에 관리자 계정으로 로그인하여, Job 메뉴 화면의 우측 상단에 위치한 Job 관리메뉴 중 엑셀 다운로드 기능을 이용해서 선택한 폴더 하위의 Job/스케줄 데이터(엑셀 파일)를 다운로드 받음
    • 운영 환경의 J-Jobs Manager에 관리자 계정으로 로그인하여, Job 메뉴 화면의 우측 상단에 위치한 Job 관리메뉴 중 엑셀 업로드 기능을 이용해서 Job/스케줄 데이터(엑셀 파일)를 업로드 함
  5. 개발 환경에 등록된 Job에서 사용되는 command/shell 파일을 운영 환경에 동일한 경로로 이관

  6. J-Jobs Server, J-Jobs Agent를 기동하여 예제 Job 혹은 테스트용 Job을 실행하여 정상 동작 확인

데이터 삭제

J-Jobs에서 사용하는 메타 테이블의 데이터를 삭제하는 방법은 크게 네 가지로 구분된다. 각 방법마다 삭제되는 데이터 범위가 다르므로 유의해서 사용한다.

데이터 삭제 준비

이력 데이터 만을 삭제하는 것이 아니라, DB 삭제 혹은 시스템 설정 정보를 포함한 테이블&데이터를 삭제하는 경우에는 다음의 준비 과정을 순서대로 실행하도록 한다.

J-Jobs Server 일시정지

먼저 데이터 삭제 작업 도중에 Job이 수행되지 않도록 모든 서버의 상태를 변경한다.

  1. 관리자 계정으로 로그인하며 관리자 > 시스템 설정 > [서버 설정] 화면으로 이동
  2. 모든 등록된 서버에 대하여 서버 편집 을 클릭
  3. 서버 상세 정보 팝업 화면 하단에 위치한 요청 추출 일시정지 (스케줄 포함)를 체크한 뒤 저장
  4. 처리 중인 Job이 있는지 [결과] 혹은 [모니터링] 화면에서 확인
로그 파일 삭제

J-Jobs Agent에서 기록하는 로그 경로를 경로를 확인하여, 로그 경로백업 로그 경로에 저장된 파일을 삭제한다. 단, 현재 Agent가 사용중인 로그 파일은 삭제할 수 없다.

로그 경로는 관리자로 로그인하여, 관리자 > 시스템 설정 > 에이전트 설정 화면에서 각각의 에이전트 편집을 클릭한 뒤, 에이전트 상세 정보 팝업 화면의 로그 정보 탭에서 확인 가능하다.

1556775093910

DB 삭제

Database를 삭제한 뒤 새로 생성하는 방법으로, 다음의 순서로 작업한다.

  1. J-Jobs 설치 폴더에 위치한 설치 로그 파일(install_history.log)에서 DB의 접속 정보(JDBC URL 등)를 확인하여 DB에 접속

  2. 사용중인 Database를 삭제

  3. 동일한 이름으로 신규 Database 생성

    만약, 다른 이름으로 database를 생성하면, J-Jobs 설치 > 환경설정 장을 참고하여 datasource가 설정된 파일을 모두 변경해야 함

  4. J-Jobs Manager에 시스템 관리자 계정으로 로그인

    • 메타 테이블이 없습니다 알림 발생 후 테이블 설치 화면으로 이동

    • 테이블 설치 화면에서 메타 테이블 설치 기능을 이용하여 메타 테이블을 설치

    • 로그인 화면으로 이동

  5. 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 재로그인

    • 설치/제거 메뉴의 초기화 마법사를 사용하여 시스템 설정을 초기화
  6. J-Jobs Server, J-Jobs Agent를 기동하여 예제 Job을 실행하여 정상 동작 확인

  7. (옵션) 필요한 경우 DB에 접속하여, J-Jobs에서 사용 중인 Sequence 초기화를 수행

    ALTER SEQUENCE SEQ_REQUEST RESTART WITH 1;
    ALTER SEQUENCE SEQ_INSTANCE RESTART WITH 1;
    ALTER SEQUENCE SEQ_JOB RESTART WITH 1;
    ALTER SEQUENCE SEQ_STEP RESTART WITH 1;
    

모든 테이블 삭제 기능 이용

Table을 포함한 전체 스키마를 삭제한 뒤 새로 생성하는 방법으로, 다음의 순서로 작업한다.

  1. J-Jobs Manager에 시스템 관리자로 로그인

    • 설치/제거 메뉴의 테이블 관리 탭에 있는 모든 테이블 삭제버튼을 클릭하여 모든 Table을 삭제
    • 자동 로그아웃
  2. J-Jobs Manager에 시스템 관리자 계정으로 로그인

    • 메타 테이블이 없습니다 알림 발생 후 테이블 설치 화면으로 이동

    • 테이블 설치 화면에서 메타 테이블 설치 기능을 이용하여 메타 테이블을 설치

    • 로그인 화면으로 이동

  3. 운영 환경의 J-Jobs Manager에 시스템 관리자 계정으로 재로그인

    • 설치/제거 메뉴의 초기화 마법사를 사용하여 시스템 설정을 초기화
  4. J-Jobs Server, J-Jobs Agent를 기동하여 예제 Job을 실행하여 정상 동작 확인

선택한 테이블 삭제 기능 이용

전체 혹은 특정 Table의 데이터를 삭제하는 방법으로, 다음의 순서로 작업한다.

  1. J-Jobs Manager에 시스템 관리자로 로그인
  2. 설치/제거 메뉴의 테이블 관리 탭으로 이동
  3. 화면 우측 상단에 위치한, 테이블 보기버튼을 클릭하여 각 테이블 상태를 확인함
  4. 데이터를 삭제하고자 하는 테이블을 선택한 뒤, 선택한 테이블 데이터 삭제 버튼을 클릭
  5. 테이블 초기화 결과 팝업 화면에서 처리 결과 확인
  6. (옵션) 전체 테이블을 선택하여 데이터를 삭제한 경우, 초기화 마법사를 이용하여 시스템 설정 초기화 수행
  7. (옵션) 서버의 상태가 일지 정지중인 경우, 관리자 계정으로 로그인하여 서버 상태 변경
    • 관리자 > 시스템 설정 > [서버 설정] 화면으로 이동
    • 모든 등록된 서버에 대하여 서버 편집 을 클릭
    • 서버 상세 정보 팝업 화면 하단에 위치한 요청 추출 일시정지 (스케줄 포함)를 체크해제한 뒤 저장

이력 데이터 관리 기능 이용

이력 데이터 관리 기능을 이용하여 백업/삭제하는 방법으로, 다음의 순서로 작업한다.

  1. J-Jobs Manager에 시스템 관리자로 로그인
  2. 설치/제거 메뉴의 이력 데이터 관리 탭으로 이동
  3. 이력 데이터의 처리 방법을 선택 (삭제 / 백업&삭제)
  4. 테이블에 남기고자 하는 데이터 보유 기간을 선택 (전체 삭제 / 보유 기간 설정)
  5. 이력 데이터 초기화버튼을 클릭하여 이력 데이터 백업/삭제 처리
  6. (옵션) 관리자 계정으로 로그인하여 이력 처리 실행내역 화면에서 처리 결과 확인

데이터 백업

DB 백업

PostgreSQL에서 제공하는 pg_dumpall, pg_dump 명령을 사용하여 Database를 백업하거나, J-Jobs 에서 제공하는 backup.sh을 이용하여 백업을 수행할 수 있다.

pg_dumpall 명령을 이용

클러스터의 모든 데이터베이스를 백업하고 역할 및 테이블 공간 정의와 같은 클러스터 전체 데이터를 스크립트 파일로 덤프를 생성한다. 복원 후에는 각 데이터베이스에서 ANALYZE를 실행하는 것이 좋다. 이를 통해 옵티마이저가 사용하는 통계 정보가 생성된다.

pg_dumpall > outfile

#역할, 테이블 공간, 데이터베이스, 스키마, 테이블, 색인, 트리거, 함수, 제약 조건,보기, 소유권 및 권한 등의 데이터가 아닌 모든 객체를 백업하기
pg_dumpall --schema-only > outfile.sql

#전역 객체만 백업하기
pg_dumpall --globals-only > outfile.sql

#역할 정의 백업하기
pg_dumpall --roles-only > outfile.sql

#테이블 공간 정보 백업하기
pg_dumpall --tablespaces-only > outfile.sql
pg_dump 명령을 이용

한 번에 하나의 데이터베이스 덤프를 수행하며, 역할 및 테이블 공간과 같이 클러스터의 모든 데이터베이스에 공통적인 전역 객체는 백업 파일에 포함되지 않는다.

pg_dump dbname > outfile
pg_dump -h | psql -hhost1 dbnamehost2 dbname
pg_dump -j num-F d -fout.dir dbname
backup.sh을 이용

backup.sh은 PostgreSQL에서 제공하는 pg_basebackup을 이용하여 PG_DATA(PostgreSQL 클러스터 폴더)에 대한 전체 백업을 수행한 뒤, 아카이브 로그를 (PG_DATA_BACKUP)/archive 폴더에 남기는 과정으로 처리된다. J-Jobs 설치 폴더에 하위에 위치한 PostgreSQL engn 폴더에서는 일련의 backup 과정을 손쉽게 사용하기 위해 shell script(backup.sh)를 제공한다.

PG_DATA_BACKUP 값은 환경변수(setenv.sh) 파일을 변경하거나 번들에서 제공하는 shell script 수행 시 옵션으로 설정한다. backup 수행방법은 다음과 같다.

(PG_HOME)/shl/backup.sh

(PG_HOME)/shl/backup.sh --data_bak /data001/pgsql/data_bak

./backup.sh
>>> START Backup Process <<<
>> Step 1. env check & user input
>> Step 2. postgresql.conf change
>> Step 3. postgresql.conf reload
server signaled
>> Step 4. create base backup
Original backup folder moved  /data001/pgsql/data_bak.B20180404.142901
execute>> bin/pg_basebackup -h 10.80.13.xxx -p 5532 -U repluser -D /data001/pgsql/data_bak -R -v -P --wal-method=stream
pg_basebackup: initiating base backup, waiting for checkpoint to complete
pg_basebackup: checkpoint completed
pg_basebackup: write-ahead log start point: 0/29000028 on timeline 7
pg_basebackup: starting background WAL receiver
33600/33600 kB (100%), 1/1 tablespace
pg_basebackup: write-ahead log end point: 0/290000F8
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: base backup completed
>>> END Backup Process <<<

이관 데이터 백업

시스템 관리 메뉴 중, [설치/제거]의 이관 데이터 관리 탭에 있는 다운로드(내보내기) 기능을 이용해서 이관 대상 데이터(J-Jobs_DataExport_실행날짜.zip 파일)에 대한 백업 파일을 다운로드 받을 수 있다. 주기적으로 시스템 관리자가 직접 실행한다.

이력 데이터 백업

시스템 관리 메뉴 중 [설치/제거]의 이력 데이터 관리 탭에 위치한 이력 데이터 초기화를 백업 모드로 실행하면 이력 데이터 백업 파일을 다운로드 받을 수 있다. 단, 백업된 데이터는 테이블에서 삭제되므로 사용에 유의한다.

시스템 관리 메뉴 중 [환경설정]에서 이력 데이터 관리 Feature를 사용하는 것으로 설정하는 경우에는 매일 설정된 시간에 백업 파일을 생성한다. 관리자 메뉴 중, 이력 관리 > 이력 처리 실행 화면에서 백업 파일을 다운로드 받을 수 있다.

라이선스 갱신

라이선스 만료 알림

라인선스 만료일자가 30일 이내인 경우, 다음 그림과 같이 라이선스 기한 만료 안내 알림이 표기된다.

라이선스가 만료되면, 다음 그림과 같이 라이선스 기간 만료 알림이 표기된다.

라이선스 갱신

라이선스가 만료된 경우에는 J-Jobs 재기동 시에 정상 구동되지 않으므로, J-Jobs 담당자 혹은 홈페이지를 통해 라이선스 발급을 요청한다. 이메일을 통해 유효한 라이선스 파일을 회신 받으면, 시스템 관리 메뉴 혹은 관리자 메뉴에 있는 라이선스에서 제공하는 라이선스 업로드 기능을 이용하여, 유효한 라이선스를 적용한다.

라이선스가 만료된 이후에는 시스템 관리자 계정으로 로그인하여, 재발급 받은 유효한 라이선스 파일을 업로드 해야 한다.

패치

서버 OS 패치 및 보안 설정

추가적인 기능 업데이트나 보안 기능 업데이트시 패치를 제공할 수 있다. 패치를 적용하기 위해서는 jjob-manager, jjob-server에서 사용하는 설정 파일을 백업 후 적용해야 한다.

서버 OS 패치 방법

서버 장비도 주기적으로 보안 패치를 적용하는 것이 안전하다.

CentOS의 경우 다음의 업데이트를 통해 최신 보안 패치를 적용할 수 있다.

# yum install yum-securiy
# yum update --security
# yum list-security --security
# yum updateinfo list security all

추가 보안 사항

J-Jobs는 Dedicated WAS로 Tomcat을 사용한다.

  • Tomcat의 경우 주기적인 업데이트가 되고 있으며 버전별로 최신 버전을 사용해야 보안상 안전하다. Tomcat 외의 다른 WAS를 사용하는 경우에도 안전한 버전을 사용하길 권한다.
  • jjob-manager에서 사용하는 Method인 GET, POST, DELETE, UPDATE만 허용해야 한다.

WEB Server로 Apache를 사용 중이라면 httpd.conf에 다음과 같은 설정을 사용한다.

<Directory>
    <LimitExcept GET POST PUT DELETE>
        Order allow, deny
        deny from all
    </LimitExcept>
</Directory>

Tomcat을 사용 중이라면 #CATALINA_HOME#/conf/web.xml에 다음과 같은 설정을 추가한다.

<filter>
  <filter-name>MethodRestrictFilter</filter-name>
  <filter-class>jjob.common.api.common.filter.MethodRestrictFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>MethodRestrictFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

<error-page>
  <error-code>400</error-code>
  <location>/jjob/app/common/view/error.html</location>
</error-page>
<error-page>
  <error-code>403</error-code>
  <location>/jjob/app/common/view/error.html</location>
</error-page>
<error-page>
  <error-code>404</error-code>
  <location>/jjob/app/common/view/error.html</location>
</error-page>
<error-page>
  <error-code>405</error-code>
  <location>/jjob/app/common/view/error.html</location>
</error-page>
<error-page>
  <error-code>500</error-code>
  <location>/jjob/app/common/view/error.html</location>
</error-page>
<error-page>
  <exception-type>java.lang.Throwable</exception-type>
  <location>/jjob/app/common/view/error.html</location>
</error-page>
  • 세션 타임아웃 시간을 설치된 서버의 상황에 따라서 적절히 조절한다.

Tomcat의 경우 기본적으로 30분의 세션 타임아웃 시간으로 설정되어 있다. #CATALINA_HOME#/conf/web.xml 에서 다음 옵션으로 세션 타임아웃 시간을 조절할 수 있다.

<session-config>
        <session-timeout>360</session-timeout>
</session-config>

Appendix

서비스 등록 (Windows)

J-Jobs에서 윈도우 서비스 등록은 nssm.exe 이라는 프로그램을 사용한다. 사용법은 https://nssm.cc/usage 홈페이지에서 확인할 수 있으며 몇가지 제약사항이 있다.

  • 실행파일 위치가 네트워크 드라이브로 되어있는 경우 실행되지 않는다
  • 윈도우 서비스 등록후 시작과 중지의 경우는 로그를 확인 하기 어려운 단점이 있다
  • 이 외에도 해당 프로그램의 윈도우 버전에 관한 알려지지 않은 호환성 문제가 있을 수 있다

nssm.exe를 다운받고 커맨드창에서 아래 명령어를 입력하면 installer 창이 뜬다

nssm install

에이전트를 서비스로 등록할 경우 start_agent.bat 파일을 열어 맨아래 startdaemon.cmdstartdaemon_svc.cmd 로 변경한 후, Path 에 경로를 선택하고 Install service 를 클릭한다.

성공메시지를 확인하고 Windows 작업 관리자 > 서비스 탭을 확인하면 아래처럼 등록한 서비스를 확인할 수 있다.

서비스 삭제는 작업관리자에서 서비스 중지 후에 커맨드창에서 아래 명령을 입력하면 된다

nssm remoce

프로세스 확인 (Linux)

윈도우에서는 커맨드 창으로 실행이 확인되지만, 리눅스에서는 프로세스 확인 작업을 통해 J-Jobs가 정상적으로 실행 되고 있는지 확인 할 수 있다.

매니저 프로세스

Tomcat으로 실행되면 아래와 유사한 유형의 프로세스를 확인 할 수 있다.

ps -ef | grep tomcat

lena     145498      1  0 00:14 ?        00:05:57 /engn001/java/jdk1.7.0_80/bin/java -Djava.util.logging.config.file=/engn001/jjobs/manager/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=utf-8 ...(중략)

서버 프로세스

Tomcat으로 실행되면 아래와 유사한 유형의 프로세스를 확인 할 수 있다.

ps -ef | grep tomcat

lena     219239      1  0 00:14 ?        13:48:57 /engn001/java/jdk1.7.0_80/bin/java -Djava.util.logging.config.file=/engn001/jjobs/server/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=utf-8 ...(중략)

에이전트 프로세스

ps -ef | grep "Dcname=agent_jjobs"

lena      84199      1  3 12:15 ?        00:02:45 /engn001/java/jdk1.7.0_80/bin/java -Dcname=agent_jjobs_STLHW2 -server -Xms128m -Xmx256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=utf-8 ...(중략)

에이전트 런타임 프로세스

ps -ef | grep "Dcname=jjobs"

lena      77842      1  5 12:12 ?        00:04:45 /engn001/java/jdk1.7.0_80/bin/java -Dcname=jjobs_STLHW2 -Xms128m -Xmx1024m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=utf-8 ...(중략)

매니저/서버 파일로그

매니저와 서버는 현재 콘솔에 로그를 작성하도록 설정되어 있다. 그리고 기본 로그레벨은 INFO 로 되어 있으며, 필요에 따라 이 로그레벨은 조정 가능하다. J-Jobs에서 사용하는 로그는 log4j 이며 log4j의 자세한 문법과 설정방법은 공식사이트(https://logging.apache.org/log4j/2.x/) 를 참고하면 된다. 이 중에서 로그를 콘솔이 아닌 파일로 남겨 관리되도록 설정할 수 있다.

파일 경로 : (WAS 배포경로)/jjob-manager/WEB-INF/classes/properties/log4j.properties

파일 경로 : (WAS 배포경로)/jjob-server/WEB-INF/classes/properties/log4j.properties

기본 설치 시 WAS 배포경로 : (J-Jobs 설치 경로)/server/webapps

기존 log4j.properties 파일이름을 변경하여 백업해둔다. 그리고 예제로 제공되는 log4j_file.properties 을 열어 필요한 정보를 아래처럼 등록한다.

파일경로와 파일이름을 반드시 입력해야 로그가 남게 된다. (ex. logs/jjobs/output.log)

# Log4j Setting file
log4j.rootLogger=INFO,file
#log4j.rootLogger=INFO,file,console     // 콘솔과 파일 모두 사용할 경우 예시

log4j.category.RunnerLogger=INFO,file
log4j.category.MsgLogger=INFO,file
log4j.category.SysLogger=INFO,file

# Console log
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[S][%d][%-5p] %m %n
log4j.appender.console.encoding=UTF-8

# file log
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=파일경로/파일이름
#log4j.appender.file.File=(J-Jobs 설치 경로)/server/logs/manager.log     // 예시
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[S][%d][%-5p] %m %n
log4j.appender.file.encoding=UTF-8

에이전트 로그

실행해야 할 작업이 발생하면 에이전트 가 해당 일을 가져오고 런타임 이 실제 일을 실행하게 된다. 에이전트의 로그는 실행시 발생하는 에러로그를 제외하고는 설정된 경로에 로그가 쌓이고, 런타임은 설정된 경로에 모든 로그가 쌓인다.

###기본 로그

에이전트 : (설치경로)/jjobs/logs/agent/YYYYMMDD

런타임 : (설치경로)/jjobs/logs/YYYYMMDD

에이전트에 대한 기본적인 로그는 sys_yyyymmdd.log 파일을 확인하면 되고, 런타임에 대한 기본적인 로그는 sys_pid_yyyymmdd.log 파일을 확인한다. (pid는 런타임 프로세스 확인에서 알 수 있다)

에러 로그

(설치경로)/jjobs/app/agent.err

에이전트가 start 시에 에러가 발생하면 해당 파일을 남기게 된다. 윈도우에서는 아래처럼 커맨드창에 메시지가 보이고 사라진다.

Job 실행 상태

Job을 실행하고 나면 아래처럼 여러 상태값을 가지게 된다. 색상별로 정의된 상태도 있지만 i 아이콘에 마우스를 가져다 대면 상세한 상태코드가 추가로 보이며 순서대로 Major / Minor Status 를 나타낸다.

Major Status의미Minor Status의미상태
SCHEDULED스케줄NORMAL스케줄 실행요청 되었으나 시간이 도래하지 않아 대기중인 상태
WAITInterval & 종료시간 기준 스케줄 실행요청 되었으나 이전 스케줄 건이 종료하지 않아 대기중인 상태
PENDING대기중NORMALJob이 실행요청 되었으나 대기중인 상태
CONFIRMJob이 실행요청 되었으나 Confirm을 기다리고 있는 상태
FETCHED실행중NORMALJob이 실행 요청되어 실행될 서버를 지정중인 상태
WAIT서버가 Job 실행을 요청 받은 상태
SERVER_SENT서버가 에이전트로 Job 실행을 요청중인 상태
AGENT_RECEIVED서버의 Job 실행 요청을 에이전트가 받은 상태
RUNTIME_FETCHED에이전트에서 Job이 실행중인 상태
COMPLETED완료됨NORMALJob이 성공적으로 실행 종료됨
ERRORJob이 실패하여 실행 종료됨
STOPJob이 중지하여 실행 종료됨

이메일 알림 설정

이메일 알림은 ADMINISTRATOR 권한의 설정 사항과 USER 권한의 설정 사항이 함께 적용되어 작동한다. 각 영역마다 상세 설정은 가이드에서 확인하고 여기서는 전체적인 흐름에 대해서 기술한다.

알림서버 등록

ADMINISTRATOR 권한 사용자

관리자 > 시스템 설정 > 알림서버

사이트에서 사용하고 있는 메일 서버정보를 등록하여야 한다. J-Jobs 에서의 접근이 가능하도록 방화벽이 열려있어야 하며, 기본템플릿도 확인 한 후 이메일 알림 서버 테스트 버튼을 통해 확인한다.

이메일 알림 설정

ADMINISTRATOR 권한 사용자

관리자 > 업무설정 > 이메일 알림

이메일 알림을 사용하기 위해 이메일 알림 사용 을 체크하고, 앞에서 등록한 서버ID 를 선택 해야 한다.

향후 Job과 스케줄에서의 알림은 해당 설정을 따라가도록 되어있다. 그리고 수신자, 참조자, 비밀참조자 또한 Job , 스케줄에서 알람을 설정할 때 기본 수신자 로 자동 지정된다. 또한 알림조건 을 등록해 놓으면 해당 수신자들에게 알람이 가게 된다.

Job / 스케줄 알림 설정

USER 권한 사용자

Job > 알림조건

Job > 스케줄 > 알리사용

Job과 스케줄에서 각각 알림 설정을 할 수 있다. 상태나 조건에 따라 설정이 가능하며 상세설정은 사용자 가이드 를 참고한다. 기본 수신자외에 따로 수신자가 필요한 경우 추가로 등록 가능하다.