Beispielabfragen für die Protokollsuche, die ADX und ARG enthalten

Eine Warnungsregel für die Protokollsuche überwacht eine Ressource mithilfe einer Log Analytics-Abfrage, um Protokolle mit einer festgelegten Häufigkeit auszuwerten. Sie können Daten aus Dem Azure-Daten-Explorer und Azure Resource Graph in Ihre Warnungsregelabfragen für die Protokollsuche einschließen.

Dieser Artikel enthält Beispiele für Protokollsuchregelabfragen, die Azure Data Explorer und Azure Resource Graph verwenden. Weitere Informationen zum Erstellen einer Warnungsregel für die Protokollsuche finden Sie unter Erstellen einer Warnungsregel für die Protokollsuche.

Abfragen, die die Integrität des virtuellen Computers überprüfen

Diese Abfrage findet virtuelle Computer, die als kritisch gekennzeichnet sind, die in den letzten 2 Minuten keinen Takt hatten.

    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

Diese Abfrage findet virtuelle Computer, die vor mehr als 24 Stunden als kritisch gekennzeichnet sind, aber in den letzten 2 Minuten keinen Takt hatten.

{
    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
}

Abfrage, die virtuelle Computer filtert, die überwacht werden müssen

   {
    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)) 
}

Abfrage, die Ressourcen mit Zertifikaten findet, die innerhalb von 30 Tagen ablaufen

{
    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
}

Abfrage, die benachrichtigt, wenn eine neue Ressource im Abonnement erstellt wird

{
    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ächste Schritte