Scenario: creazione di dimensioni per una destinazione di monitoraggio

Informazioni su come creare dimensioni per una metrica personalizzata generata da un connettore. Inviare i dati di log dal servizio di log alle metriche (servizio di monitoraggio) mediante Connector Hub.

Questo scenario prevede la creazione di un connettore per generare una metrica personalizzata con dimensioni che fanno riferimento ai dati di log. Utilizzare questo connettore per spostare i dati di log dal log al monitoraggio. Dopo lo spostamento dei dati, è possibile filtrare le nuove metriche personalizzate utilizzando le dimensioni create dal connettore.

Criteri IAM necessari

Se si è membri del gruppo Administrators, si dispone già dell'accesso necessario per completare questo scenario. In caso contrario, è necessario accedere a Monitoraggio.

Il workflow per la creazione del connettore include un criterio predefinito quando necessario per fornire l'autorizzazione per la scrittura nel servizio di destinazione. Per informazioni nuove sui criteri, vedere Panoramica dei criteri IAM.

Obiettivo

Questo argomento descrive l'obiettivo di questo scenario.

L'obiettivo di questo scenario è filtrare gli eventi di aggiornamento per i bucket di storage degli oggetti. Ad esempio, trovare gli aggiornamenti che hanno modificato i bucket in accesso pubblico. La ricerca di bucket pubblici può aiutare a evitare la perdita di segreti. Oltre al tipo di accesso pubblico, questo scenario imposta i filtri per il nome del bucket, il nome del compartimento, il dominio di disponibilità, lo stato di controllo delle versioni e un valore statico.

Impostazione di questo scenario

Questo argomento descrive i task coinvolti nell'impostazione di questo scenario.

Questo scenario crea una metrica da un log utilizzando il servizio Hub connettore. L'impostazione di questo scenario comporta i task riportati di seguito.

  • Creare un connettore per spostare i log da Log a una metrica personalizzata con dimensioni in Monitoraggio.

    • Dati di log: evento Bucket - aggiornamento da log di controllo (gruppo di log _Audit)

      Nota

      Sebbene questo scenario utilizzi il gruppo di log _Audit e l'evento di aggiornamento del bucket, è possibile utilizzare lo stesso approccio con qualsiasi log disponibile nella tenancy.
    • Spazio di nomi metrica: bucket_events

    • Nome metrica: update

    • Valore statico buckets-from-connector (nome dimensione: mytags)

    • Valore estratto utilizzando le dimensioni percorso:

      Nota

      Ogni nuovo valore di dimensione crea un nuovo flusso di metriche. Per evitare di generare troppi flussi di metriche univoci, che potrebbero potenzialmente causare limitazioni, si consiglia di escludere GUID o UUID (ad esempio gli OCID del compartimento) dalle dimensioni.

      Proprietà percorso (nome dimensione) Valore
      bucketName logContent.data.additionalDetails.bucketName
      compartmentName logContent.data.compartmentName
      availabilityDomain logContent.data.availabilityDomain
      publicAccessType logContent.data.additionalDetails.publicAccessType
      versioning logContent.data.additionalDetails.versioning
  • Filtrare i dati spostati con le dimensioni (valori statici ed estratti).

Puoi completare questi task nella console, nell'interfaccia CLI o nell'API di Oracle Cloud Infrastructure.

Utilizzo di Console

Questo argomento descrive come utilizzare la console per impostare lo scenario.

Per assistenza nella risoluzione dei problemi, vedere Risoluzione dei problemi dei connettori e Risoluzione dei problemi delle notifiche.

Task 1: Creare il connettore

Questo argomento descrive come utilizzare la console per creare un connettore che sposta i dati da un log a una metrica personalizzata con dimensioni.

  1. Aprire il menu di navigazione e selezionare Analytics e AI. In Messaggistica, selezionare Hub connettore.

  2. Scegliere il compartimento in cui si desidera creare il connettore servizio.
  3. Selezionare Crea connettore.
  4. Nella pagina Crea connettore spostare gli eventi di aggiornamento per i bucket di storage degli oggetti in una metrica personalizzata con dimensioni personalizzate:

    • Digitare il nome del connettore, ad esempio "Bucket - Aggiorna". Evitare di inserire informazioni riservate.
    • Selezionare il compartimento delle risorse in cui si desidera memorizzare il nuovo connettore.
    • In Configura connettore, selezionare i servizi di origine e di destinazione per spostare i dati di log in una metrica:
      • Origine: log
      • Destinazione: monitoraggio
    • In Configura connessione di origine selezionare log di audit:
      • Compartimento: compartimento contenente i dati del log.
      • Gruppo di log: _Audit
      • Log: (lasciare vuoto)
    • In Task filtro di log selezionare l'evento di aggiornamento per i bucket di storage degli oggetti:
      • Tipo di filtro: tipo di evento
      • Nome servizio: storage degli oggetti
      • Tipo di evento: Oggetto - Aggiorna
    • Saltare Configura task.
    • In Configura connessione di destinazione immettere lo spazio di nomi delle metriche personalizzate e il nome della metrica personalizzata che si desidera utilizzare per i dati di log filtrati.
      • Selezionare il compartimento in cui si desidera memorizzare i datapoint delle metriche corrispondenti all'evento di aggiornamento del bucket.
      • Immettere un nuovo spazio di nomi metrica : bucket_events.
        Nota

        Quando si digita un nuovo spazio di nomi delle metriche, premere INVIO per sottometterlo.
      • Inserire una nuova metrica : aggiornamento

      Successivamente, crea dimensioni personalizzate per contrassegnare i dati di log con il valore statico "buckets-from-connector" ed estrarre il nome del bucket, il nome del compartimento, l'OCID del compartimento, il dominio di disponibilità, il tipo di accesso pubblico e lo stato del controllo delle versioni.

    • Selezionare Aggiungi dimensioni.

      Viene visualizzato il pannello Aggiungi dimensioni.

    • Estrarre il nome del bucket dai dati di log (nome dimensione bucketName):
      1. In Seleziona percorso, sfogliare i dati di log disponibili per il percorso bucketName.

        Le sei righe più recenti dei dati di log vengono recuperate dal log specificato in Configura origine.

        Esempio di frammento di dati di log che mostra il percorso bucketName:

        {
          "datetime": 1636594090595,
          "logContent": {
            "data": {
              "additionalDetails": {
                "bucketName": "bucket-20210722-1148",
        
      2. Selezionare la casella di controllo per il percorso desiderato.

        Nota

        Se non sono disponibili dati di log, è possibile immettere manualmente un valore di percorso con un nome dimensione personalizzato in Modifica percorso. Il percorso deve iniziare con logContent, utilizzando la notazione punto (.) o indice ([]). Il punto e l'indice sono gli unici selettori JMESPath supportati. Ad esempio:
        • logContent.data (notazione punto)
        • logContent.data[0].content (notazione dell'indice)

        Percorso di esempio per l'evento di aggiornamento del bucket, con la notazione punto:

        logContent.data.additionalDetails.bucketName

        Per ulteriori informazioni sulla notazione di percorso valida, vedere JmesPathDimensionValue.

        L'immagine seguente mostra un esempio di percorso selezionato (bucketName) e di percorso non selezionato (eTag):

        Percorsi selezionati e non selezionati

        In Modifica percorso, i campi riportati di seguito vengono popolati automaticamente dal percorso selezionato. Facoltativamente, è possibile modificare il nome dimensione predefinito.

        Nome dimensione Valore
        bucketName logContent.data.additionalDetails.bucketName
    • Ripetere l'estrazione per ogni valore aggiuntivo che si desidera utilizzare come dimensione (filtro): in Seleziona percorso, selezionare la casella di controllo per il percorso corrispondente al nome dimensione nella tabella seguente.

      Il valore viene popolato automaticamente dal percorso selezionato. Facoltativamente, è possibile modificare il nome dimensione predefinito.

      Nome dimensione Valore
      compartmentName logContent.data.compartmentName
      availabilityDomain logContent.data.availabilityDomain
      publicAccessType logContent.data.additionalDetails.publicAccessType
      versioning logContent.data.additionalDetails.versioning
    • Contrassegnare i dati di log con il valore statico "buckets-from-connector" (nome dimensione "mytags"): in Valori statici, immettere quanto segue:
      • Nome dimensione: mytags
      • Valore: bucket-from-connector
  5. Selezionare Salva modifiche.

    Il pannello Aggiungi dimensioni è chiuso. Lo stato attivo viene modificato nella pagina Crea connettore.

  6. Se viene richiesto di creare un criterio (necessario per l'accesso per creare o aggiornare un connettore), selezionare Crea.
  7. Selezionare Crea.

    Il nuovo connettore inizia immediatamente a spostare i dati di log nella metrica personalizzata update con le dimensioni specificate.

    Successivamente, filtrare i dati spostati utilizzando le dimensioni.

Task 2: filtrare i dati spostati

Questo argomento descrive come utilizzare la console per filtrare i dati spostati da un log a una metrica personalizzata con dimensioni.

  1. Aprire il menu di navigazione e selezionare Osservabilità e gestione. In Monitoraggio, selezionare Explorer metriche.

  2. Nella pagina Explorer metriche, compilare i campi per una nuova query.
    • Compartimento: compartimento che contiene la metrica.
    • Spazio di nomi metrica: bucket_events
    • Nome metrica: aggiornamento
    • Intervallo: 1 m

    • Statistiche: Conteggio

    • Dimensioni metrica: aggiungere le seguenti dimensioni.
      Nome dimensione Valore dimensione
      mytags bucket dal connettore
      bucketName secchio-20210722-1148
      compartmentName sviluppo
      availabilityDomain PHX-AD-3
      publicAccessType ObjectRead
      versioning Abilitato
  3. Selezionare Aggiorna grafico.

    Il grafico mostra i dati delle metriche filtrati per dimensione.

    Complimenti. Si stanno filtrando i dati di log spostati dal connettore in una metrica.

Uso dell'interfaccia CLI

In questo argomento viene descritto come utilizzare l'interfaccia CLI per creare il connettore e filtrare i dati spostati.

Per informazioni sull'uso dell'API e delle richieste di firma, consulta la documentazione dell'API REST e le credenziali di sicurezza. Per informazioni sugli SDK, vedere SDK e l'interfaccia CLI.

  1. Definire l'origine log per il connettore: salvare un file denominato source.json.

    File source.json di esempio
    {
      "kind": "logging",
      "logSources": [
        {
          "compartmentId": "<compartment_OCID>",
            "logGroupId": "_Audit",
            "logId": null
        }
      ]
    }
  2. Definire la destinazione (metrica e dimensioni) per il connettore: salvare un file denominato target.json.

    File target.json di esempio
    {
      "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. Creare un connettore: aprire un prompt dei comandi ed eseguire il comando oci sch service-connector create:

    Comando di esempio per la creazione di un connettore
    oci sch service-connector create
     --compartment-id <compartment_OCID>
     --display-name "Bucket - Update"
     --source file://source.json
     --target file://target.json
  4. Eseguire una query sui dati della metrica utilizzando le dimensioni personalizzate: aprire un prompt dei comandi ed eseguire il comando oci monitoring metric-data summarize-metrics-data:

    Comando di esempio per l'esecuzione di query sui dati delle metriche utilizzando dimensioni personalizzate
    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()

Per assistenza nella risoluzione dei problemi, vedere Risoluzione dei problemi dei connettori e Risoluzione dei problemi delle notifiche.

Uso dell'API

Questo argomento descrive come utilizzare l'interfaccia API per creare il connettore e filtrare i dati spostati.

Per informazioni sull'uso dell'API e delle richieste di firma, consulta la documentazione dell'API REST e le credenziali di sicurezza. Per informazioni sugli SDK, vedere SDK e l'interfaccia CLI.

Utilizzare le operazioni descritte di seguito.

  1. CreateServiceConnector: crea un connettore.

    Esempio di richiesta 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: esegue una query sui dati della metrica in base alle dimensioni.

    Esempio di richiesta 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()"
    }

Per assistenza nella risoluzione dei problemi, vedere Risoluzione dei problemi dei connettori e Risoluzione dei problemi delle notifiche.