Ejemplos de plantillas de Resource Manager para consultas de registros en Azure Monitor
Artículo 15/10/2024
6 colaboradores
Comentarios
En este artículo
Referencias de plantilla
Consulta de registro sencilla
Consulta de registro como una función
Función con parámetros
Pasos siguientes
Este artículo incluye plantillas de Azure Resource Manager de ejemplo para crear y configurar consultas de registros en Azure Monitor. Cada ejemplo incluye un archivo de plantilla y un archivo de parámetros con valores de ejemplo para la plantilla.
Nota
Consulte ejemplos de Azure Resource Manager de Azure Monitor para obtener una lista de ejemplos disponibles y orientación sobre cómo implementarlos en la suscripción de Azure.
Consulta de registro sencilla
En el ejemplo siguiente, se agrega una consulta de registro a un área de trabajo de Log Analytics.
@description('The name of the workspace.' )
param workspaceName string
@description('The location of the resources.' )
param location string = resourceGroup() .location
resource workspace 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = {
name : workspaceName
location : location
}
resource savedSearch 'Microsoft.OperationalInsights/workspaces/savedSearches@2020-08-01' = {
parent : workspace
name : 'VMSS query'
properties : {
etag : '*'
displayName : 'VMSS Instance Count'
category : 'VMSS'
query : 'Event | where Source == "ServiceFabricNodeBootstrapAgent" | summarize AggregatedValue = count() by Computer'
version : 1
}
}
{
"$schema" : "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#" ,
"contentVersion" : "1.0.0.0" ,
"parameters" : {
"workspaceName" : {
"type" : "string" ,
"metadata" : {
"description" : "The name of the workspace."
}
},
"location" : {
"type" : "string" ,
"defaultValue" : "[resourceGroup().location]" ,
"metadata" : {
"description" : "The location of the resources."
}
}
},
"resources" : [
{
"type" : "Microsoft.OperationalInsights/workspaces" ,
"apiVersion" : "2021-12-01-preview" ,
"name" : "[parameters('workspaceName')]" ,
"location" : "[parameters('location')]"
},
{
"type" : "Microsoft.OperationalInsights/workspaces/savedSearches" ,
"apiVersion" : "2020-08-01" ,
"name" : "[format('{0}/{1}', parameters('workspaceName'), 'VMSS query')]" ,
"properties" : {
"etag" : "*" ,
"displayName" : "VMSS Instance Count" ,
"category" : "VMSS" ,
"query" : "Event | where Source == \"ServiceFabricNodeBootstrapAgent\" | summarize AggregatedValue = count() by Computer" ,
"version" : 1
},
"dependsOn" : [
"[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
]
}
]
}
{
"$schema" : "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#" ,
"contentVersion" : "1.0.0.0" ,
"parameters" : {
"workspaceName" : {
"value" : "MyWorkspace"
},
"location" : {
"value" : "eastus"
}
}
}
Consulta de registro como una función
En el ejemplo siguiente, se agrega una consulta de registro como una función a un área de trabajo de Log Analytics.
@description('The name of the workspace.' )
param workspaceName string
@description('The location of the resources.' )
param location string = resourceGroup() .location
resource workspace 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = {
name : workspaceName
location : location
}
resource savedSearch 'Microsoft.OperationalInsights/workspaces/savedSearches@2020-08-01' = {
parent : workspace
name : 'VMSS query'
properties : {
etag : '*'
displayName : 'VMSS Instance Count'
category : 'VMSS'
query : 'Event | where Source == "ServiceFabricNodeBootstrapAgent" | summarize AggregatedValue = count() by Computer'
version : 1
}
}
{
"$schema" : "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#" ,
"contentVersion" : "1.0.0.0" ,
"parameters" : {
"workspaceName" : {
"type" : "string"
},
"location" : {
"type" : "string"
}
},
"resources" : [
{
"type" : "Microsoft.OperationalInsights/workspaces" ,
"apiVersion" : "2017-03-15-preview" ,
"name" : "[parameters('workspaceName')]" ,
"location" : "[parameters('location')]" ,
"resources" : [
{
"type" : "savedSearches" ,
"apiVersion" : "2020-08-01" ,
"name" : "Cross workspace query" ,
"dependsOn" : [
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
],
"properties" : {
"etag" : "*" ,
"displayName" : "Failed Logon Events" ,
"category" : "Security" ,
"FunctionAlias" : "failedlogonsecurityevents" ,
"query" : "
union withsource=SourceWorkspace
workspace('workspace1').SecurityEvent,
workspace('workspace2').SecurityEvent,
workspace('workspace3').SecurityEvent,
| where EventID == 4625" ,
"version" : 1
}
}
]
}
]
}
{
"$schema" : "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#" ,
"contentVersion" : "1.0.0.0" ,
"parameters" : {
"workspaceName" : {
"value" : "MyWorkspace"
},
"location" : {
"value" : "eastus"
}
}
}
En el ejemplo siguiente, se agrega una consulta de registro como una función que utiliza un parámetro para un área de trabajo de Log Analytics. Se incluye una segunda consulta de registro que utiliza la función con parámetro.
Nota
La plantilla de recursos es actualmente el único método que se puede aplicar a las funciones con parámetros. Cualquier consulta de registro puede usar la función una vez que se instala en el área de trabajo.
param workspaceName string
param location string
resource workspace 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = {
name : workspaceName
location : location
}
resource parameterizedFunctionSavedSearch 'Microsoft.OperationalInsights/workspaces/savedSearches@2020-08-01' = {
parent : workspace
name : 'Parameterized function'
properties : {
etag : '*'
displayName : 'Unavailable computers function'
category : 'Samples'
functionAlias : 'UnavailableComputers'
functionParameters : 'argSpan: timespan'
query : ' Heartbeat | summarize LastHeartbeat=max(TimeGenerated) by Computer| where LastHeartbeat < ago(argSpan)'
}
}
resource queryUsingFunctionSavedSearch 'Microsoft.OperationalInsights/workspaces/savedSearches@2020-08-01' = {
parent : workspace
name : 'Query using function'
properties : {
etag : '*'
displayName : 'Unavailable computers'
category : 'Samples'
query : 'UnavailableComputers(7days)'
}
}
{
"$schema" : "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#" ,
"contentVersion" : "1.0.0.0" ,
"parameters" : {
"workspaceName" : {
"type" : "string"
},
"location" : {
"type" : "string"
}
},
"resources" : [
{
"type" : "Microsoft.OperationalInsights/workspaces" ,
"apiVersion" : "2021-12-01-preview" ,
"name" : "[parameters('workspaceName')]" ,
"location" : "[parameters('location')]"
},
{
"type" : "Microsoft.OperationalInsights/workspaces/savedSearches" ,
"apiVersion" : "2020-08-01" ,
"name" : "[format('{0}/{1}', parameters('workspaceName'), 'Parameterized function')]" ,
"properties" : {
"etag" : "*" ,
"displayName" : "Unavailable computers function" ,
"category" : "Samples" ,
"functionAlias" : "UnavailableComputers" ,
"functionParameters" : "argSpan: timespan" ,
"query" : " Heartbeat | summarize LastHeartbeat=max(TimeGenerated) by Computer| where LastHeartbeat < ago(argSpan)"
},
"dependsOn" : [
"[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
]
},
{
"type" : "Microsoft.OperationalInsights/workspaces/savedSearches" ,
"apiVersion" : "2020-08-01" ,
"name" : "[format('{0}/{1}', parameters('workspaceName'), 'Query using function')]" ,
"properties" : {
"etag" : "*" ,
"displayName" : "Unavailable computers" ,
"category" : "Samples" ,
"query" : "UnavailableComputers(7days)"
},
"dependsOn" : [
"[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
]
}
]
}
{
"$schema" : "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#" ,
"contentVersion" : "1.0.0.0" ,
"parameters" : {
"workspaceName" : {
"value" : "MyWorkspace"
},
"location" : {
"value" : "eastus"
}
}
}