Scenario : créer des dimensions pour une cible de surveillance

Voyez comment créer des dimensions pour une mesure personnalisée générée par un connecteur. Envoyez les données de journal depuis le service de journalisation vers des mesures (service de surveillance) à l'aide du centre de connecteurs.

Ce scénario comprend la création d'un connecteur pour générer une mesure personnalisée avec des dimensions référençant les données de journal. Utilisez ce connecteur pour déplacer les données de journal du service de journalisation vers le service de surveillance. Une fois les données déplacées, vous pouvez filtrer les nouvelles mesures personnalisées à l'aide des dimensions créées par le connecteur.

Politique GIA requise

Si vous êtes membre du groupe Administrateurs, vous disposez déjà de l'accès requis pour réaliser ce scénario. Sinon, vous devez avoir accès au service de surveillance .

Le flux de travail de création du connecteur inclut une politique par défaut, si nécessaire, afin de fournir l'autorisation d'écriture sur le service cible. Pour en savoir plus sur les politiques, voir Aperçu des politiques IAM.

Objectif

Cette rubrique présente l'objectif de ce scénario.

L'objectif de ce scénario est de filtrer les événements de mise à jour pour les seaux de stockage d'objets. Par exemple, rechercher les mises à jour qui ont modifié les seaux en octroyant l'accès public. La recherche des seaux publics peut aider à empêcher les fuites d'informations confidentielles. Outre le type d'accès public, ce scénario configure des filtres pour le nom du seau, le nom du compartiment, le domaine de disponibilité, le statut de contrôle des versions et une valeur statique.

Configuration pour ce scénario

Cette rubrique décrit les tâches de configuration pour ce scénario.

Ce scénario crée une mesure à partir d'un journal à l'aide du service de centre de connecteurs. La configuration de ce scénario comprend les tâches suivantes :

  • Créer un connecteur pour déplacer les journaux depuis le service de journalisation vers une mesure personnalisée avec des dimensions dans le service de surveillance.

    • Données de journal : Événement Seau - Mettre à jour dans les journaux de vérification (groupe de journaux _Audit)

      Note

      Bien que ce scénario utilise le groupe de journaux _Audit et l'événement de mise à jour de seau, vous pouvez utiliser la même approche avec n'importe quel journal disponible dans votre location.
    • Espace de noms de mesure : bucket_events

    • Nom de la mesure : update

    • Valeur statique buckets-from-connector (nom de la dimension : mytags)

    • Valeur extraite à l'aide des dimensions de chemin d'accès :

      Note

      Chaque nouvelle valeur de dimension crée un flux de mesures. Pour éviter de générer trop de flux de mesures uniques, ce qui pourrait entraîner des limitations, nous recommandons d'exclure des GUID ou des UUID (tels que les OCID de compartiment) des dimensions.

      Propriété de chemin (nom de la dimension) Valeur
      bucketName logContent.data.additionalDetails.bucketName
      compartmentName logContent.data.compartmentName
      availabilityDomain logContent.data.availabilityDomain
      publicAccessType logContent.data.additionalDetails.publicAccessType
      versioning logContent.data.additionalDetails.versioning
  • Filtrer les données déplacées avec les dimensions (valeurs statiques et extraites).

Vous pouvez effectuer ces tâches dans la console Oracle Cloud Infrastructure, l'interface de ligne de commande ou l'API.

Utilisation de la console

Cette rubrique décrit comment utiliser la console pour configurer le scénario.

Pour obtenir de l'aide concernant le dépannage, voir Dépannage des connecteurs et Dépannage des avis.

Tâche 1 : Créer le connecteur

Cette rubrique décrit comment utiliser la console pour créer un connecteur qui déplace les données d'un journal vers une mesure personnalisée avec des dimensions.

  1. Ouvrez le menu de navigation et sélectionnez Analyse et intelligence artificielle. Sous Messagerie, sélectionnez Centre de connecteurs.

  2. Sélectionnez le compartiment dans lequel vous souhaitez créer le connecteur de service.
  3. Sélectionnez Créer un connecteur.
  4. Dans la page Créer un connecteur, déplacez les événements de mise à jour pour les seaux de stockage d'objets vers une mesure personnalisée avec des dimensions personnalisées :

    • Entrez un nom de connecteur tel que "Seau - Mettre à jour". Évitez d'entrer des informations confidentielles.
    • Sélectionnez le compartiment de la ressource dans lequel vous voulez stocker le nouveau connecteur.
    • Sous Configurer le connecteur, sélectionnez les services source et cible pour le déplacement des données de journal vers une mesure :
      • Source : Journalisation
      • Cible : Surveillance
    • Sous Configurer la connexion source, sélectionnez Journaux de vérification :
      • Compartiment : Compartiment contenant les données de journal.
      • Groupe de journaux : _Audit
      • Journaux : (Laisser vide)
    • Sous Tâche de filtrage de journaux, sélectionnez l'événement de mise à jour pour les seaux de stockage d'objets :
      • Type de filtre : Type d'événement
      • Nom du service : Stockage d'objets
      • Type d'événement : Objet - Mettre à jour
    • Sélectionnez Configurer la tâche.
    • Sous Configurer la connexion cible, entrez l'espace de noms de mesure personnalisée et le nom de la mesure personnalisée à utiliser pour les données de journal filtrées :
      • Sélectionnez le compartiment dans lequel stocker les points de données de mesure correspondant à l'événement de mise à jour de seau.
      • Entrez un nouvel espace de noms de mesure : bucket_events.
        Note

        Lorsque vous entrez un nouvel espace de noms de mesure, appuyez sur ENTRÉE pour le soumettre.
      • Entrez une nouvelle mesure : update

      Créez ensuite des dimensions personnalisées pour marquer les données de journal avec la valeur statique "buckets-from-connector" et pour extraire le nom du seau, le nom du compartiment, l'OCID du compartiment, le domaine de disponibilité, le type d'accès public et le statut de contrôle des versions.

    • Sélectionnez Ajouter des dimensions.

      Le panneau Ajouter des dimensions s'affiche.

    • Extrayez le nom du seau des données de journal (nom de la dimension bucketName) :
      1. Sous Sélectionner un chemin, parcourez les données de journal disponibles pour le chemin bucketName.

        Les six dernières rangées de données de journal sont extraites du journal spécifié sous Configurer la source.

        Exemple de fragment de données de journal montrant le chemin bucketName :

        {
          "datetime": 1636594090595,
          "logContent": {
            "data": {
              "additionalDetails": {
                "bucketName": "bucket-20210722-1148",
        
      2. Cochez la case correspondant au chemin souhaité.

        Note

        Si aucune données de journal n'est disponible, vous pouvez entrer manuellement une valeur de chemin avec un nom de dimension personnalisé sous Modifier le chemin. Le chemin doit commencer par logContent et utiliser la notation par points (.) ou l'index ([]). Les points et l'index sont les seuls sélecteurs JMESPath pris en charge. Par exemple :
        • logContent.data (notation avec point)
        • logContent.data[0].content (notation d'index)

        Exemple de chemin pour l'événement de mise à jour de seau, avec notation par points :

        logContent.data.additionalDetails.bucketName

        Pour plus d'informations sur la notation de chemin valide, voir JmesPathDimensionValue.

        L'image suivante présente un exemple de chemin sélectionné (bucketName) et de chemin non sélectionné (eTag) :

        Chemins sélectionné et non sélectionné

        Sous Modifier le chemin, les champs suivants sont alimentés automatiquement à partir du chemin sélectionné . Vous pouvez également modifier le nom de la dimension par défaut.

        Nom de la dimension Valeur
        bucketName logContent.data.additionalDetails.bucketName
    • Répétez l'extraction pour chaque valeur supplémentaire à utiliser comme dimension (filtre) : Sous Sélectionner un chemin, cochez la case du chemin correspondant au chemin nom de la dimension dans le tableau suivant.

      La valeur est automatiquement alimentée à partir du chemin sélectionné. Vous pouvez également modifier le nom de la dimension par défaut.

      Nom de la dimension Valeur
      compartmentName logContent.data.compartmentName
      availabilityDomain logContent.data.availabilityDomain
      publicAccessType logContent.data.additionalDetails.publicAccessType
      versioning logContent.data.additionalDetails.versioning
    • Marquez les données de journal avec la valeur statique "buckets-from-connector" (nom de dimension "mytags") : Sous Valeurs statiques, entrez les informations suivantes :
      • Nom de la dimension : mytags
      • Valeur : buckets-from-connector
  5. Sélectionnez enregistrer les modifications.

    Le panneau Ajouter des dimensions est fermé. La zone cible est modifiée dans la page Créer un connecteur.

  6. Si vous êtes invité à créer une politique (obligatoire pour créer ou mettre à jour un connecteur), sélectionnez Créer.
  7. Sélectionnez Créer.

    Le nouveau connecteur commence immédiatement à déplacer les données de journal vers la mesure personnalisée update avec les dimensions spécifiées.

    Ensuite, filtrez les données déplacées à l'aide des dimensions.

Tâche 2 : Filtrer les données déplacées

Cette rubrique décrit comment utiliser la console pour filtrer les données déplacées d'un journal vers une mesure personnalisée avec des dimensions.

  1. Ouvrez le menu de navigation et sélectionnez Observabilité et gestion. Sous Surveillance, sélectionnez Explorateur de mesures.

  2. Dans la page Explorateur de mesures, remplissez les champs pour une nouvelle interrogation.
    • Compartiment : Compartiment contenant la mesure.
    • Espace de noms de mesurebucket_events
    • Nom de la mesure : update
    • Intervalle : 1m

    • Statistique : Nombre

    • Dimensions Mesure : Ajoutez les dimensions suivantes.
      Nom de la dimension Valeur de dimension
      mytags buckets-from-connector
      bucketName bucket-20210722-1148
      compartmentName development
      availabilityDomain PHX-AD-3
      publicAccessType ObjectRead
      versioning Enabled
  3. Sélectionnez Mettre à jour le graphique.

    Le graphique affiche les données de mesure filtrées par dimension.

    Félicitations! Vous filtrez maintenant les données de journal que le connecteur a déplacées vers une mesure.

Utilisation de l'interface de ligne de commande

Cette rubrique décrit comment utiliser l'interface de ligne de commande pour créer le connecteur et filtrer les données déplacées.

Pour plus d'informations sur l'utilisation de l'API et sur les demandes de signature, voir la documentation de l'API REST et Données d'identification de sécurité. Pour plus d'informations sur les trousses SDK, voir Trousses SDK et interface de ligne de commande.

  1. Définissez la source du journal pour le connecteur : Enregistrez un fichier nommé source.json.

    Exemple de fichier source.json
    {
      "kind": "logging",
      "logSources": [
        {
          "compartmentId": "<compartment_OCID>",
            "logGroupId": "_Audit",
            "logId": null
        }
      ]
    }
  2. Définissez la cible (mesure et dimensions) pour le connecteur : Enregistrez un fichier nommé target.json.

    Exemple de fichier target.json
    {
      "kind": "monitoring",
      "compartmentId": "<compartment_OCID>",
      "metricNamespace": "bucket_events",
      "metric": "update",
      "dimensions": [
        {"name": "mytags", "dimensionValue": {"kind": "static", "value": "buckets-from-connector"}},
        {"name": "bucketName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.bucketName"}},
        {"name": "compartmentName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.compartmentName"}},
        {"name": "availabilityDomain", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.availabilityDomain"}},
        {"name": "publicAccessType", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.publicAccessType"}},
        {"name": "versioning", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.versioning"}}
      ]
    }
  3. Créez un connecteur : Ouvrez une invite de commande et exécutez la commande oci sch service-connector create :

    Exemple de commande pour créer un connecteur
    oci sch service-connector create
     --compartment-id <compartment_OCID>
     --display-name "Bucket - Update"
     --source file://source.json
     --target file://target.json
  4. Interrogez les données de mesure à l'aide des dimensions personnalisées : Ouvrez une invite de commande et exécutez la commande oci monitoring metric-data summarize-metrics-data :

    Exemple de commande pour interroger les données de mesure à l'aide de dimensions personnalisées
    oci monitoring metric-data summarize-metrics-data
     --compartment-id <compartment_OCID>
     --namespace bucket_events
     --query-text update[1m]{mytags = "buckets-from-connector", bucketName = "bucket-20210722-1148", coompartmentName = "development", availabilityDomain = "PHX-AD-3", publicAccessType = "ObjectRead", versioning = "Enabled"}.count()

Pour obtenir de l'aide concernant le dépannage, voir Dépannage des connecteurs et Dépannage des avis.

Utilisation de l'API

Cette rubrique décrit comment utiliser l'API pour créer le connecteur et filtrer les données déplacées.

Pour plus d'informations sur l'utilisation de l'API et sur les demandes de signature, voir la documentation de l'API REST et Données d'identification de sécurité. Pour plus d'informations sur les trousses SDK, voir Trousses SDK et interface de ligne de commande.

Utilisez les opérations suivantes :

  1. CreateServiceConnector : Créez un connecteur.

    Exemple de demande CreateServiceConnector
    POST /20200909/serviceConnectors
    Host: service-connector-hub.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "compartmentId": "<compartment_OCID>",
      "displayName": "Bucket - Update",
      "source": {
        "kind": "logging",
        "logSources": [
          {
            "compartmentId": "<compartment_OCID>",
            "logGroupId": "_Audit",
            "logId": null
          }
        ]
      },
      "target": {
        "compartmentId": "<compartment_OCID>",
        "dimensions": [
          {"name": "mytags", "dimensionValue": {"kind": "static", "value": "buckets-from-connector"}},
          {"name": "bucketName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.bucketName"}},
          {"name": "compartmentName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.compartmentName"}},
          {"name": "availabilityDomain", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.availabilityDomain"}},
          {"name": "publicAccessType", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.publicAccessType"}},
          {"name": "versioning", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.versioning"}}
        ]
        "kind": "monitoring",
        "metric": "update",
        "metricNamespace": "bucket_events"
      }
    }
  2. SummarizeMetricsData : Interrogez les données de mesure par dimension.

    Exemple de demande SummarizeMetricsData
    POST /20180401/metrics/actions/summarizeMetricsData?compartmentId=<compartment_OCID>
    Host: telemetry.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "namespace": "bucket_events",
      "query": "update[1m]{mytags = "buckets-from-connector", bucketName = "bucket-20210722-1148", coompartmentName = "development", availabilityDomain = "PHX-AD-3", publicAccessType = "ObjectRead", versioning = "Enabled"}.count()"
    }

Pour obtenir de l'aide concernant le dépannage, voir Dépannage des connecteurs et Dépannage des avis.