Observação:

Capturar Eventos do Oracle Cloud Guard no Oracle Analytics Cloud

Introdução

Este tutorial explica como encaminhar eventos do Oracle Cloud Guard para o Oracle Autonomous JSON Database (AJD) e capturá-los no Oracle Analytics Cloud. Haverá um tutorial subsequente que analisará e exibirá eventos do Cloud Guard no Oracle Analytics Cloud.

Arquitetura de Alto Nível

Arquitetura de Alto Nível.

Objetivos

Pré-requisitos

Tarefa 1: Configurar o Oracle Cloud Guard para Disparar Eventos na Nuvem

Configure o Oracle Cloud Guard para responder às receitas do detector. As regras do respondedor devem garantir que o Status do evento do Oracle Cloud Guard esteja definido como Ativado, conforme mostrado na imagem a seguir.

Regras do Respondedor.

Tarefa 2: Criar Regras de Serviço do OCI Events para Detectar Problemas do Oracle Cloud Guard e Chamar Funções do OCI

  1. O OCI Events Service permite criar automação com base nas alterações de estado dos recursos em toda a tenancy. Usando eventos, ele permite que as equipes de desenvolvimento respondam automaticamente quando um recurso altera seu estado.

    Para obter os eventos, navegue até Observabilidade e Gerenciamento e clique em Events Service. Crie uma nova regra e configure o tipo de evento que será gravado na função, conforme mostrado na imagem a seguir.

    Definição de Regras.

  2. Clique no ícone de reticências (três pontos verticais) para editar os eventos do Oracle Cloud Guard e enviá-lo para uma função, conforme mostrado na imagem a seguir.

    Definição de Parâmetro. Adicione uma ação para encaminhar eventos do Cloud Guard a uma função, conforme mostrado abaixo. Ação do Evento. Configurar os tipos de evento. Tipos de Evento.

Tarefa 3: Criar uma Função para Encaminhar Eventos para AJD

  1. Vá para a Console do OCI, acesse Developer Services e clique em Functions.

  2. Selecione um aplicativo existente ou clique em Criar Aplicativo. Crie um novo OCI Functions em seu aplicativo. Para obter mais informações, consulte Funções QuickStart no Cloud Shell.

    Observação: supondo que você tenha concluído com sucesso os pré-requisitos.

  3. Execute o comando a seguir para ver seu aplicativo na lista de aplicativos.

    fn ls apps
    
  4. É recomendável criar uma função Python padronizada primeiro. O comando fn init – runtime oci-event-to-db gerará uma pasta chamada oci-event-to-db com três arquivos chamados func.py, func.yaml e requirements.txt.

  5. Uma tabela AJD deve existir e estar ativada para REST. Como mostrado na imagem abaixo. Descanso Ativado.

  6. Atualize o conteúdo do arquivo func.py com o código a seguir.

    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. Atualize o conteúdo do arquivo func.yaml com o código a seguir.

    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. Atualize o conteúdo do arquivo requirements.txt com o código a seguir.

    Requests
    oci
    fdk
    
  9. Execute o comando a seguir para implantar sua função.

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

Tarefa 4: Nivelar o Banco de Dados usando o ORDS

  1. Depois que os eventos do Oracle Cloud Guard forem armazenados no AJD, verifique as atividades do Oracle Cloud Guard no banco de dados verificando a tabela Eventos. execute a instrução SQL a seguir.

    SELECT * FROM EVENTS
    
  2. Como os eventos do Oracle Cloud Guard são armazenados no formato JSON (Java Script Object Notation), eles devem ser nivelados ou convertidos em formato relacional para que o Oracle Analytics Cloud analise os dados.

    Para nivelar o banco de dados, siga as etapas:

    1. Crie um índice na tabela Eventos e execute a instrução SQL a seguir para nivelá-la.

      Create search index event_idx on event (event) for JSON parameters ('DATAGUIDE ON');
      
    2. Crie uma view.

      exec dbms_json.create_view_on_path('flat_event', 'event', 'event', '$’);
      
  3. execute a instrução SQL a seguir para verificar as colunas criadas nas etapas acima.

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

    Você deverá ver as colunas juntamente com o tipo de dados, conforme mostrado na imagem a seguir.

    Formato Relacional.

Tarefa 5: Conectar-se ao Oracle Analytics Cloud

  1. Depois que o banco de dados for convertido em formato relacional de JSON, conecte-se ao Oracle Analytics Cloud. Vá para a console do OCI e navegue até a instância do AJD e, ao clicar na conexão do banco de dados, forneça as credenciais e faça download da wallet conforme mostrado na imagem a seguir.

    Conexão AJD.

  2. Faça log-in no Oracle Analytics Cloud, clique em Criar uma nova conexão e clique em Oracle Autonomous Data Warehouse e selecione a wallet que foi baixada na etapa 1.

    Tipos de Conexão do Oracle Analytics Cloud.

  3. Assim que a conexão for estabelecida, o OAC a exibirá em Conexões, como se segue. Lista de Conexões do Oracle Analytics Cloud.

  4. Clique duas vezes na conexão para criar um novo conjunto de dados no OAC, expandir no esquema e arrastar a tabela para a tela. Conjunto de dados do Oracle Analytics Cloud.

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.