Contoh kueri pemberitahuan pencarian log yang menyertakan ADX dan ARG

Aturan pemberitahuan pencarian log memantau sumber daya dengan menggunakan kueri Analitik Log untuk mengevaluasi log pada frekuensi yang ditetapkan. Anda dapat menyertakan data dari Azure Data Explorer dan Azure Resource Graph dalam kueri aturan pemberitahuan pencarian log Anda.

Artikel ini menyediakan contoh kueri aturan pemberitahuan pencarian log yang menggunakan Azure Data Explorer dan Azure Resource Graph. Untuk informasi selengkapnya tentang membuat aturan pemberitahuan pencarian log, lihat Membuat aturan pemberitahuan pencarian log.

Kueri yang memeriksa kesehatan komputer virtual

Kueri ini menemukan komputer virtual yang ditandai sebagai kritis yang belum memiliki heartbeat dalam 2 menit terakhir.

    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

Kueri ini menemukan komputer virtual yang ditandai sebagai kritis yang memiliki heartbeat lebih dari 24 jam yang lalu, tetapi itu belum memiliki heartbeat dalam 2 menit terakhir.

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

Kueri yang memfilter komputer virtual yang perlu dipantau

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

Kueri yang menemukan sumber daya dengan sertifikat yang akan kedaluwarsa dalam waktu 30 hari

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

Kueri yang memperingatkan saat sumber daya baru dibuat dalam langganan

{
    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

}

Langkah berikutnya