Go to main content

Oracle® ZFS Storage Appliance 관리 설명서, 릴리스 OS8.8.x

인쇄 보기 종료

업데이트 날짜: 2021년 8월
 
 

경보 조치에 워크플로우 사용

워크플로우를 경보 조치로 실행할 수 있습니다. 경보 조치로 실행된 워크플로우는 경보 조치 추가에 설명된 대로 워크플로우 실행 경보 조치에 대해 선택된 워크플로우(BUI) 또는 execute_workflow 처리기의 workflow 등록 정보 값(CLI)입니다.

워크플로우가 경보 조치로 실행되도록 하려면 workflow 전역 변수를 통해 alert: true 멤버를 지정해야 합니다.

기본적으로 워크플로우는 워크플로우를 실행 중인 사용자로 실행됩니다. 단, 기본적으로 경보 조치로 실행된 워크플로우는 워크플로우를 만든 사용자로 실행됩니다. 경보 조치로 실행될 수 있도록 하려면 워크플로우의 workflow 전역 변수를 통해 setid: true 멤버를 지정해야 합니다.

경보 조치에는 다음과 같은 멤버가 포함된 단일 객체 매개변수가 있습니다.

표 158  경보 실행 컨텍스트의 필수 멤버
필수 멤버
유형
설명
class
문자열
경보의 클래스입니다.
code
문자열
경보의 코드입니다.
items
객체
경보를 설명하는 객체입니다.
timestamp
날짜
경보의 시간입니다.

매개변수 객체의 items 멤버에는 다음과 같은 멤버가 있습니다.

표 159  항목 멤버의 필수 멤버
필수 멤버
유형
설명
url
문자열
경보를 설명하는 웹 페이지의 URL입니다.
action
문자열
경보에 대한 응답으로 사용자가 수행해야 하는 작업입니다.
impact
문자열
경보가 발생하게 만든 이벤트의 영향입니다.
description
문자열
경보를 설명하며 사용자가 읽을 수 있는 문자열입니다.
severity
문자열
경보가 발생하게 만든 이벤트의 심각도입니다.
예 17  재부트 실패를 감사하는 워크플로우

경보 조치로 실행되는 워크플로우에서는 audit 함수를 사용하여 감사 로그 항목을 생성할 수 있습니다. 예를 들어, 디버깅 정보는 감사 로그에 기록되어야 합니다.

다음 예에서 audit 함수의 여러 용도를 참조하십시오. 이 워크플로우는 다음과 같습니다.

  • 이 워크플로우의 실행을 지정하는 경보 params.uuid에 대한 응답으로 실행됩니다.

  • 두 시스템이 클러스터화된 상태인 경우에만 시스템을 재부트합니다.

  • 재부트 실패를 감사합니다.

var workflow = {
       name: 'Failover',
       description: 'Fail the node over to its clustered peer',
       alert: true,
       setid: true,
       execute: function (params) {
               var uuid = params.uuid;
               var clustered = 'AKCS_CLUSTERED';

               audit('attempting failover in response to alert ' + uuid);

               try {
                       run('configuration cluster');
               } catch (err) {
                       audit('could not get clustered state; aborting');
                       return;
               }

               if ((state = get('state')) != clustered) {
                       audit('state is ' + state + '; aborting');
                       return;
               }

               if ((state = get('peer_state')) != clustered) {
                       audit('peer state is ' + state + '; aborting');
                       return;
               }

               run('cd /');
               run('confirm maintenance system reboot');
       }
};