본문으로 건너뛰기

exemONE Infrastructure > Tool - Script Manager 기능 상세 설명

메뉴 경로: Infrastructure > Tool > Script Manager / Script Manager History


1. Script Manager

개요

Infrastructure > Host의 타겟 서버를 대상으로 쉘 스크립트를 직접 작성하고 실행하는 화면입니다.

  • 지원 OS Type: Windows, Linux
  • 사전 조건: Host Agent가 설치된 타겟 서버
  • 제약 조건 (v3.0.27 이상): 스크립트 실행 결과 최대 길이 제한 — 65,536 byte

1-1. 화면 구성

순번항목내용
1OS Type스크립트를 실행할 OS를 선택합니다.
2Script List저장된 스크립트 목록입니다. (Script List 섹션 참고)
3ButtonSave: 스크립트를 저장합니다.
Save As…: 스크립트를 다른 이름으로 저장합니다.
Reset: 작성한 스크립트를 초기화합니다.
4Target List스크립트를 실행할 서버를 선택합니다.
5Script스크립트를 입력합니다.
6Your Recent Script최근 실행한 스크립트 리스트를 출력합니다. 현재 열려있는 OS Type과 동일한 스크립트만 출력합니다.
7Clear All스크립트 내용을 초기화합니다.
8Script Timeout설정된 Timeout 값 이상 스크립트 실행 시 타임아웃이 발생합니다.
9Host Encoding Type서버에서 스크립트 실행 시 사용할 인코딩 타입입니다.
10Run Script작성한 스크립트를 실행합니다.
11Running Count스크립트 실행 상태를 카운트로 출력합니다.
형식: {실행 완료 서버 수} / {전체 실행 서버 수}
12Retry All선택한 모든 서버에 대해 스크립트를 다시 실행합니다.
13Result스크립트 결과를 그리드로 출력합니다. (Result Grid 섹션 참고)

1-2. Result Grid

항목내용
Execution ID스크립트 실행 ID (내부 관리 ID)
Start Time스크립트 실행 시작 시간
Target스크립트 실행 서버
Message스크립트 실행 결과 메시지
Execution Time(sec)스크립트 실행 시간 (초)
Execution Result스크립트 실행 결과
- Finished: 정상적으로 실행 완료
- Failed: 스크립트 오류 또는 타겟 연결 실패
- Stopped: 사용자가 수동으로 중단
- Timeout: 지정된 시간 내에 응답이 없음
ActionRetry: 중지되거나 실패한 스크립트 재실행
Stopped: 실행 중인 스크립트 중지
Error스크립트 실행 중 에러 발생 시 출력
Response Output스크립트 실행 결과 출력 메시지 확인

1-3. Script List

Script Folder 및 Script를 생성하고 관리하는 화면입니다.

순번항목내용
1New Script새 스크립트를 작성합니다.
2Search스크립트 이름 또는 폴더를 검색합니다.
3Query I Shared공유한 스크립트만 출력합니다.
4Create Folder새 폴더를 생성합니다. Private, Public 모두 생성 가능합니다.
5ButtonFolder 동작:
- Create Folder: 폴더 생성

- Duplicate Folder: 폴더 복제
- Rename Folder: 폴더 이름 수정

- Delete Folder: 폴더 삭제

Script 동작:

- Duplicate Script: 스크립트 복제
- Edit Script: Edit Script 팝업 표시
- Delete Script: 스크립트 삭제

1-4. Save Script 팝업

순번항목내용
1Name스크립트의 이름입니다.
2Location스크립트가 저장되는 폴더입니다.
3Create Folder폴더를 생성합니다.
4Share Query스크립트를 공유합니다. ON 상태로 변경하면 Public 폴더에 스크립트를 저장할 수 있습니다.

1-5. Script 작성 스펙 (공통)

exemONE에 등록하는 스크립트는 항상 마지막에 xmReturn 을 출력(echo) 해야만 정상적인 종료로 간주합니다.

xmReturn 형식:

xmReturn %d %s
- %d : error code (필수)
- %s : error string (선택)

xmReturn 예시:

xmReturn 0
xmReturn 1 Not Found
xmReturn 13 something is wrong

스크립트 전체 예시:

#!/bin/sh

# 원하는 command 실행
echo "script is running ..."

# ...

if [ "$?" = 0 ]; then
echo xmReturn 0 Success
else
echo xmReturn 1 Error
fi

1-6. Script Manager 로그 분석

exem-host-agent에서 Script Manager 실행 관련 로그를 분석하는 방법입니다.

① 정상적으로 스크립트 요청을 받은 경우 (info level)

log.Info().Msgf("Start ScriptManager [%v]", execId)

ex) Start ScriptManager [00000193-e209-ff9d-e8b5-f3ebbc87bf33]

[C 버전] v3.0.27: [INFO][SCRIPT_MANAGER][process_req_script_manager] Start script manager. ExecId[%s] timeout[%d] encoding[%d]

② 에이전트에서 스크립트 실행 준비가 된 상태 (info level)

  • timeout, encoding 설정 확인 가능
log.Info().Msgf("ExecId[%s]: timeout[%d], scriptEncoding[%s]", execId, execution.timeoutSecond, execution.scriptEncoding)

ex) ExecId[00000193-e209-ff9d-e8b5-f3ebbc87bf33]: timeout[0], scriptEncoding[utf-8]

2. Script Manager History

개요

실행한 스크립트의 과거 실행 내역을 조회하는 화면입니다.


2-1. 화면 구성

순번항목내용
1Global Time실시간을 포함한 최근 스크립트 데이터를 보여줍니다. 기본값: 최근 10분 데이터
2Search스크립트를 검색합니다.
3Script Run History스크립트 실행 이력입니다.
4Option클릭 시 Grid의 옵션을 보여줍니다.

2-2. Grid

순번항목내용
1Execution ID실행 ID (클릭 시 Query Manager Detail Slide로 이동)
2Script스크립트 이름 (클릭 시 Script Manager Detail Slide로 이동)
3Action실행한 스크립트에 대한 동작 수행
- Retry: 중지되거나 실패한 스크립트 재실행
- Stopped: 실행 중인 스크립트 중지
4Execution Result스크립트 실행 결과를 카운트로 출력
- Finished: 정상적으로 데이터가 수집
- Failed: 스크립트 오류 또는 타겟 연결 실패
- Stopped: 사용자가 수동으로 중단
5Start Time스크립트 실행 시각
6DB쿼리가 실행된 데이터베이스
7Target스크립트 실행 서버
8Performer스크립트를 실행한 사용자
9Timeout스크립트 타임아웃 발생 여부
10Error발생 에러

2-3. Script Manager Detail Slide

Script Manager History Grid에서 Script 이름을 클릭하면 해당 실행의 상세 정보를 확인할 수 있는 Detail Slide가 열립니다.

순번항목내용
1Script실행된 스크립트 내용입니다.
2Slide HistoryDetail Slide 이력을 확인합니다.
3Close클릭 시 Detail Slide가 닫힙니다.
4Copy스크립트를 복사합니다.
5Information실행된 스크립트의 정보입니다.
6Target-specific Information실행된 타겟별 정보입니다.
- Error: 클릭 시 상세 에러 내용 확인 가능

- Response Output: 클릭 시 스크립트 실행 결과 출력 메시지 확인 가능

참고 문서: