Den här artikeln beskriver hur du skapar en anpassad tabell med hjälp av en exempelregel för datainsamling (DCR) och hur du hanterar tabellscheman med anpassade kolumner.
Datainsamlingsregler (DCR) styr hur Azure Monitor samlar in data. De låter dig filtrera och transformera loggdata innan de når en Azure eller anpassad tabell.
Anpassade kolumner utökar schemat för en tabell för att anpassa ändringar i datakällan eller organisationens analyskrav. När du uppdaterar ett tabellschema uppdaterar du alla domänkontrollanter som skickar data till tabellen.
Förutsättningar
| Åtgärd |
Behörighet krävs |
| Hantera en tabell |
Microsoft.OperationalInsights/workspaces/* behörighet på Log Analytics-arbetsytans nivå eller högre. Till exempel, som ges av den privilegierade inbyggda rollen Log Analytics-deltagare. |
Om du vill mata in data i tabellen kan du behöva följande objekt:
- Datainsamlingsslutpunkt (DCE). Mer information finns i DCE.
- Ett exempel på minst en post med källdata i en JSON-fil. Använd det här exemplet för att skapa anpassade tabeller i portalen, till exempel när du samlar in text och JSON-datakällor från virtuella datorer.
Tänk på följande ytterligare krav:
- Alla tabeller i en Log Analytics arbetsyta måste ha en
TimeGenerated kolumn som identifierar postens inmatningstid. Om kolumnen saknas lägger Azure Monitor automatiskt till den i transformeringen i din DCR för tabellen. Mer information finns i datetime-format som stöds.
- Auxiliary-/Lake-tabellplaner stöder endast kolumnen
TimeGenerated i ISO 8601-format med sex decimalers precision (mikrosekunder). Mer information finns i ISO 8601 datetime-format som stöds.
Skapa en anpassad tabell
Azure-tabeller har fördefinierade scheman. Om du vill lagra loggdata i ett annat schema använder du datainsamlingsregler för att definiera hur du samlar in, transformerar och skickar data till en anpassad tabell på Log Analytics-arbetsytan. När du skapar en anpassad tabell väljer du en tabellplan (Analytics (standard), Basic eller Auxiliary/Lake) baserat på dina dataanvändnings- och kostnadskrav.
Anpassade tabeller har suffixet _CL; till exempel tablename_CL. Azure-portalen lägger automatiskt till _CL-suffixet i tabellnamnet. När du skapar en anpassad tabell med hjälp av en annan metod måste du lägga till _CL-suffixet själv.
Tablename_CL i egenskaperna för DataFlows Streams i dina datainsamlingsregler måste matcha tablename_CL namnet i Log Analytics-arbetsytan.
Varning
Azure använder tabellnamn för fakturering, så inkludera inte känslig information i namnet.
Så här skapar du en anpassad tabell med hjälp av Azure-portalen:
På menyn Log Analytics-arbetsytor väljer du Tabeller.
Välj Skapa.
Ange ett namn och, om du vill, en beskrivning för tabellen. Du behöver inte lägga till suffixet _CL i den anpassade tabellens namn. Portalen lägger automatiskt till suffixet till det namn som du anger.
Under Tabellplan väljer du Analys (standard), Basic eller Auxiliary/Lake.
Välj en befintlig datainsamlingsregel i listrutan Datainsamlingsregel eller välj Skapa en ny datainsamlingsregel och ange regeln Prenumeration, Resursgrupp och Namn för den nya datainsamlingsregeln.
Välj en datainsamlingsslutpunkt och välj Nästa. Om du har valt en DCR som redan är associerad med en DCE är den här listrutan inte tillgänglig.
Välj Bläddra efter filer och leta upp JSON-filen med exempeldata för den nya tabellen. Följande skärmbild använder en JSON-exempelfil från skriptet i Självstudie: Skicka data till Azure Monitor loggar.
Om exempeldata inte innehåller en TimeGenerated kolumn får du ett meddelande om att portalen skapar en transformering med den här kolumnen.
Om du vill transformera loggdata före inmatning till tabellen:
Välj Transformeringsredigeraren.
Med transformeringsredigeraren kan du skapa en transformering för inkommande dataström. Omvandlingen är en KQL-fråga (Kusto Query Language) som körs mot varje inkommande post. Azure Monitor-loggar lagrar resultatet av frågan i måltabellen.
Välj Kör för att visa resultatet.
Välj Använd för att spara omvandlingen och visa schemat för den nya tabellen. Klicka på Nästa.
Kontrollera den slutliga informationen och välj Skapa för att spara den anpassade loggen.
Följande Azure CLI exempel använder kommandona az monitor log-analytics workspace table create ochaz monitor data-collection rule create. I exemplet med hjälpplan används az rest för att anropa åtgärden TABLES REST API.
Skapa den anpassade tabellen. I det här exemplet skapas en anpassad tabell med planen Analytics . Sedan skapas en DCR som definierar hur du samlar in data från datakällan och skickar dem till den anpassade tabellen.
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>_CL"
# Create the custom table
az monitor log-analytics workspace table create \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--plan Analytics \
--columns TimeGenerated=datetime RawData=string
Om du vill skapa en anpassad tabell med Auxiliary planen använder du az rest kommandot för att skicka en PUT begäran till REST-API:et för logghantering. Begärandetexten anger tabellschemat och tabellplanen.
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>_CL"
apiVersion="<ApiVersion>"
payloadFile="./my-table.json"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Build the request URL
path="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName"
provider="Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName"
url="$path/providers/$provider"
# Create the custom table
az rest \
--method put \
--url "$url?api-version=$apiVersion" \
--body @"$payloadFile"
Note
I det här exemplet visas alla kolumndatatyper som stöds förutom guid. Log Analytics lagrar och frågar GUID som string typer även om du definierar kolumnen som guid.
Definiera hjälptabellens schema och kvarhållningsinställningar
{
"properties": {
"schema": {
"name": "<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": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
Skapa en datainsamlingsregel som dirigerar data som skickas via LOGS Ingestion API till den anpassade tabellen. I det här exemplet används kommandogruppen az monitor data-collection rule för att skapa en direct DCR.
# Set variables
resourceGroupName="<ResourceGroupName>"
dataCollectionRuleName="<DataCollectionRuleName>"
ruleFile="./my-dcr.json"
# Add the extension that provides the data collection commands
az extension add --name monitor-control-service
# Create the data collection rule
az monitor data-collection rule create \
--resource-group "$resourceGroupName" \
--name "$dataCollectionRuleName" \
--rule-file "$ruleFile"
Note
Azure CLI-kommandon använder Azure Resource Manager-slutpunkten i den aktuella CLI-kontexten, så management.azure.com inte behöver anges i kommandosyntaxen.
Filen my-dcr.json är en resursbegärandetext för föregående kommando, inte en ARM-distributionsmall. När du anpassar en befintlig DCR:
- Lägg till tabellens strömdeklaration under
properties.streamDeclarations och dess väg under properties.dataFlows.
- Återanvänd eller lägg till mål för arbetsytan under
properties.destinations.logAnalytics. Behåll alla andra strömmar, målposter, dataflöden och resursinställningar.
Definiera intagsströmmen, målarbetsytan och dataflödet
{
"location": "<Location>",
"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": "DateTimeProperty",
"type": "datetime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>",
"name": "<WorkspaceName>"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-<TableName>_CL"
],
"transformKql": "source",
"destinations": [
"<WorkspaceName>"
],
"outputStream": "Custom-<TableName>_CL"
}
]
}
}
Följande Azure PowerShell exempel använder cmdletenNew-AzOperationalInsightsTable. I exemplet med hjälpplan används Invoke-AzRestMethod för att anropa åtgärden TABLES REST API.
Skapa tabellen. I det här exemplet skapas en anpassad tabell med planen Analytics .
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>_CL"
# Define parameters for New-AzOperationalInsightsTable
$newAzOperationalInsightsTableParams = @{
ResourceGroupName = $resourceGroupName
WorkspaceName = $workspaceName
TableName = $tableName
RetentionInDays = 31
TotalRetentionInDays = 365
Plan = 'Analytics'
Description = 'My custom table created with PowerShell'
Column = @{'TimeGenerated'='DateTime'; 'RawData'='String'}
}
New-AzOperationalInsightsTable @newAzOperationalInsightsTableParams
Om du vill skapa en anpassad tabell med Auxiliary planen använder du Invoke-AzRestMethod kommandot för att skicka en PUT begäran till REST-API:et för logghantering. Begärandetexten anger tabellschemat och tabellplanen.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>_CL"
$apiVersion = "<ApiVersion>"
$payloadFile = ".\my-table.json"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the request URL
$path = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName"
$provider = "Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName"
$url = "$path/providers/$provider"
# Define parameters for Invoke-AzRestMethod
$invokeAzRestMethodParams = @{
Method = "PUT"
Path = "$url?api-version=$apiVersion"
Payload = Get-Content -Raw -Path $payloadFile
}
# Create the custom table
Invoke-AzRestMethod @invokeAzRestMethodParams
Note
I det här exemplet visas alla kolumndatatyper som stöds förutom guid. Log Analytics lagrar och frågar GUID som string typer även om du definierar kolumnen som guid.
Definiera schema för hjälptabellen och inställningar för kvarhållning
{
"properties": {
"schema": {
"name": "<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": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
Skapa en datainsamlingsregel som dirigerar data som skickas via LOGS Ingestion API till den anpassade tabellen. I det här PowerShell-exemplet används cmdleten New-AzDataCollectionRule för att skapa en direct DCR.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$dataCollectionRuleName = "<DataCollectionRuleName>"
$jsonFilePath = ".\my-dcr.json"
$newAzDataCollectionRuleParams = @{
Name = $dataCollectionRuleName
ResourceGroupName = $resourceGroupName
JsonFilePath = $jsonFilePath
}
New-AzDataCollectionRule @newAzDataCollectionRuleParams
Note
Azure PowerShell-cmdletar använder Azure Resource Manager-slutpunkten i den aktuella Az-kontexten, så management.azure.com behöver inte anges i cmdletsyntaxen.
Filen my-dcr.json är en resursbegärandetext för föregående kommando, inte en ARM-distributionsmall. När du anpassar en befintlig DCR:
- Lägg till tabellens strömdeklaration under
properties.streamDeclarations och dess väg under properties.dataFlows.
- Återanvänd eller lägg till mål för arbetsytan under
properties.destinations.logAnalytics. Behåll alla andra strömmar, målposter, dataflöden och resursinställningar.
Definiera intagsströmmen, mål för arbetsytan och dataflödet
{
"location": "<Location>",
"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": "DateTimeProperty",
"type": "datetime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>",
"name": "<WorkspaceName>"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-<TableName>_CL"
],
"transformKql": "source",
"destinations": [
"<WorkspaceName>"
],
"outputStream": "Custom-<TableName>_CL"
}
]
}
}
I följande REST-exempel används REST API-åtgärder för tabeller och datainsamlingsregler .
Skapa tabellen. I det här exemplet skapas en anpassad tabell med "plan": "Auxiliary" i nyttolasten för begäran.
Note
I det här exemplet visas alla kolumndatatyper som stöds förutom guid. Log Analytics lagrar och frågar GUID som string typer även om du definierar kolumnen som guid.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}_CL?api-version={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"properties": {
"schema": {
"name": "<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": "DateTimeProperty",
"type": "dateTime"},
{"name": "DynamicProperty",
"type": "dynamic"}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
Skapa en regel för datainsamling. Här är ett exempel med kind inställt på Direct. Den här DCR-typen kräver ingen datainsamlingsslutpunkt (DCE) eftersom den skapar en egen logsIngestion slutpunkt.
-
<WorkspaceName> är namnet på din Log Analytics-arbetsyta.
-
<TableName>_CL är namnet på tabellen.
-
columns innehåller samma kolumner som du definierade när du skapade tabellen.
Skapa en DCR för att dirigera api-data för logginmatning till tabellen
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"location": "<Location>",
"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": "DateTimeProperty",
"type": "datetime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>",
"name": "<WorkspaceName>"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-<TableName>_CL"
],
"transformKql": "source",
"destinations": [
"<WorkspaceName>"
],
"outputStream": "Custom-<TableName>_CL"
}
]
}
}
Skapa tabellen med följande Bicep-exempel. I exemplet används resurstypen Microsoft.OperationalInsights workspaces/tables för att skapa en hjälptabell med ett anpassat schema.
Exemplet visar alla kolumndatatyper som stöds förutom guid. Log Analytics lagrar och frågar GUID som string typer även om du definierar kolumnen som guid.
Skapa en extra tabell med ett anpassat kolumnschema
param workspaceName string = '<WorkspaceName>'
param tableName string = '<TableName>_CL'
resource workspace 'Microsoft.OperationalInsights/workspaces@<ApiVersion>' existing = {
name: workspaceName
}
resource table 'Microsoft.OperationalInsights/workspaces/tables@<ApiVersion>' = {
parent: workspace
name: tableName
properties: {
schema: {
name: tableName
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: 'DateTimeProperty'
type: 'dateTime'
}
{
name: 'DynamicProperty'
type: 'dynamic'
}
]
}
totalRetentionInDays: 365
plan: 'Auxiliary'
}
}
Skapa en DCR genom att använda följande Bicep-exempel, som använder resurstypen Microsoft.Insights/dataCollectionRules.
Skapa en DCR för att dirigera api-data för logginmatning till tabellen
@description('Specifies the name of the data collection rule to create.')
param dataCollectionRuleName string = '<DataCollectionRuleName>'
@description('Specifies the region in which to create the data collection rule. It must be the same region as the destination Log Analytics workspace.')
param location string = '<Location>'
@description('Specifies the ID of the subscription that contains the Log Analytics workspace.')
param subscriptionId string = '<SubscriptionId>'
@description('Specifies the name of the resource group that contains the Log Analytics workspace.')
param resourceGroupName string = '<ResourceGroupName>'
@description('Specifies the name of the Log Analytics workspace in which you created a custom table with the Auxiliary plan.')
param workspaceName string = '<WorkspaceName>'
var workspaceResourceId = resourceId(
subscriptionId,
resourceGroupName,
'Microsoft.OperationalInsights/workspaces',
workspaceName
)
resource dataCollectionRule 'Microsoft.Insights/dataCollectionRules@<ApiVersion>' = {
name: dataCollectionRuleName
location: location
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: 'DateTimeProperty'
type: 'datetime'
}
{
name: 'DynamicProperty'
type: 'dynamic'
}
]
}
}
destinations: {
logAnalytics: [
{
workspaceResourceId: workspaceResourceId
name: workspaceName
}
]
}
dataFlows: [
{
streams: [
'Custom-<TableName>_CL'
]
transformKql: 'source'
destinations: [
workspaceName
]
outputStream: 'Custom-<TableName>_CL'
}
]
}
}
output dataCollectionRuleId string = dataCollectionRule.id
Skapa tabellen med hjälp av följande exempel Azure Resource Manager mall (ARM-mall). I det här JSON-exemplet används resurstypen Microsoft.OperationalInsights workspaces/tables för att skapa en hjälp-/Lake-tabell med ett anpassat schema.
Note
I det här exemplet visas alla kolumndatatyper som stöds förutom guid. Log Analytics lagrar och frågar GUID som string typer även om du definierar kolumnen som guid.
Skapa en extra tabell med ett anpassat kolumnschema
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"tableName": {
"type": "string",
"defaultValue": "<TableName>_CL"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces/tables",
"apiVersion": "<ApiVersion>",
"name": "[format('{0}/{1}', parameters('workspaceName'), parameters('tableName'))]",
"properties": {
"schema": {
"name": "[parameters('tableName')]",
"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": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
]
}
Skapa en datainsamlingsregel som samlar in data från datakällan och skickar dem till den anpassade tabellen. I följande ARM-mallexempel används Microsoft. Insights-dataCollectionRules-resurstyp.
Skapa en DCR för att dirigera api-data för logginmatning till tabellen
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataCollectionRuleName": {
"type": "string",
"defaultValue": "<DataCollectionRuleName>",
"metadata": {
"description": "Specifies the name of the data collection rule to create."
}
},
"location": {
"type": "string",
"defaultValue": "<Location>",
"metadata": {
"description": "Specifies the region in which to create the data collection rule. It must be the same region as the destination Log Analytics workspace."
}
},
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>",
"metadata": {
"description": "Specifies the ID of the subscription that contains the Log Analytics workspace."
}
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>",
"metadata": {
"description": "Specifies the name of the resource group that contains the Log Analytics workspace."
}
},
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>",
"metadata": {
"description": "Specifies the name of the Log Analytics workspace in which you created a custom table with the Auxiliary plan."
}
}
},
"variables": {
"workspaceResourceId": "[resourceId(parameters('subscriptionId'), parameters('resourceGroupName'), 'Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"name": "[parameters('dataCollectionRuleName')]",
"location": "[parameters('location')]",
"apiVersion": "<ApiVersion>",
"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": "DateTimeProperty",
"type": "datetime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[variables('workspaceResourceId')]",
"name": "[parameters('workspaceName')]"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-<TableName>_CL"
],
"transformKql": "source",
"destinations": [
"[parameters('workspaceName')]"
],
"outputStream": "Custom-<TableName>_CL"
}
]
}
}
],
"outputs": {
"dataCollectionRuleId": {
"type": "string",
"value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
}
}
}
Ta bort en tabell
Du kan inte ta bort Azure tabeller. Hur Azure tar bort data när du tar bort en annan tabell beror på tabelltypen.
Mer information finns i Vad händer med data när du tar bort en tabell på en Log Analytics-arbetsyta.
Så här tar du bort en tabell från Azure Portal:
På log analytics-arbetsytans meny väljer du Tabeller.
Sök efter de tabeller som du vill ta bort med namn eller genom att välja Sökresultat i fältet Typ .
Välj den tabell som du vill ta bort, välj ellipsen ( ... ) till höger om tabellen, välj Ta bort och bekräfta borttagningen genom att skriva ja.
I följande Azure CLI exempel används az monitor log-analytics workspace table delete kommandot .
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>_CL"
# Delete the table
az monitor log-analytics workspace table delete \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--yes
I följande Azure PowerShell-exempel används Invoke-AzRestMethod för att anropa REST API-åtgärden Tables.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>_CL"
$apiVersion = "<ApiVersion>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the request URL
$path = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName"
$provider = "Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName"
$url = "$path/providers/$provider"
# Define parameters for Invoke-AzRestMethod
$invokeAzRestMethodParams = @{
Method = "DELETE"
Path = "$url?api-version=$apiVersion"
}
# Delete the table
Invoke-AzRestMethod @invokeAzRestMethodParams
REST-exemplet nedan använder REST API-åtgärden Tables.
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}_CL?api-version={apiVersion}
Authorization: Bearer {accessToken}
Lägga till eller ta bort en anpassad kolumn
Med anpassade tabeller kan du ändra schemat genom att lägga till eller ta bort kolumner när du har skapat tabellen. I Azure tabeller kan du bara lägga till och ta bort anpassade kolumner.
Viktigt!
När du uppdaterar ett tabellschema bör du uppdatera alla datainsamlingsregler som skickar data till tabellen. Tabellschemat som du definierar i datainsamlingsregeln avgör hur Azure Monitor strömmar data till måltabellen. Azure Monitor uppdaterar inte datainsamlingsregler automatiskt när du gör ändringar i tabellschemat.
Använd dessa regler när du definierar kolumnnamn för anpassade tabeller:
- Kolumnnamn måste börja med en bokstav (A-Z eller a-z).
- Använd bara bokstäver, siffror eller understreck efter det första tecknet.
- Använd inte blanksteg, punkter, bindestreck eller andra skiljetecken i kolumnnamn.
- Icke-ASCII-bokstäver (till exempel Æ, É, Ö) stöds inte i kolumnnamn.
- Kolumnnamn är endast skiftlägeskänsliga för Analys- och Basic-tabeller. Extra loggtabellinmatning släpper data med duplicerade kolumnnamn när den enda skillnaden är skiftläge.
- Kolumnnamnen måste vara mellan 2 och 45 tecken långa.
- Anpassade kolumnnamn i Azure tabeller måste sluta i
_CF.
-
GUID-typen är en logisk anteckning, men värdena lagras och efterfrågas som strängar. Mer information finns i Column-datatyper i Azure Monitor Logs.
- Använd inte namn som är i konflikt med system eller reserverade kolumner, inklusive
id, BilledSize, IsBillable, InvalidTimeGenerated, TenantId, Title, Type, UniqueId, _ItemId_ResourceGroup, _ResourceId, , _SubscriptionId. _TimeReceived
Dessa schemaregler är striktare än allmänna Kusto-identifierarregler. Kusto kan referera till ovanliga egenskapsnamn med citattecken i frågor, men det anpassade tabellschemat accepterar endast bokstäver, siffror och understreck för kolumnnamn.
Så här lägger du till en anpassad kolumn i en tabell på Log Analytics-arbetsytan eller tar bort en kolumn:
På menyn Log Analytics-arbetsytor väljer du Tabeller.
Välj ellipsen ( ... ) till höger om tabellen som du vill redigera och välj Redigera schema.
Den här åtgärden öppnar skärmen Schemaredigeraren .
Rulla ned till avsnittet Anpassade kolumner på skärmen Schemaredigeraren .
Så här lägger du till en ny kolumn:
- Välj Lägg till en kolumn.
- Ange kolumnnamnet och beskrivningen (valfritt) och välj den förväntade värdetypen i listrutan Typ .
- Välj Spara för att spara den nya kolumnen.
Om du vill ta bort en kolumn väljer du ikonen Ta bort till vänster om den kolumn som du vill ta bort.
I följande Azure CLI exempel används az monitor log-analytics workspace table update kommandot .
Argumentet --columns ersätter den anpassade kolumnuppsättningen i stället för att lägga till den. Visa en lista över alla anpassade kolumner som du vill att tabellen ska behålla. Alla kolumner som du utelämnar tas bort, så samma kommando både lägger till och tar bort kolumner. Om du vill ta bort alla anpassade kolumner använder du REST-exemplet eller Azure PowerShell-exemplet med en tom columns-matris.
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>"
# Replace the custom column set
az monitor log-analytics workspace table update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--columns Custom1_CF=string
Följande Azure PowerShell-exempel använder Invoke-AzRestMethod för att anropa REST API-åtgärden Tables.
Lägg till en anpassad kolumn
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>"
$apiVersion = "<ApiVersion>"
$payloadFile = ".\add-column.json"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the request URL
$path = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName"
$provider = "Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName"
$url = "$path/providers/$provider"
# Define parameters for Invoke-AzRestMethod
$invokeAzRestMethodParams = @{
Method = "PUT"
Path = "$url?api-version=$apiVersion"
Payload = Get-Content -Raw -Path $payloadFile
}
# Add the custom column
Invoke-AzRestMethod @invokeAzRestMethodParams
{
"properties": {
"schema": {
"name": "<TableName>",
"columns": [
{
"name": "Custom1_CF",
"type": "string",
"description": "First custom column"
}
]
}
}
}
Anropet PUT returnerar de uppdaterade tabellegenskaperna, som innehåller den nyligen tillagda kolumnen.
Ersätt en anpassad kolumn
Om du vill ta bort en kolumn och lägga till en till skickar du en PUT begäran som endast innehåller de kolumner som du vill behålla. Följande exempel ersätter Custom1_CF med Custom2_CF:
{
"properties": {
"schema": {
"name": "<TableName>",
"columns": [
{
"name": "Custom2_CF",
"type": "datetime",
"description": "Replacement custom column"
}
]
}
}
}
Ta bort alla anpassade kolumner
Om du vill ta bort alla anpassade kolumner från en tabell skickar du en PUT begäran med en tom columns matris:
{
"properties": {
"schema": {
"name": "<TableName>",
"columns": []
}
}
}
I följande REST-exempel används REST API-åtgärden Tables.
Om du vill lägga till en anpassad kolumn skickar du en PUT begäran med det uppdaterade schemat. Inkludera den nya kolumnen i matrisen columns . Begäran returnerar de uppdaterade tabellegenskaperna.
Om du vill ta bort en anpassad kolumn skickar du samma PUT begäran men utelämnar kolumnen från matrisen columns . Om du vill ta bort alla anpassade kolumner skickar du en tom columns matris.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}?api-version={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"properties": {
"schema": {
"name": "<TableName>",
"columns": [
{"name": "<ColumnName>",
"type": "string",
"description": "Custom column description"}
]
}
}
}
Relaterat innehåll