Adicionando Log Analytics pesquisas e alertas salvos à solução de gerenciamento (versão prévia)Adding Log Analytics saved searches and alerts to management solution (Preview)

Importante

Conforme anunciado anteriormente, os espaços de trabalho do log Analytics criados após 1º de junho de 2019 – poderão gerenciar regras de alerta usando apenas a API RESTdo Azure scheduledQueryRules, Azure Resource Manager modelo e o PowerShell cmdlet.As announced earlier, log analytics workspace(s) created after June 1, 2019 - will be able to manage alert rules using only Azure scheduledQueryRules REST API, Azure Resource Manager Template and PowerShell cmdlet. Os clientes podem facilmente alternar seus meios preferenciais de gerenciamento de regras de alerta para espaços de trabalho mais antigos para aproveitar Azure monitor scheduledQueryRules como padrão e obter muitos novos benefícios como a capacidade de usar cmdlets nativos do PowerShell, aumentou período de tempo de lookback em regras, criação de regras em um grupo de recursos ou assinatura separado e muito mais.Customers can easily switch their preferred means of alert rule management for older workspaces to leverage Azure Monitor scheduledQueryRules as default and gain many new benefits like the ability to use native PowerShell cmdlets, increased lookback time period in rules, creation of rules in separate resource group or subscription and much more.

Observação

Esta é uma documentação preliminar para criar soluções de gerenciamento que estão atualmente em versão prévia.This is preliminary documentation for creating management solutions which are currently in preview. Qualquer esquema descrito abaixo está sujeito a alterações.Any schema described below is subject to change.

As soluções de gerenciamento normalmente incluirão pesquisas salvas em log Analytics para analisar os dados coletados pela solução.Management solutions will typically include saved searches in Log Analytics to analyze data collected by the solution. Eles também podem definir alertas para notificar o usuário ou executar automaticamente a ação em resposta a um problema crítico.They may also define alerts to notify the user or automatically take action in response to a critical issue. Este artigo descreve como definir Log Analytics pesquisas e alertas salvos em um modelo de gerenciamento de recursos para que eles possam ser incluídos em soluções de Gerenciamento.This article describes how to define Log Analytics saved searches and alerts in a Resource Management template so they can be included in management solutions.

Observação

Os exemplos neste artigo usam parâmetros e variáveis que são necessários ou comuns para soluções de gerenciamento e são descritos em projetar e criar uma solução de gerenciamento no AzureThe samples in this article use parameters and variables that are either required or common to management solutions and described in Design and build a management solution in Azure

Pré-requisitosPrerequisites

Este artigo pressupõe que você já esteja familiarizado com como criar uma solução de gerenciamento e a estrutura de um modelo do Resource Manager e um arquivo de solução.This article assumes that you're already familiar with how to create a management solution and the structure of a Resource Manager template and solution file.

Espaço de trabalho Log AnalyticsLog Analytics Workspace

Todos os recursos no Log Analytics estão contidos em um espaço de trabalho.All resources in Log Analytics are contained in a workspace. Conforme descrito em log Analytics espaço de trabalho e conta de automação, o espaço de trabalho não é incluído na solução de gerenciamento, mas deve existir antes de a solução ser instalada.As described in Log Analytics workspace and Automation account, the workspace isn't included in the management solution but must exist before the solution is installed. Se não estiver disponível, a instalação da solução falhará.If it isn't available, then the solution install fails.

O nome do espaço de trabalho está no nome de cada recurso de Log Analytics.The name of the workspace is in the name of each Log Analytics resource. Isso é feito na solução com o parâmetro Workspace como no exemplo a seguir de um recurso SavedSearch.This is done in the solution with the workspace parameter as in the following example of a SavedSearch resource.

"name": "[concat(parameters('workspaceName'), '/', variables('SavedSearchId'))]"

Versão da API Log AnalyticsLog Analytics API version

Todos os Log Analytics recursos definidos em um modelo do Resource Manager têm uma propriedade apiVersion que define a versão da API que o recurso deve usar.All Log Analytics resources defined in a Resource Manager template have a property apiVersion that defines the version of the API the resource should use.

A tabela a seguir lista a versão de API para o recurso usado neste exemplo.The following table lists the API version for the resource used in this example.

Tipo de recursoResource type Versão da APIAPI version ConsultaQuery
savedSearchessavedSearches 2017-03-15-visualização2017-03-15-preview Evento | em que EventLevelName = = "Error"Event | where EventLevelName == "Error"

Pesquisas salvasSaved Searches

Inclua pesquisas salvas em uma solução para permitir que os usuários consultem os dados coletados por sua solução.Include saved searches in a solution to allow users to query data collected by your solution. As pesquisas salvas aparecem em pesquisas salvas no portal do Azure.Saved searches appear under Saved Searches in the Azure portal. Uma pesquisa salva também é necessária para cada alerta.A saved search is also required for each alert.

Log Analytics recursos de pesquisa salvos têm um tipo de Microsoft.OperationalInsights/workspaces/savedSearches e têm a seguinte estrutura.Log Analytics saved search resources have a type of Microsoft.OperationalInsights/workspaces/savedSearches and have the following structure. Isso inclui variáveis e parâmetros comuns para que você possa copiar e colar esse trecho de código em seu arquivo de solução e alterar os nomes de parâmetro.This includes common variables and parameters so that you can copy and paste this code snippet into your solution file and change the parameter names.

{
    "name": "[concat(parameters('workspaceName'), '/', variables('SavedSearch').Name)]",
    "type": "Microsoft.OperationalInsights/workspaces/savedSearches",
    "apiVersion": "[variables('LogAnalyticsApiVersion')]",
    "dependsOn": [
    ],
    "tags": { },
    "properties": {
        "etag": "*",
        "query": "[variables('SavedSearch').Query]",
        "displayName": "[variables('SavedSearch').DisplayName]",
        "category": "[variables('SavedSearch').Category]"
    }
}

Cada propriedade de uma pesquisa salva é descrita na tabela a seguir.Each property of a saved search is described in the following table.

PropriedadeProperty DescriçãoDescription
Categoriascategory A categoria da pesquisa salva.The category for the saved search. As pesquisas salvas na mesma solução muitas vezes compartilharão uma única categoria para que sejam agrupadas no console.Any saved searches in the same solution will often share a single category so they are grouped together in the console.
DisplayNamedisplayname Nome a ser exibido para a pesquisa salva no Portal.Name to display for the saved search in the portal.
queryquery Consulta a ser executada.Query to run.

Observação

Talvez seja necessário usar caracteres de escape na consulta se eles incluírem caracteres que poderiam ser interpretados como JSON.You may need to use escape characters in the query if it includes characters that could be interpreted as JSON. Por exemplo, se sua consulta foi AzureActivity | OperationName: "Microsoft. Compute/virtualMachines/Write" , ele deve ser gravado no arquivo da solução como AzureActivity | OperationName:/"Microsoft. Compute/virtualMachines/Write " .For example, if your query was AzureActivity | OperationName:"Microsoft.Compute/virtualMachines/write", it should be written in the solution file as AzureActivity | OperationName:/"Microsoft.Compute/virtualMachines/write".

AlertasAlerts

Os alertas de log do Azure são criados pelas regras de alerta do Azure que executam consultas de log especificadas em intervalos regulares.Azure Log alerts are created by Azure Alert rules that run specified log queries at regular intervals. Se os resultados da consulta corresponderem aos critérios especificados, um registro de alerta será criado e uma ou mais ações serão executadas usando grupos de ação.If the results of the query match specified criteria, an alert record is created and one or more actions are run using Action Groups.

Para usuários que estendem alertas para o Azure, as ações agora são controladas nos grupos de ações do Azure.For users that extend alerts to Azure, actions are now controlled in Azure action groups. Quando um espaço de trabalho e seus alertas são estendidos para o Azure, você pode recuperar ou adicionar ações usando o modelo grupo de ação-Azure Resource Manager.When a workspace and its alerts are extended to Azure, you can retrieve or add actions by using the Action Group - Azure Resource Manager Template. As regras de alerta na solução de gerenciamento herdado são formadas pelos três recursos diferentes a seguir.Alert rules in legacy management solution are made up of the following three different resources.

  • Pesquisa salva.Saved search. Define a pesquisa de log que é executada.Defines the log search that is run. Várias regras de alerta podem compartilhar uma única pesquisa salva.Multiple alert rules can share a single saved search.
  • Agendamento.Schedule. Define a frequência com que a pesquisa de log é executada.Defines how often the log search is run. Cada regra de alerta tem apenas uma agenda.Each alert rule has one and only one schedule.
  • Ação de alerta.Alert action. Cada regra de alerta tem um recurso de grupo de ação ou recurso de ação (Herdado) com um tipo de alerta que define os detalhes do alerta, como os critérios para quando um registro de alerta é criado e a severidade do alerta.Each alert rule has one action group resource or action resource (legacy) with a type of Alert that defines the details of the alert such as the criteria for when an alert record is created and the alert's severity. O recurso de grupo de ações pode ter uma lista de ações configuradas a serem tomadas quando o alerta é disparado, como chamada de voz, SMS, email, webhook, ferramenta de ITSM, runbook de automação, aplicativo lógico, etc.Action group resource can have a list of configured actions to take when alert is fired - such as voice call, SMS, email, webhook, ITSM tool, automation runbook, logic app, etc.

Os recursos de pesquisa salvos são descritos acima.Saved search resources are described above. Os outros recursos são descritos abaixo.The other resources are described below.

Agendar recursoSchedule resource

Uma pesquisa salva pode ter uma ou mais agendas com cada agenda que representa uma regra de alerta separada.A saved search can have one or more schedules with each schedule representing a separate alert rule. A agenda define a frequência com que a pesquisa é executada e o intervalo de tempo durante o qual os dados são recuperados.The schedule defines how often the search is run and the time interval over which the data is retrieved. Os recursos de agendamento têm um tipo de Microsoft.OperationalInsights/workspaces/savedSearches/schedules/ e têm a seguinte estrutura.Schedule resources have a type of Microsoft.OperationalInsights/workspaces/savedSearches/schedules/ and have the following structure. Isso inclui variáveis e parâmetros comuns para que você possa copiar e colar esse trecho de código em seu arquivo de solução e alterar os nomes de parâmetro.This includes common variables and parameters so that you can copy and paste this code snippet into your solution file and change the parameter names.

{
    "name": "[concat(parameters('workspaceName'), '/', variables('SavedSearch').Name, '/', variables('Schedule').Name)]",
    "type": "Microsoft.OperationalInsights/workspaces/savedSearches/schedules/",
    "apiVersion": "[variables('LogAnalyticsApiVersion')]",
    "dependsOn": [
        "[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'), '/savedSearches/', variables('SavedSearch').Name)]"
    ],
    "properties": {
        "etag": "*",
        "interval": "[variables('Schedule').Interval]",
        "queryTimeSpan": "[variables('Schedule').TimeSpan]",
        "enabled": "[variables('Schedule').Enabled]"
    }
}

As propriedades de recursos de agendamento são descritas na tabela a seguir.The properties for schedule resources are described in the following table.

Nome do elementoElement name ObrigatórioRequired DescriçãoDescription
habilitadoenabled SimYes Especifica se o alerta está habilitado quando ele é criado.Specifies whether the alert is enabled when it's created.
intervalointerval SimYes Com que frequência a consulta é executada em minutos.How often the query runs in minutes.
queryTimeSpanqueryTimeSpan SimYes Período de tempo em minutos em que os resultados são avaliados.Length of time in minutes over which to evaluate results.

O recurso de agendamento deve depender da pesquisa salva para que ele seja criado antes da agenda.The schedule resource should depend on the saved search so that it's created before the schedule.

Observação

O nome da agenda deve ser exclusivo em um determinado espaço de trabalho; dois agendamentos não podem ter a mesma ID, mesmo se estiverem associados a pesquisas salvas diferentes.Schedule Name must be unique in a given workspace; two schedules cannot have the same ID even if they are associated with different saved searches. Também nome para todas as pesquisas salvas, agendas e ações criadas com a API Log Analytics devem estar em minúsculas.Also name for all saved searches, schedules, and actions created with the Log Analytics API must be in lowercase.

AçõesActions

Uma agenda pode ter várias ações.A schedule can have multiple actions. Uma ação pode definir um ou mais processos a serem executados, como enviar um email ou iniciar um runbook, ou pode definir um limite que determina quando os resultados de uma pesquisa correspondem a alguns critérios.An action may define one or more processes to perform such as sending a mail or starting a runbook, or it may define a threshold that determines when the results of a search match some criteria. Algumas ações definirão ambos para que os processos sejam executados quando o limite for atingido.Some actions will define both so that the processes are performed when the threshold is met. As ações podem ser definidas usando o recurso [grupo de ações] ou recurso de ação.Actions can be defined using [action group] resource or action resource.

Há dois tipos de recurso de ação especificados pela propriedade Type .There are two types of action resource specified by the Type property. Uma agenda requer uma ação de alerta , que define os detalhes da regra de alerta e quais ações são tomadas quando um alerta é criado.A schedule requires one Alert action, which defines the details of the alert rule and what actions are taken when an alert is created. Os recursos de ação têm um tipo de Microsoft.OperationalInsights/workspaces/savedSearches/schedules/actions.Action resources have a type of Microsoft.OperationalInsights/workspaces/savedSearches/schedules/actions.

As ações de alerta têm a seguinte estrutura.Alert actions have the following structure. Isso inclui variáveis e parâmetros comuns para que você possa copiar e colar esse trecho de código em seu arquivo de solução e alterar os nomes de parâmetro.This includes common variables and parameters so that you can copy and paste this code snippet into your solution file and change the parameter names.

{
    "name": "[concat(parameters('workspaceName'), '/', variables('SavedSearch').Name, '/', variables('Schedule').Name, '/', variables('Alert').Name)]",
    "type": "Microsoft.OperationalInsights/workspaces/savedSearches/schedules/actions",
    "apiVersion": "[variables('LogAnalyticsApiVersion')]",
    "dependsOn": [
        "[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'), '/savedSearches/', variables('SavedSearch').Name, '/schedules/', variables('Schedule').Name)]"
    ],
    "properties": {
        "etag": "*",
        "type": "Alert",
        "name": "[variables('Alert').Name]",
        "description": "[variables('Alert').Description]",
        "severity": "[variables('Alert').Severity]",
        "threshold": {
            "operator": "[variables('Alert').Threshold.Operator]",
            "value": "[variables('Alert').Threshold.Value]",
            "metricsTrigger": {
                "triggerCondition": "[variables('Alert').Threshold.Trigger.Condition]",
                "operator": "[variables('Alert').Trigger.Operator]",
                "value": "[variables('Alert').Trigger.Value]"
            },
        },
        "AzNsNotification": {
            "GroupIds": "[variables('MyAlert').AzNsNotification.GroupIds]",
            "CustomEmailSubject": "[variables('MyAlert').AzNsNotification.CustomEmailSubject]",
            "CustomWebhookPayload": "[variables('MyAlert').AzNsNotification.CustomWebhookPayload]"
        }
    }
}

As propriedades de Recursos de ação de alerta são descritas nas tabelas a seguir.The properties for Alert action resources are described in the following tables.

Nome do elementoElement name ObrigatórioRequired DescriçãoDescription
type SimYes Tipo da ação.Type of the action. Este é um alerta para ações de alerta.This is Alert for alert actions.
name SimYes Nome de exibição do alerta.Display name for the alert. Esse é o nome que é exibido no console para a regra de alerta.This is the name that's displayed in the console for the alert rule.
description NãoNo Descrição opcional do alerta.Optional description of the alert.
severity SimYes Severidade do registro de alerta com os seguintes valores:Severity of the alert record from the following values:

drasticamentecritical
alertawarning
informativainformational

OsThreshold

Esta seção é necessária.This section is required. Ele define as propriedades para o limite de alerta.It defines the properties for the alert threshold.

Nome do elementoElement name ObrigatórioRequired DescriçãoDescription
Operator SimYes Operador para a comparação dos seguintes valores:Operator for the comparison from the following values:

gt = maior que
lt = menor que
gt = greater than
lt = less than
Value SimYes O valor para comparar os resultados.The value to compare the results.
MetricsTriggerMetricsTrigger

Esta seção é opcional.This section is optional. Inclua-o para um alerta de medição de métrica.Include it for a metric measurement alert.

Nome do elementoElement name ObrigatórioRequired DescriçãoDescription
TriggerCondition SimYes Especifica se o limite é para o número total de violações ou violações consecutivas dos seguintes valores:Specifies whether the threshold is for total number of breaches or consecutive breaches from the following values:

Total de
Consecutive
Total
Consecutive
Operator SimYes Operador para a comparação dos seguintes valores:Operator for the comparison from the following values:

gt = maior que
lt = menor que
gt = greater than
lt = less than
Value SimYes Número de vezes que os critérios devem ser atendidos para disparar o alerta.Number of the times the criteria must be met to trigger the alert.

LimitaçãoThrottling

Esta seção é opcional.This section is optional. Inclua esta seção se desejar suprimir alertas da mesma regra por algum tempo após a criação de um alerta.Include this section if you want to suppress alerts from the same rule for some amount of time after an alert is created.

Nome do elementoElement name ObrigatórioRequired DescriçãoDescription
DurationInMinutesDurationInMinutes Sim se o elemento de limitação estiver incluídoYes if Throttling element included Número de minutos para suprimir alertas após a criação de um da mesma regra de alerta.Number of minutes to suppress alerts after one from the same alert rule is created.

Grupo de ações do AzureAzure action group

Todos os alertas no Azure, use o grupo de ações como o mecanismo padrão para manipular ações.All alerts in Azure, use Action Group as the default mechanism for handling actions. Com o grupo de ações, você pode especificar suas ações uma vez e associar o grupo de ações a vários alertas – no Azure.With Action Group, you can specify your actions once and then associate the action group to multiple alerts - across Azure. Sem a necessidade, para declarar repetidamente as mesmas ações várias vezes.Without the need, to repeatedly declare the same actions over and over again. Os grupos de ação dão suporte a várias ações, incluindo email, SMS, chamada de voz, conexão de ITSM, runbook de automação, URI de webhook e muito mais.Action Groups support multiple actions - including email, SMS, Voice Call, ITSM Connection, Automation Runbook, Webhook URI and more.

Para os usuários que estenderam seus alertas para o Azure – uma agenda agora deve ter detalhes do grupo de ações aprovados junto com o limite para poder criar um alerta.For user's who have extended their alerts into Azure - a schedule should now have Action Group details passed along with threshold, to be able to create an alert. Detalhes de email, URLs de webhook, detalhes de automação do runbook e outras ações, precisam ser definidos no primeiro grupo de ações antes de criar um alerta; é possível criar um grupo de ações de Azure monitor no portal ou usar o modelo de recurso grupo de ações.E-mail details, Webhook URLs, Runbook Automation details, and other Actions, need to be defined in side an Action Group first before creating an alert; one can create Action Group from Azure Monitor in Portal or use Action Group - Resource Template.

Nome do elementoElement name ObrigatórioRequired DescriçãoDescription
AzNsNotificationAzNsNotification SimYes A ID de recurso do grupo de ações do Azure a ser associado ao alerta para tomar as ações necessárias quando os critérios de alerta forem atendidos.The resource ID of the Azure action group to be associated with alert for taking necessary actions when alert criteria is met.
CustomEmailSubjectCustomEmailSubject NãoNo Linha de assunto personalizada do email enviada para todos os endereços especificados no grupo de ações associado.Custom subject line of the mail sent to all addresses specified in associated action group.
CustomWebhookPayloadCustomWebhookPayload NãoNo Conteúdo personalizado a ser enviado a todos os pontos de extremidade de webhook definidos no grupo de ações associado.Customized payload to be sent to all webhook endpoints defined in associated action group. O formato depende do que o webhook está esperando e deve ser um JSON serializado válido.The format depends on what the webhook is expecting and should be a valid serialized JSON.

AmostraSample

A seguir, um exemplo de uma solução que inclui os seguintes recursos:Following is a sample of a solution that includes the following resources:

  • Pesquisa salvaSaved search
  • AgendamentoSchedule
  • Grupo de açãoAction group

O exemplo usa variáveis de parâmetros de solução padrão que normalmente seriam usadas em uma solução em vez de codificar valores nas definições de recurso.The sample uses standard solution parameters variables that would commonly be used in a solution as opposed to hardcoding values in the resource definitions.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0",
    "parameters": {
        "workspaceName": {
            "type": "string",
            "metadata": {
                "Description": "Name of Log Analytics workspace"
            }
        },
        "workspaceregionId": {
            "type": "string",
            "metadata": {
                "Description": "Region of Log Analytics workspace"
            }
        },
        "actiongroup": {
            "type": "string",
            "metadata": {
                "Description": "List of action groups for alert actions separated by semicolon"
            }
        }
    },
    "variables": {
        "SolutionName": "MySolution",
        "SolutionVersion": "1.0",
        "SolutionPublisher": "Contoso",
        "ProductName": "SampleSolution",
        "LogAnalyticsApiVersion-Search": "2017-03-15-preview",
        "LogAnalyticsApiVersion-Solution": "2015-11-01-preview",
        "MySearch": {
            "displayName": "Error records by hour",
            "query": "MyRecord_CL | summarize AggregatedValue = avg(Rating_d) by Instance_s, bin(TimeGenerated, 60m)",
            "category": "Samples",
            "name": "Samples-Count of data"
        },
        "MyAlert": {
            "Name": "[toLower(concat('myalert-',uniqueString(resourceGroup().id, deployment().name)))]",
            "DisplayName": "My alert rule",
            "Description": "Sample alert. Fires when 3 error records found over hour interval.",
            "Severity": "critical",
            "ThresholdOperator": "gt",
            "ThresholdValue": 3,
            "Schedule": {
                "Name": "[toLower(concat('myschedule-',uniqueString(resourceGroup().id, deployment().name)))]",
                "Interval": 15,
                "TimeSpan": 60
            },
            "MetricsTrigger": {
                "TriggerCondition": "Consecutive",
                "Operator": "gt",
                "Value": 3
            },
            "ThrottleMinutes": 60,
            "AzNsNotification": {
                "GroupIds": [
                    "[parameters('actiongroup')]"
                ],
                "CustomEmailSubject": "Sample alert"
            }
        }
    },
    "resources": [
        {
            "name": "[concat(variables('SolutionName'), '[' ,parameters('workspacename'), ']')]",
            "location": "[parameters('workspaceRegionId')]",
            "tags": { },
            "type": "Microsoft.OperationsManagement/solutions",
            "apiVersion": "[variables('LogAnalyticsApiVersion-Solution')]",
            "dependsOn": [
                "[resourceId('Microsoft.OperationalInsights/workspaces/savedSearches', parameters('workspacename'), variables('MySearch').Name)]",
                "[resourceId('Microsoft.OperationalInsights/workspaces/savedSearches/schedules', parameters('workspacename'), variables('MySearch').Name, variables('MyAlert').Schedule.Name)]",
                "[resourceId('Microsoft.OperationalInsights/workspaces/savedSearches/schedules/actions', parameters('workspacename'), variables('MySearch').Name, variables('MyAlert').Schedule.Name, variables('MyAlert').Name)]"
            ],
            "properties": {
                "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspacename'))]",
                "referencedResources": [
                ],
                "containedResources": [
                    "[resourceId('Microsoft.OperationalInsights/workspaces/savedSearches', parameters('workspacename'), variables('MySearch').Name)]",
                    "[resourceId('Microsoft.OperationalInsights/workspaces/savedSearches/schedules', parameters('workspacename'), variables('MySearch').Name, variables('MyAlert').Schedule.Name)]",
                    "[resourceId('Microsoft.OperationalInsights/workspaces/savedSearches/schedules/actions', parameters('workspacename'), variables('MySearch').Name, variables('MyAlert').Schedule.Name, variables('MyAlert').Name)]"
                ]
            },
            "plan": {
                "name": "[concat(variables('SolutionName'), '[' ,parameters('workspaceName'), ']')]",
                "Version": "[variables('SolutionVersion')]",
                "product": "[variables('ProductName')]",
                "publisher": "[variables('SolutionPublisher')]",
                "promotionCode": ""
            }
        },
        {
            "name": "[concat(parameters('workspaceName'), '/', variables('MySearch').Name)]",
            "type": "Microsoft.OperationalInsights/workspaces/savedSearches",
            "apiVersion": "[variables('LogAnalyticsApiVersion-Search')]",
            "dependsOn": [ ],
            "tags": { },
            "properties": {
                "etag": "*",
                "query": "[variables('MySearch').query]",
                "displayName": "[variables('MySearch').displayName]",
                "category": "[variables('MySearch').category]"
            }
        },
        {
            "name": "[concat(parameters('workspaceName'), '/', variables('MySearch').Name, '/', variables('MyAlert').Schedule.Name)]",
            "type": "Microsoft.OperationalInsights/workspaces/savedSearches/schedules/",
            "apiVersion": "[variables('LogAnalyticsApiVersion-Search')]",
            "dependsOn": [
                "[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'), '/savedSearches/', variables('MySearch').Name)]"
            ],
            "properties": {
                "etag": "*",
                "interval": "[variables('MyAlert').Schedule.Interval]",
                "queryTimeSpan": "[variables('MyAlert').Schedule.TimeSpan]",
                "enabled": true
            }
        },
        {
            "name": "[concat(parameters('workspaceName'), '/', variables('MySearch').Name, '/', variables('MyAlert').Schedule.Name, '/', variables('MyAlert').Name)]",
            "type": "Microsoft.OperationalInsights/workspaces/savedSearches/schedules/actions",
            "apiVersion": "[variables('LogAnalyticsApiVersion-Search')]",
            "dependsOn": [
                "[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'), '/savedSearches/', variables('MySearch').Name, '/schedules/', variables('MyAlert').Schedule.Name)]"
            ],
            "properties": {
                "etag": "*",
                "Type": "Alert",
                "Name": "[variables('MyAlert').DisplayName]",
                "Description": "[variables('MyAlert').Description]",
                "Severity": "[variables('MyAlert').Severity]",
                "Threshold": {
                    "Operator": "[variables('MyAlert').ThresholdOperator]",
                    "Value": "[variables('MyAlert').ThresholdValue]",
                    "MetricsTrigger": {
                        "TriggerCondition": "[variables('MyAlert').MetricsTrigger.TriggerCondition]",
                        "Operator": "[variables('MyAlert').MetricsTrigger.Operator]",
                        "Value": "[variables('MyAlert').MetricsTrigger.Value]"
                    }
                },
                "Throttling": {
                    "DurationInMinutes": "[variables('MyAlert').ThrottleMinutes]"
                },
                "AzNsNotification": {
                    "GroupIds": "[variables('MyAlert').AzNsNotification.GroupIds]",
                    "CustomEmailSubject": "[variables('MyAlert').AzNsNotification.CustomEmailSubject]"
                }
            }
        }
    ]
}

O arquivo de parâmetro a seguir fornece valores de exemplos para essa solução.The following parameter file provides samples values for this solution.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "workspacename": {
            "value": "myWorkspace"
        },
        "accountName": {
            "value": "myAccount"
        },
        "workspaceregionId": {
            "value": "East US"
        },
        "regionId": {
            "value": "East US 2"
        },
        "pricingTier": {
            "value": "Free"
        },
        "actiongroup": {
            "value": "/subscriptions/3b540246-808d-4331-99aa-917b808a9166/resourcegroups/myTestGroup/providers/microsoft.insights/actiongroups/sample"
        }
    }
}

Próximos passosNext steps