Note :

Saisir des événements Oracle Cloud Guard dans Oracle Analytics Cloud

Présentation

Ce tutoriel explique comment transmettre des événements Oracle Cloud Guard à Oracle Autonomous JSON Database (AJD) et les saisir dans Oracle Analytics Cloud. Il y aura un tutoriel ultérieur qui analysera et affichera les événements de protection d'infrastructure en nuage dans Oracle Analytics Cloud.

Architecture de haut niveau

Architecture de haut niveau.

Objectifs

Préalables

Tâche 1 : Configurer Oracle Cloud Guard pour déclencher des événements en nuage

Configurer Oracle Cloud Guard pour répondre aux recettes du détecteur. Les règles de répondant doivent s'assurer que le statut de l'événement Oracle Cloud Guard est réglé à Activé, comme illustré dans l'image suivante.

Règles de répondant.

Tâche 2 : Créer des règles du service d'événements OCI pour détecter les problèmes Oracle Cloud Guard et appeler le service des fonctions pour OCI

  1. OCI Events Service vous permet de créer une automatisation en fonction des modifications d'état des ressources de la location. À l'aide d'événements, les équipes de développement peuvent répondre automatiquement lorsqu'une ressource change d'état.

    Pour obtenir les événements, naviguez jusqu'à Observabilité et gestion et cliquez sur Service d'événements. Créez une règle et configurez le type d'événement qui sera écrit dans la fonction, comme illustré dans l'image suivante.

    Définition de règles.

  2. Cliquez sur l'icône représentant des points de suspension (trois points verticaux) pour modifier les événements Oracle Cloud Guard et les envoyer à une fonction, comme illustré dans l'image suivante.

    Définition de paramètre. Ajoutez une action pour transférer des événements du service de protection d'infrastructure en nuage vers une fonction, comme illustré ci-dessous. Action d'événement. Configurer les types d'événement. Types d'événement.

Tâche 3 : Créer une fonction pour transmettre les événements à AJD

  1. Allez à la console OCI, naviguez jusqu'à Services de développement et cliquez sur Fonctions.

  2. Sélectionnez une application existante ou cliquez sur Créer une application. Créez un service des fonctions pour OCI dans votre application. Pour plus d'informations, voir Fonctions QuickStart sur Cloud Shell.

    Note : En supposant que vous avez terminé avec succès les préalables.

  3. Exécutez la commande suivante pour voir votre application dans la liste des applications.

    fn ls apps
    
  4. Il est recommandé de créer d'abord une fonction Python standard. La commande fn init – runtime oci-event-to-db générera un dossier nommé oci-event-to-db avec trois fichiers nommés func.py, func.yaml et requirements.txt.

  5. Une table AJD doit exister et être activée pour REST. Comme indiqué dans l'image ci-dessous. Reste activé.

  6. Mettez à jour le contenu du fichier func.py avec le code suivant.

    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. Mettez à jour le contenu du fichier func.yaml avec le code suivant.

    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. Mettez à jour le contenu du fichier requirements.txt avec le code suivant.

    Requests
    oci
    fdk
    
  9. Exécutez la commande suivante pour déployer votre fonction.

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

Tâche 4 : Aplanir la base de données à l'aide d'ORDS

  1. Une fois les événements Oracle Cloud Guard stockés dans AJD, recherchez les activités Oracle Cloud Guard dans la base de données en consultant la table Événements. Exécutez l'instruction SQL suivante.

    SELECT * FROM EVENTS
    
  2. Comme les événements Oracle Cloud Guard sont stockés au format JSON (Java Script Object Notation), ils doivent être aplatis ou convertis en format relationnel pour qu'Oracle Analytics Cloud puisse analyser les données.

    Pour aplanir la base de données, procédez comme suit :

    1. Créez un index sur la table Événements et exécutez l'énoncé SQL suivant pour l'aplanir.

      Create search index event_idx on event (event) for JSON parameters ('DATAGUIDE ON');
      
    2. Créez une vue.

      exec dbms_json.create_view_on_path('flat_event', 'event', 'event', '$’);
      
  3. Exécutez l'instruction SQL suivante pour vérifier les colonnes créées dans les étapes ci-dessus.

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

    Vous devriez voir les colonnes avec le type de données comme indiqué dans l'image suivante.

    Format relationnel.

Tâche 5 : Se connecter à Oracle Analytics Cloud

  1. Une fois la base de données convertie au format relationnel à partir de JSON, connectez-vous à Oracle Analytics Cloud. Allez à la console OCI et naviguez jusqu'à l'instance AJD. Cliquez sur la connexion à la base de données pour fournir les données d'identification et télécharger le portefeuille, comme illustré dans l'image suivante.

    Connexion AJD.

  2. Connectez-vous à Oracle Analytics Cloud, cliquez sur Créer une connexion, puis sur Oracle Autonomous Data Warehouse et sélectionnez le portefeuille qui a été téléchargé à l'étape 1.

    Types de connexion Oracle Analytics Cloud.

  3. Une fois la connexion établie, OAC l'affiche sous Connections comme suit. Liste des connexions Oracle Analytics Cloud.

  4. Cliquez deux fois sur la connexion pour créer un nouveau jeu de données dans OAC, développez le schéma et faites glisser la table vers le canevas. Jeu de données Oracle Analytics Cloud.

Remerciements

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation sur le produit, visitez Oracle Help Center.