Note:

Captura de eventos de Oracle Cloud Guard en Oracle Analytics Cloud

Introducción

En este tutorial se describe el reenvío de eventos de Oracle Cloud Guard a Oracle Autonomous JSON Database (AJD) y su captura en Oracle Analytics Cloud. Habrá un tutorial posterior que analizará y mostrará los eventos de Cloud Guard en Oracle Analytics Cloud.

Arquitectura de Alto Nivel

Arquitectura de alto nivel.

Objetivos

Requisitos

Tarea 1: Configuración de Oracle Cloud Guard para disparar eventos en la nube

Configure Oracle Cloud Guard para responder a las recetas de detector. Las reglas de responsable de respuesta deben asegurarse de que el estado del evento de Oracle Cloud Guard esté definido en Activado, como se muestra en la siguiente imagen.

Reglas del responsable de respuesta.

Tarea 2: Creación de reglas del servicio OCI Events para detectar problemas de Oracle Cloud Guard e invocar OCI Functions

  1. OCI Events Service permite crear automatización basada en los cambios de estado de los recursos de todo el arrendamiento. Mediante el uso de eventos, permite a los equipos de desarrollo responder automáticamente cuando un recurso cambia su estado.

    Para obtener los eventos, vaya a Observación y gestión y haga clic en Servicio de eventos. Cree una nueva regla y configure el tipo de evento que se escribirá en la función como se muestra en la siguiente imagen.

    Definición de Reglas.

  2. Haga clic en el icono de puntos suspensivos (tres puntos verticales) para editar los eventos de Oracle Cloud Guard y enviarlos a una función como se muestra en la siguiente imagen.

    Definición de Parámetro. Agregue una acción para reenviar eventos de Cloud Guard a una función como se muestra a continuación. Acción de Evento. Configurar los tipos de eventos. Tipos de Evento.

Tarea 3: Creación de una función para reenviar eventos a AJD

  1. Vaya a la consola de OCI, vaya a Developer Services y haga clic en Functions.

  2. Seleccione una aplicación existente o haga clic en Crear aplicación. Cree una nueva OCI Functions en la aplicación. Para obtener más información, consulte Functions QuickStart en Cloud Shell.

    Nota: Suponiendo que ha completado correctamente los requisitos.

  3. Ejecute el siguiente comando para ver la aplicación en la lista de aplicaciones.

    fn ls apps
    
  4. Se recomienda crear primero una función Python de texto fijo. El comando fn init – runtime oci-event-to-db generará una carpeta denominada oci-event-to-db con tres archivos denominados func.py, func.yaml y requirements.txt.

  5. Debe existir una tabla AJD y estar activada para REST. Como se muestra en la imagen de abajo. Descanso Activado.

  6. Actualice el contenido del archivo func.py con el siguiente código.

    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. Actualice el contenido del archivo func.yaml con el siguiente código.

    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. Actualice el contenido del archivo requirements.txt con el siguiente código.

    Requests
    oci
    fdk
    
  9. Ejecute el siguiente comando para desplegar la función.

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

Tarea 4: Simplificación de la base de datos mediante ORDS

  1. Una vez almacenados los eventos de Oracle Cloud Guard en AJD, compruebe la base de datos de las actividades de Oracle Cloud Guard comprobando la tabla Events. Ejecute la siguiente sentencia SQL.

    SELECT * FROM EVENTS
    
  2. Dado que los eventos de Oracle Cloud Guard se almacenan en formato Java Script Object Notation (JSON), se deben simplificar o convertir en formato relacional para que Oracle Analytics Cloud analice los datos.

    Para simplificar la base de datos, siga estos pasos:

    1. Cree un índice en la tabla Events y ejecute la siguiente sentencia SQL para simplificarlo.

      Create search index event_idx on event (event) for JSON parameters ('DATAGUIDE ON');
      
    2. Cree una vista.

      exec dbms_json.create_view_on_path('flat_event', 'event', 'event', '$’);
      
  3. Ejecute la siguiente sentencia SQL para comprobar las columnas creadas en los pasos anteriores.

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

    Debe ver las columnas junto con el tipo de dato como se muestra en la siguiente imagen.

    Formato relacional.

Tarea 5: Conexión a Oracle Analytics Cloud

  1. Una vez que la base de datos se haya convertido a formato relacional desde JSON, conéctese a Oracle Analytics Cloud. Vaya a la consola de OCI, vaya a la instancia de AJD y, al hacer clic en la conexión a la base de datos, proporcione las credenciales y descargue la cartera como se muestra en la siguiente imagen.

    Conexión de AJD.

  2. Conéctese a Oracle Analytics Cloud, haga clic en Crear una nueva conexión, haga clic en Oracle Autonomous Data Warehouse y seleccione la cartera que se ha descargado en el paso 1.

    Tipos de conexión a Oracle Analytics Cloud.

  3. Una vez establecida la conexión, OAC la mostrará en Connections de la siguiente manera. Lista de conexiones a Oracle Analytics Cloud.

  4. Haga doble clic en la conexión para crear un nuevo juego de datos en OAC, amplíe el esquema y arrastre la tabla al lienzo. Conjunto de datos de Oracle Analytics Cloud.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.