Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por otros específicos de su entorno en la nube.
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.
-
Oracle Cloud Guard: Oracle Cloud Guard es un servicio nativo de Oracle Cloud Infrastructure (OCI) que ayuda a los clientes a supervisar y detectar recursos entre regiones, permite mantener una estrategia de seguridad en la nube para mantener seguros los arrendamientos de OCI. Para obtener más información, consulte Oracle Cloud Guard.
-
Oracle Analytics Cloud: Oracle Analytics Cloud es una plataforma de análisis y Business Intelligence (BI) totalmente gestionada y basada en la nube diseñada como una plataforma completa que permite a los usuarios profesionales y analistas descubrir estadísticas y tendencias para tomar decisiones basadas en datos. Para obtener más información, consulte Oracle Analytics Cloud.
Arquitectura de Alto Nivel
Objetivos
- Capture los eventos de Oracle Cloud Guard en Oracle Analytics Cloud.
Requisitos
-
Conocimientos avanzados de OCI, OCI Events Service y Oracle Cloud Guard.
-
Aprovisione Oracle Autonomous Database y el conocimiento de Oracle REST Data Services (ORDS).
-
Conocimientos básicos de OCI Functions y seguridad.
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.
Tarea 2: Creación de reglas del servicio OCI Events para detectar problemas de Oracle Cloud Guard e invocar OCI Functions
-
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.
-
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.
Agregue una acción para reenviar eventos de Cloud Guard a una función como se muestra a continuación.
Configurar los tipos de eventos.
Tarea 3: Creación de una función para reenviar eventos a AJD
-
Vaya a la consola de OCI, vaya a Developer Services y haga clic en Functions.
-
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.
-
Ejecute el siguiente comando para ver la aplicación en la lista de aplicaciones.
fn ls apps
-
Se recomienda crear primero una función Python de texto fijo. El comando
fn init – runtime oci-event-to-db
generará una carpeta denominadaoci-event-to-db
con tres archivos denominadosfunc.py
,func.yaml
yrequirements.txt
. -
Debe existir una tabla AJD y estar activada para REST. Como se muestra en la imagen de abajo.
-
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"} )
-
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
-
Actualice el contenido del archivo
requirements.txt
con el siguiente código.Requests oci fdk
-
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
-
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
-
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:
-
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');
-
Cree una vista.
exec dbms_json.create_view_on_path('flat_event', 'event', 'event', '$’);
-
-
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.
Tarea 5: Conexión a Oracle Analytics Cloud
-
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.
-
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.
-
Una vez establecida la conexión, OAC la mostrará en Connections de la siguiente manera.
-
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.
Agradecimientos
-
Autores: Murtuza Madarwala (ingeniero de soluciones en la nube), Phil Dolbow (ingeniero de soluciones en la nube)
-
Colaborador - Kevin Colwell (Ingeniero de soluciones en la nube)
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.
Capture Oracle Cloud Guard Events into Oracle Analytics Cloud
G27469-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.