주:

Oracle Analytics Cloud로 Oracle Cloud Guard 이벤트 캡처

소개

이 사용지침서에서는 Oracle Cloud Guard 이벤트를 Oracle Autonomous JSON Database(AJD)로 전달하고 Oracle Analytics Cloud에서 캡처하는 과정을 안내합니다. Oracle Analytics Cloud에서 Cloud Guard 이벤트를 분석하고 표시하는 후속 사용지침서가 제공됩니다.

상위 아키텍처

상위 아키텍처.

목표

필요 조건

작업 1: 클라우드 이벤트를 트리거하도록 Oracle Cloud Guard 구성

감지기 레시피에 응답하도록 Oracle Cloud Guard를 구성합니다. 응답기 규칙은 다음 이미지와 같이 Oracle Cloud Guard 이벤트에 대한 상태사용으로 설정되었는지 확인해야 합니다.

응답기 규칙.

작업 2: OCI 이벤트 서비스 규칙을 생성하여 Oracle Cloud Guard 문제 감지 및 OCI 함수 호출

  1. OCI 이벤트 서비스를 사용하면 테넌시 전체에서 리소스의 상태 변경에 따라 자동화를 생성할 수 있습니다. 이벤트를 사용하면 리소스가 상태를 변경할 때 개발 팀이 자동으로 응답할 수 있습니다.

    이벤트를 가져오려면 관찰 가능성 및 관리로 이동하고 이벤트 서비스를 누릅니다. 다음 이미지와 같이 새 규칙을 생성하고 함수에 기록될 이벤트 유형을 구성합니다.

    규칙 정의.

  2. 줄임표 아이콘(세로 점 3개)을 눌러 Oracle Cloud Guard 이벤트를 편집하고 다음 이미지와 같이 함수로 전송합니다.

    매개변수 정의. 아래와 같이 Cloud Guard 이벤트를 함수로 전달할 작업을 추가합니다. 이벤트 작업. 이벤트 유형 구성 이벤트 유형.

작업 3: 이벤트를 AJD로 전달하는 함수 생성

  1. OCI 콘솔로 이동하여 개발자 서비스로 이동하고 함수를 누릅니다.

  2. 기존 애플리케이션을 선택하거나 애플리케이션 생성을 누릅니다. 애플리케이션 내에 새 OCI 함수를 생성합니다. 자세한 내용은 Cloud Shell의 기능 QuickStart을 참조하십시오.

    주: 필요 조건을 성공적으로 완료했다고 가정합니다.

  3. 다음 명령을 실행하여 응용 프로그램 목록에서 응용 프로그램을 확인합니다.

    fn ls apps
    
  4. 먼저 보일러 플레이트 Python 함수를 만드는 것이 좋습니다. fn init – runtime oci-event-to-db 명령은 func.py, func.yamlrequirements.txt라는 세 개의 파일이 있는 oci-event-to-db라는 폴더를 생성합니다.

  5. AJD 테이블이 존재하고 REST가 사용으로 설정되어 있어야 합니다. 아래 그림과 같이. REST가 사용으로 설정되었습니다.

  6. 다음 코드로 func.py 파일 내용을 갱신합니다.

    import io
    import json
    import re
    import requests
    
    eventTable="https://mrj6p3vkk4ramuu-cgdata.adb.us-ashburn-1.oraclecloudapps.com/ords/cguser/event/"
    
    from fdk import response
    
    def handler(ctx, data: io.BytesIO=None):
    try:
    bodytxt = data.getvalue()
    body = json.loads(bodytxt)
    
    # print("event type: " + body["eventType"])
    # print("compartment name: " + body["data"]["compartmentName"])
    
    headers = {'Content-type': 'application/json', 'accept': 'application/json'}
    req = requests.post(eventTable, json={ "event": body }, headers=headers)
    
    except (Exception, ValueError) as ex:
    print('ERROR:', ex, flush=True)
    raise
    
    return response.Response(
    ctx,
    response_data=[ json.loads(req.text)["id"] ],
    # response_data=json.loads(req.text),
    headers={"Content-Type": "application/json"}
    )
    
  7. 다음 코드로 func.yaml 파일 내용을 갱신합니다.

    schema_version: 20180708
    name: oci-event-to-db
    version: 0.0.44
    runtime: python
    build_image: fnproject/python:3.11-dev
    run_image: fnproject/python:3.11
    entrypoint: /python/bin/fdk /function/func.py handler
    memory: 256
    
  8. 다음 코드로 requirements.txt 파일 내용을 갱신합니다.

    Requests
    oci
    fdk
    
  9. 다음 명령을 실행하여 함수를 배치합니다.

    fn -v deploy -app oci-event-to-db
    

작업 4: ORDS를 사용하여 데이터베이스 단순화

  1. Oracle Cloud Guard 이벤트가 AJD에 저장되면 이벤트 테이블을 확인하여 데이터베이스에서 Oracle Cloud Guard 작업을 확인합니다. 다음 SQL 문을 실행하십시오.

    SELECT * FROM EVENTS
    
  2. Oracle Cloud Guard 이벤트는 JSON(Java Script Object Notation) 형식으로 저장되므로 데이터를 분석하려면 Oracle Analytics Cloud의 관계형 형식으로 단순화하거나 변환해야 합니다.

    데이터베이스를 단순화하려면 다음 단계를 따르십시오.

    1. 이벤트 테이블에 인덱스를 생성하고 다음 SQL 문을 실행하여 단순화합니다.

      Create search index event_idx on event (event) for JSON parameters ('DATAGUIDE ON');
      
    2. 뷰를 생성합니다.

      exec dbms_json.create_view_on_path('flat_event', 'event', 'event', '$’);
      
  3. 다음 SQL 문을 실행하여 위 단계에서 생성한 열을 확인합니다.

    SELECT COLUMN_NAME,DATA_TYPE FROM all_tab_columns where table_name ='FLAT_EVENT' order BY column_id;
    

    다음 그림과 같이 데이터 유형과 함께 열이 표시되어야 합니다.

    관계형 형식.

작업 5: Oracle Analytics Cloud에 연결합니다

  1. 데이터베이스가 JSON에서 관계형 형식으로 변환된 후 Oracle Analytics Cloud에 접속합니다. OCI 콘솔로 이동하여 AJD 인스턴스로 이동한 후 데이터베이스 접속을 눌러 인증서를 제공하고 다음 이미지와 같이 전자 지갑을 다운로드합니다.

    AJD 접속입니다.

  2. Oracle Analytics Cloud에 로그인하고 새 접속 생성을 누르고 Oracle Autonomous Data Warehouse를 누르고 1단계에서 다운로드한 전자 지갑을 선택합니다.

    Oracle Analytics Cloud 접속 유형입니다.

  3. 연결이 설정되면 OAC는 다음과 같이 연결 아래에 표시됩니다. Oracle Analytics Cloud 접속 목록입니다.

  4. 접속을 두 번 눌러 OAC에서 새 데이터 집합을 생성하고 스키마를 확장하고 테이블을 캔버스로 끌어옵니다. Oracle Analytics Cloud 데이터 집합입니다.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.