Exempel på aviseringsfrågor för loggsökning som inkluderar ADX och ARG

En varningsregel för loggsökning övervakar en resurs med hjälp av en Log Analytics-fråga för att utvärdera loggar med en angiven frekvens. Du kan inkludera data från Azure Data Explorer och Azure Resource Graph i aviseringsregelfrågorna för loggsökning.

Den här artikeln innehåller exempel på aviseringsregelfrågor för loggsökning som använder Azure Data Explorer och Azure Resource Graph. Mer information om hur du skapar en varningsregel för loggsökning finns i Skapa en varningsregel för loggsökning.

Frågor som kontrollerar hälsotillståndet för virtuella datorer

Den här frågan hittar virtuella datorer som markerats som kritiska och som inte har haft pulsslag under de senaste 2 minuterna.

    arg("").Resources
    | where type == "microsoft.compute/virtualmachines"
    | summarize LastCall = max(case(isnull(TimeGenerated), make_datetime(1970, 1, 1), TimeGenerated)) by name, id
    | extend SystemDown = case(LastCall < ago(2m), 1, 0)
    | where SystemDown == 1

Den här frågan hittar virtuella datorer som markerats som kritiska och som hade ett pulsslag för mer än 24 timmar sedan, men som inte har haft några pulsslag under de senaste 2 minuterna.

{
    arg("").Resources
    | where type == "microsoft.compute/virtualmachines"
    | where tags.BusinessCriticality =~ 'critical' and subscriptionId == '123-456-123-456'
    | join kind=leftouter (
    Heartbeat
    | where TimeGenerated > ago(24h)
    )
    on $left.name == $right.Resource
    | summarize LastCall = max(case(isnull(TimeGenerated), make_datetime(1970, 1, 1), TimeGenerated)) by name, id
    | extend SystemDown = case(LastCall < ago(2m), 1, 0)
    | where SystemDown == 1
}

Fråga som filtrerar virtuella datorer som behöver övervakas

   {
    let RuleGroupTags = dynamic(['Linux']);
    Perf | where ObjectName == 'Processor' and CounterName == '% Idle Time' and (InstanceName in ('_Total,'total'))
    | extend CpuUtilisation = (100 - CounterValue)   
    | join kind=inner hint.remote=left (arg("").Resources
        | where type =~ 'Microsoft.Compute/virtualMachines'
    | project _ResourceId=tolower(id), tags) on _ResourceId
    | project-away _ResourceId1
    | where  (tostring(tags.monitorRuleGroup) in (RuleGroupTags)) 
}

Fråga som hittar resurser med certifikat som upphör att gälla inom 30 dagar

{
    arg("").Resources
    | where type == "microsoft.web/certificates"
    | extend ExpirationDate = todatetime(properties.expirationDate)
    | project ExpirationDate, name, resourceGroup, properties.expirationDate
    | where ExpirationDate < now() + 30d
    | order by ExpirationDate asc
}

Fråga som aviserar när en ny resurs skapas i prenumerationen

{
    arg("").resourcechanges
    | extend changeTime = todatetime(properties.changeAttributes.timestamp), 
    changeType = tostring(properties.changeType),targetResourceType = tostring(properties.targetResourceType),
    changedBy = tostring(properties.changeAttributes.changedBy),
    createdResource = tostring(properties.targetResourceId)
    | where changeType == "Create" and changeTime <ago(1h)
    | project changeTime,createdResource,changedBy

}

Nästa steg