Condividi tramite


Configurare una tabella con il piano ausiliario nell'area di lavoro Log Analytics

Il piano di tabella ausiliario consente di inserire e conservare i dati nell'area di lavoro Log Analytics a basso costo.

Ecco un video che illustra alcuni degli usi e dei vantaggi del piano di tabella ausiliario:

I log di Monitoraggio di Azure supportano attualmente il piano di tabella ausiliario per le tabelle personalizzate basate su DCR (regola di raccolta dati) a cui si inviano dati raccolti tramite l'agente di Monitoraggio di Azure o l'API di inserimento log.

Questo articolo illustra come creare una nuova tabella personalizzata con il piano ausiliario nell'area di lavoro Log Analytics e configurare una regola di raccolta dati che invia dati a questa tabella. Per altre informazioni sui concetti relativi al piano ausiliario, vedere Piani di tabella dei log di Monitoraggio di Azure.

Prerequisiti

Per creare una tabella personalizzata e raccogliere i dati di log, è necessario:

  • Un'area di lavoro Log Analytics in cui si dispone almeno dei diritti di collaboratore.
  • Un endpoint di raccolta dati (DCE).
  • La configurazione di una tabella con il piano ausiliario è supportata solo per le tabelle nuove. Dopo aver creato una tabella con un piano ausiliario, non è possibile cambiare il piano della tabella.

Annotazioni

I log ausiliari sono generalmente disponibili (GA) per tutte le aree del cloud pubblico, ad eccezione del Qatar Central, e non disponibili per Azure Government o i cloud cinesi.

Creare una tabella personalizzata con il piano ausiliario

Per creare una tabella personalizzata, chiamare l'API Tables - Create usando questo comando:

PUT https://management.azure.com/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.OperationalInsights/workspaces/{workspace_name}/tables/{table name_CL}?api-version={api-version}

Specificare questo payload come corpo della richiesta. Aggiornare il nome della tabella e modificare le colonne in base allo schema della tabella. Questo esempio elenca tutti i tipi di dati di colonna supportati.

 {
    "properties": {
        "schema": {
            "name": "table_name_CL",
            "columns": [
                {"name": "TimeGenerated",
                 "type": "datetime"},
                {"name": "StringProperty",
                 "type": "string"},
                {"name": "IntProperty",
                 "type": "int"},
                {"name": "LongProperty",
                 "type": "long"},
                {"name": "RealProperty",
                 "type": "real"},
                {"name": "BooleanProperty",
                 "type": "boolean"},
                {"name": "GuidProperty",
                 "type": "guid"},
                {"name": "DateTimeProperty",
                 "type": "datetime"}
            ]
        },
        "totalRetentionInDays": 365,
        "plan": "Auxiliary"
    }
}

Annotazioni

  • La TimeGenerated colonna supporta solo il formato ISO 8601 con 6 cifre decimali per la precisione (nanosecondi). Per altre informazioni, vedere Formato datetime ISO 8601 supportato.
  • Le tabelle con il piano ausiliario non supportano colonne con dati dinamici.

Inviare dati a una tabella con il piano ausiliario

Esistono attualmente due modi per inserire dati in una tabella personalizzata con il piano ausiliario.

  • Usare l'agente di Monitoraggio di Azure
  • Usare l'API di inserimento dei log

Usare l'AMA

Se si usa questo metodo, la tabella personalizzata deve avere solo due colonne , TimeGenerated (tipo datetime) e RawData (di tipo string). La regola di raccolta dati invia l'intera voce di log raccolta alla colonna RawData e i log di Monitoraggio di Azure popolano automaticamente la colonna TimeGenerated con l'ora di inserimento del log.

Per altre informazioni su come usare l'ama, vedere gli articoli seguenti:

Usare l'API di inserimento dei log

Questo metodo segue attentamente i passaggi descritti in Esercitazione: Inviare dati a Monitoraggio di Azure usando l'API di inserimento dei log.

  1. Creare una tabella personalizzata con il piano ausiliario come descritto in questo articolo.
  2. Creare un'applicazione Microsoft Entra.
  3. Creare una regola di raccolta dati. Ecco un modello ARM di esempio per kind: Direct. Questo tipo di DCR non richiede un DCE poiché include un logsIngestion endpoint.
    • myworkspace è il nome dell'area di lavoro Log Analytics.

    • tablename_CL è il nome della tabella.

    • columns include le stesse colonne impostate nella creazione della tabella.

      {
          "$schema": "https://schema.management.azure.com/schemas/2019-08-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
              "dataCollectionRuleName": {
                  "type": "string",
                  "metadata": {"description": "Specifies the name of the data collection rule to create."}
              },
              "___location": {
                  "type": "string",
                  "metadata": {"description": "Specifies the region in which to create the data collection rule. The must be the same region as the destination Log Analytics workspace."}
              },
              "workspaceResourceId": {
                  "type": "string",
                  "metadata": {"description": "The Azure resource ID of the Log Analytics workspace in which you created a custom table with the Auxiliary plan."}
              }
          },
          "resources": [
              {
                  "type": "Microsoft.Insights/dataCollectionRules",
                  "name": "[parameters('dataCollectionRuleName')]",
                  "___location": "[parameters('___location')]",
                  "apiVersion": "2023-03-11",
                  "kind": "Direct",
                  "properties": {
                      "streamDeclarations": {
                          "Custom-tablename_CL": {
                              "columns": [
                                  {"name": "TimeGenerated",
                                   "type": "datetime"},
                                  {"name": "StringProperty",
                                   "type": "string"},
                                  {"name": "IntProperty",
                                   "type": "int"},
                                  {"name": "LongProperty",
                                   "type": "long"},
                                  {"name": "RealProperty",
                                   "type": "real"},
                                  {"name": "BooleanProperty",
                                   "type": "boolean"},
                                  {"name": "GuidProperty",
                                   "type": "guid"},
                                  {"name": "DateTimeProperty",
                                   "type": "datetime"}]
                                      }
                                  },
                      "destinations": {
                          "logAnalytics": [
                              {"workspaceResourceId": "[parameters('workspaceResourceId')]",
                               "name": "myworkspace"}]
                      },
                      "dataFlows": [
                          {
                              "streams": ["Custom-table_name"],
                              "transformKql": "source",
                              "destinations": ["myworkspace"],
                              "outputStream": "Custom-tablename-CL"
                          }]
                  }
              }],
          "outputs": {
              "dataCollectionRuleId": {
                  "type": "string",
                  "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
              }
          }
      }
      
  4. Concedere all'applicazione le autorizzazioni per l'uso della DCR.
  5. Inviare dati usando il codice di esempio.

Avvertimento

Durante l'inserimento dei log nel livello Ausiliario di Monitoraggio di Azure, evitare di inviare un singolo payload contenente timestamp TimeGenerated che superano i 30 minuti nella stessa chiamata API. Questa chiamata API potrebbe causare il codice RecordsTimeRangeIsMoreThan30Minutesdi errore di inserimento seguente. Si tratta di una limitazione nota che viene rimossa.

Questa restrizione non si applica ai log ausiliari che usano trasformazioni.