WhaTap Server 관리자 가이드

제목 : Server Admin Guide
작성자 : WhaTap Support
이메일 : support@whatap.io
날짜 : 2019-06-29
버전 : 1.0.0

설명 : 본 문서는 WhaTap 서버 관리에 대하여 설명 합니다.

1. 사이트 관리

1.1. 이벤트 관리

1.1.1. 이벤트 설정

사이트 관리자가 소유한 프로젝트에 이벤트 정책을 편집합니다.

주요 기능
  • 관리자 권한의 이벤트 정책 [SITE_MASTER] 생성하기

  • 관리자 권한의 이벤트 정책을 프로젝트에 덮어쓰기

  • 프로젝트의 이벤트 정책 편집하기

페이지 이동

이벤트(Event) > 이벤트 정책(Event Policy)

Event Menu
Figure 1. Select an 'Event policy' from the 'Event' menu.
화면 구성
Event Policy
Figure 2. 이벤트 설정 페이지 (Initialization plane of the Event Policy menu)

1) 제품군 선택 탭

2) 마스터 정책 패널

3) 프로젝트 이벤트 정책 패널

주요 사용법
해당 페이지의 주 사용 목적은 1)프로젝트 제품군을 선택하여 2)해당 제품의 마스터 이벤트 정책을 생성하고, 3)관리자 소유의 프로젝트에 해당 마스터 정책을 적용하기 위함입니다.
제품군 선택

제품군 이름을 클릭하여 이벤트 설정을 위한 화면을 전환합니다.

  • APM

  • INFRA

  • DBX (준비중)

마스터 정책 관리하기

관리자 권한의 이벤트 정책을 관리합니다. 마스터 정책을 편집하여 관리자 소유의 프로젝트에 일괄적으로 적용할 수 있습니다.

마스터 정책 (SITE_MASTER)
관리자 권한의 이벤트 정책입니다. 마스터 이벤트 정책 패널에서 생성하며 '복사하기' 기능을 통해 프로젝트에 적용이 가능합니다.

Master Policy

1) 마스터 정책 복제하기
마스터 정책 목록(테이블)에서 복제할 마스터 정책을 선택하면 해당 기능이 활성화 됩니다. 클릭 시 선택한 정책과 동일한 룰의 마스터 정책이 추가됩니다.

Copy to Board Active
Figure 3. Clone the master policy / Active.

2) 마스터 정책 생성하기
아래 모양의 버튼 클릭 시 마스터 정책 생성을 위한 창이 나타납니다.

Add Button
Figure 4. Create Event Policy button for site master privileges.

3) 마스터 정책 편집하기
사이트 관리자가 생성한 마스터 정책들의 목록입니다. 설정한 이벤트 정책 이름과 이벤트 정책 종류[SITE MASTER]가 표시됩니다.

  • Radio Button : '마스터 정책 복제하기’와 '프로젝트 이벤트 정책에 덮어쓰기' 기능을 위한 마스터 정책을 선택합니다.

  • Table Row : 테이블 행을 클릭하여 편집 모달을 확장합니다.

마스터 정책을 우선 2)생성하시기 바랍니다. 마스터 정책 목록 중에서 하나를 선택하여 '프로젝트에 덮어쓰기' 또는 '마스터 정첵 복제하기’가 가능합니다.

기본 마스터 정책
마스터 정책 생성을 위한 편집창에는 기본값이 설정되어 있습니다. 이벤트 정책에 적용하는 '이벤트 룰’은 제품별로 다릅니다. 아래는 제품별 마스터 정책의 기본 설정 화면 입니다.

  • APM

Default master event policy rules for APM
Figure 5. Default master event policy rules for APM.

1) 이벤트 정책 이름
마스터 정책을 구분할 이름을 설정합니다.

2) 비활성 이벤트 룰 설정
어플리케이션 또는 에이전트의 비활성 이벤트를 위한 규칙(Rule)을 설정합니다.

3) 커스텀 이벤트 룰 추가하기 (준비 중)
이벤트 룰을 사용자 정의할 수 있습니다. json 형식의 문자열 조합을 통해 사용자 정의 이벤트 룰을 추가합니다.

4) 이벤트 룰 설정
에이전트가 수집하는 지표(Cpu, Response..)에 이벤트를 발생시키기 위한 룰을 설정합니다. 지표별 설정 방식은 아래 '이벤트 룰 편집하기' 목차를 참고해주시기 바랍니다.

5) 마스터 정책 삭제하기
마스터 정책을 삭제합니다. 삭제한 마스터 정책을 복구가 불가능합니다.

6) 저장하기
편집이 완료된 마스터 정책을 저장합니다. 저장이 정상적으로 완료되면 안내 메시지와 함께 마스터 정책 목록이 갱신됩니다.

  • INFRA

Default master event policy rules for INFRA
Figure 6. Default master event policy rules for INFRA.
프로젝트 이벤트 정책 관리하기

프로젝트의 이벤트 정책을 관리합니다. 마스터 정책을 복사하여 전체 프로젝트 또는 선택한 프로젝트의 기본 이벤트 정책으로 적용하거나 프로젝트의 커스텀 이벤트 정책을 생성할 수 있습니다.

Project List Column Headers
Figure 7. Project List Column Headers.
주요기능
마스터 정책 또는 프로젝트 기본 이벤트 정책 목록 중에서 3)복사할 것을 선택
덮어쓸 4)대상 프로젝트 선택
선택한 프로젝트에 2)덮어쓰기
이벤트 정책 복사하기

1) 전체 프로젝트에 복사하기 (Replace to All policies)
프로젝트 목록에서 복사(Copy) 칼럼의 라디오버튼을 선택한 경우 기능이 활성화됩니다.
버튼 클릭 시 전체 프로젝트의 기본 이벤트 정책 [DEFAULT] 에 해당 이벤트 정책을 덮어씌웁니다.

2) 선택한 프로젝트에 복사하기 (Replace to project policy)
프로젝트 목록에서 복사(Copy)와 덮어쓰기(Replace) 칼럼이 선택된 경우 기능이 활성화됩니다.
버튼 클릭 시 선택한 프로젝트의 기본 이벤트 정책 [DEFAULT] 에 해당 이벤트 정책을 덮어씌웁니다.

Project List Column Headers
Figure 8. Functions of the project list.

3) Copy (복사) : 복사할 이벤트 정책을 선택합니다.
해당 칼럼의 라디오 버튼이 체크되었을 때 '전체 프로젝트에 덮어쓰기' 기능이 활성화 됩니다. 덮어쓰기 칼럼의 체크박스까지 선택된 경우 '선택한 프로젝트에 덮어쓰기' 기능이 활성화됩니다.

4) Replace (덮어쓰기) : 복사 대상의 이벤트 정책을 선택합니다.
복사 대상은 이벤트 정책 타입이 기본 [DEFAULT] 인 경우에만 선택이 가능합니다.


5) Type : 이벤트 정책의 종류입니다.

  • [DEFAULT]
    프로젝트의 기본 이벤트 정책입니다.

    • 프로젝트 생성 및 라이센스 발급시 자동으로 부여됩니다.

    • DEFAULT 정책은 삭제할 수 없습니다.

    • 기본 정책 [DEFAULT] 의 정책명은 'default’에서 변경할 수 없습니다.

  • [CUSTOM]
    기본 정책 외 사용자가 임의로 생성한 이벤트 정책입니다.

    • CUSTOM 정책은 INFRA 프로젝트에서만 관리합니다.

    • 기본 이벤트 정책의 편집 모달에서 '커스텀 정책으로 복사하기' 또는 해당 프로젝트의 이벤트 정책 편집 페이지에서 생성할 수 있습니다.
      *

    • 커스텀 정책 [CUSTOM] 의 정책명은 최초 생성 후에 변경할 수 없습니다. 변경이 필요한 경우 해당 프로젝트의 이벤트 정책 설정 페이지에서만 수정이 가능합니다.

프로젝트 이벤트 정책 목록에는 DEFAULT 타입의 이벤트 정책이 우선 노출됩니다.
프로젝트에 커스텀 이벤트 정책이 존재하는 경우 DEFAULT 이벤트 정책 명 좌측에 [+] 버튼을 클릭함으로써 CUSTOM 정책 목록이 확장됩니다.

Custom Event policy
Custom Event policy
Figure 9. Custom policy Expanded.

커스텀 정책으로 복사하기 (Copy to Custom policy)
INFRA 프로젝트의 기본정책 [DEFAULT] 편집 모달 에서 사용이 가능합니다. 해당 기본 정책 내용을 복사하여 커스텀 정책으로 생성합니다.

Project List Column Headers
Figure 10. Copy to Custom policy.
  • [SITE_MASTER]
    마스터 정책을 의미합니다.

    • 마스터 정책은 사이트 관리자 권한의 사용자만 편집이 가능합니다.

    • 마스터 정책 [SITE_MASTER] 의 정책명은 수정이 가능합니다.


6) Policy ID : 이벤트 정책의 식별 ID입니다.
복사/덮어쓰기 기능의 매개변수 역할을 합니다. 한 번 이상 편집(~저장)한 기본 정책에 대해 ID가 부여됩니다.

Policy ID가 표시되지 않는 경우
프로젝트 생성 및 라이센스 발급 시 해당 프로젝트에는 기본 이벤트 정책이 적용됩니다. 편집하지 않은 이벤트 정책에 대해선 '복사/덮어쓰기' 기능이 불필요하기 때문에 Policy ID를 부여하지 않습니다. 1회 이상 편집하여 저장한 경우 Policy ID가 발급됩니다.
  • 이외

    • Project Name : 정책이 적용된 프로젝트의 이름입니다. 우측 상단의 프로젝트 검색 기능을 사용할 수 있습니다.

    • PCODE : 정책이 적용된 프로젝트의 식별 코드입니다. 우측 상단의 프로젝트 검색 기능을 사용할 수 있습니다.

    • Product Type : 정책이 적용된 프로젝트의 제품 유형입니다.

    • Update : 정책이 수정된 경우 날짜가 갱신됩니다.

    • Edit : 편집 아이콘을 클릭하거나 목록의 행을 클릭하여 이벤트 정책 편집 모달을 확장합니다.

이벤트 룰 편집

이벤트 정책은 이벤트 룰을 포함하는 개념입니다. 편집 기능을 통해 개별 룰에 대한 설정 값을 제어 할 수 있습니다.

NOTE

룰(Rule)이란?
룰은 지표(Metric)와 해당 지표를 통해 이벤트를 발생시키는 조건들에 대한 설정값으로 구성됩니다.
예) 이벤트 정책 [APM]Event Policy의 룰 : CPU, Response…​

제품별 이벤트 룰
APM 이벤트
  • 서비스 다운

    • Inactive : 어플리케이션 비활성화 시 이벤트가 발생합니다.

  • 메트릭 이벤트

    • CPU

    • Disk

    • Response

    • Memory

    • Hit Vertical Line

    • Hit Horizontal Line

    • Transaction Error

    • Active Transaction


APM 룰 속성
  • After : 비활성 이벤트를 체크하는 주기를 설정합니다.

  • Enabled : 우측 상단 스위치 버튼입니다. 해당 룰의 활성화 여부를 설정합니다.

  • Repeat : 최초 이벤트 발생 후 이벤트 재발생 여부를 확인하는 주기를 설정합니다.

  • Silent : 최초 이벤트 수신 후 설정값에 따라 이후 시간 동안 이벤트 수신을 무음 처리합니다.

  • Level : 특정 메트릭은 경고 수준을 설정할 수 있습니다. 경고 수준은 이벤트 수신 메시지에 포함됩니다.

  • Over : 이벤트를 발생시키기 위한 임계치를 설정합니다. 단위는 횟수(count)입니다.

  • minTime : 이벤트를 발생시키기 위한 임계치를 설정합니다. 단위는 밀리세컨즈(ms)입니다.


  • 편집 방식

구분 Enable Repeat Silent Level Over Min-time

CPU

Switch

Select box

Select box

Slider (auto)

Slider (%)

-

Response

Switch

Select box

Select box

Select box

Input Number (count integer)

Input Number (ms)

Memory

Switch

Select box

Select box

Slider (auto)

Slider (%)

-

Transaction Error

Switch

Select box

Select box

Select box

Input Number (count integer)

-

Hit Vertical Line

Switch

Select box

Select box

Slider (auto)

Slider (%)

-

Hit Horizontal Line

Switch

Select box

Select box

Select box

Input Number (count integer)

Input Number (ms)

Disk

Switch

Select box

Select box

Slider (auto)

Slider (%)

-

Active Transaction

Switch

Select box

Select box

Select box

Input Number (count integer)

-

INFRA 룰 속성
  • 서비스 다운

    • Inactive(Agent No Data Alarm) : 에이전트에서 데이터 수집이 불가한 경우 이벤트가 발생합니다.

    • Restart(Reboot Alram) : 서버 재시작 시 이벤트가 발생합니다.

  • 메트릭 이벤트

    • CPU

    • Steal

    • Swap

    • Disk I/O

    • Disk Quota

    • Memory

    • Network IOPS

    • Network BPS

  • 편집 방식

구분 Enable Repeat Level Over

STEAL

Switch

Select box

Slider (auto)

Slider (%)

Disk I/O

Switch

Select box

Slider (auto)

Slider (%)

Disk Quota

Switch

Select box

Slider (auto)

Slider (%)

Memory

Switch

Select box

Slider (auto)

Slider (%)

CPU

Switch

Select box

Slider (auto)

Slider (%)

Swap

Switch

Select box

Slider (auto)

Slider (%)

Network IOPS

Switch

Select box

Each Input box

Input Number (pps, integer)

Network BPS

Switch

Select box

Each Input box

Input Number (bps, integer)

이벤트 설정 예시
서비스 다운 룰 설정
Alert occurs when application is inactive for more than 3 minutes
Figure 11. Enable Inactive Rule, After 3 Minutes : 최초 비활성 이벤트 발생 후 3분이 지나면 다시 어플리케이션 비활성 여부를 확인하여 해당 이벤트를 발생시킵니다.
메트릭 이벤트 룰 설정
Alert occurs when application is inactive for more than 3 minutes
Figure 12. CPU 사용율이 70%를 넘는 경우 Warn, 90%를 넘는 경우 Fatal 이벤트를 발생시킵니다.
Alert occurs when application is inactive for more than 3 minutes
Figure 13. 응답시간(Response)이 5000ms 이상 지속된 횟수가 10회를 넘어서는 경우 이벤트를 발생시킵니다.

2. 서버 관리

2.1. 이벤트 관리

2.1.1. Yard 데이터 백업 및 복구

Jounral 할당 확인

다음과 같은 화면에서 프로젝트가 Journal 할당이 되어있는지 확인 할 수 있습니다.

  1. 서버 > Region > 프로젝트 목록

Journal 리스트에 Journal 서버의 이름이 등록되어 있어야 합니다.

  1. 프로젝트 상세 보기

Journal 서버에 타입이 Master 가 아닌, Journal 로 할당되어 있어야합니다.

수동으로 할당하고자 하실 경우 프로젝트 상세 보기에서 [Journal] 버튼을 통하여 등록할 수 있습니다.

큐브 빌드

5분, 1시간 단위의 데이터를 보관하는 큐브를 다시 빌드하는 작업입니다.

whatap.server.console-${version}.jar

해당 방식은 Yard 어플리케이션에 부착되어 사용되는 구조입니다.
작업 대상이 되는 Yard 의 전체 프로젝트 에 대하여 재빌드가 진행됩니다.

  • 필요 요소

    • lib/whatap.server.consol-${version}.jar

    • 동일 서버 내에 Yard 어플리케이션이 기동 중

    • 기동 중인 Yard 어플리케이션과 동일한 유저 권한으로 실행

  • 실행 방법

    • bin/admin_console.sh

    • java -jar lib/whatap.server.console-${version}.jar ${PID}

  • 명령문

    • 5분 단일 빌드
      c5 yyyymmddHHMM
      c5 201906280105

    • 5분 일일 빌드
      c5h yyyymmdd
      c5d 20190628

    • 1시간 단일 빌드
      ch yyyymmddHH
      ch 2019062801

    • 1시간 일일 빌드
      chd yyyymmdd
      chd 20190628

Yard 유실된 데이터 복구하기
해당 작업 중에는 인스턴스에 과다한 부하가 걸릴 수 있습니다.
가급적 부하가 걸려도 이상이 없는 서버에서 작업하시는 것을 권장드립니다.

Yard 서비스 중 재시작, 인스턴스 이상 등 Yard 에서 데이터를 유실한 경우 데이터를 복구할 수 있습니다.
단, 다음과 같은 상황에서는 데이터 복구가 불가능 합니다.

1) Proxy 서버에서 데이터를 수집하지 못한 경우
2) Journal 서버가 없는 경우

  • 필요 요소

    • whatap.server.yard-${version}.jar

    • Journal 서버의 6620 Port 접근이 가능

    • Yard 서버에 접근이 가능 ( 파일 전달 시 필요 )

  • 실행 방법
    java -cp whatap.server.yard-*.jar io.whatap.yard.Recover -host {Journal IP} -port 6620 -pcode {Project Code} -date {yyyymmdd}

    • Journal IP : Journal 서버의 IP
      EX) 10.0.1.5

    • Project Code : Project 의 고유 코드

    • yyyymmdd : 연월일 형식 20190101

실행 경로 하위에 yardbase 디렉토리가 만들어집니다.
지정된 날짜 외의 디렉토리는 비어있는 디렉토리임으로 무시하셔도 무방합니다.

데이터 복구 완료 이후 생성되는 데이터는 Cube 데이터는 존재하지 않습니다.
따라서 수동으로 Cube 빌드를 진행해주셔야합니다.