Contoh payload untuk pemberitahuan pencarian log menggunakan tindakan webhook

Anda dapat menggunakan tindakan webhook dalam aturan pemberitahuan pencarian log untuk memanggil satu permintaan HTTP POST. Dalam artikel ini, kami menjelaskan properti yang tersedia saat Anda mengonfigurasi grup tindakan untuk menggunakan webhook. Layanan yang disebut harus mendukung webhook dan tahu cara menggunakan payload yang diterimanya.

Kami menyarankan agar Anda menggunakan skema pemberitahuan umum untuk integrasi webhook Anda. Skema pemberitahuan umum memberikan keuntungan karena memiliki satu payload pemberitahuan yang dapat diperluas dan disatukan di semua layanan pemberitahuan di Azure Monitor.

Untuk aturan pemberitahuan pencarian log yang memiliki payload JSON kustom yang ditentukan, memungkinkan skema pemberitahuan umum mengembalikan skema payload ke yang dijelaskan dalam skema pemberitahuan Umum. Jika Anda ingin memiliki payload JSON kustom yang ditentukan, webhook tidak dapat menggunakan skema pemberitahuan umum.

Pemberitahuan dengan skema umum diaktifkan memiliki batas ukuran atas 256 KB per pemberitahuan. Pemberitahuan yang lebih besar tidak menyertakan hasil pencarian. Saat hasil pencarian tidak disertakan, gunakan LinkToFilteredSearchResultsAPI atau LinkToSearchResultsAPI untuk mengakses hasil kueri melalui API Analitik Log.

Contoh payload mencakup contoh ketika payload standar dan kustom.

Pemberitahuan pencarian log untuk semua log sumber daya (dari versi 2021-08-01API )

Contoh payload berikut adalah untuk webhook standar saat digunakan untuk pemberitahuan pencarian log berdasarkan log sumber daya:

{
    "schemaId": "azureMonitorCommonAlertSchema",
    "data": {
        "essentials": {
            "alertId": "/subscriptions/12345a-1234b-123c-123d-12345678e/providers/Microsoft.AlertsManagement/alerts/12345a-1234b-123c-123d-12345678e",
            "alertRule": "AcmeRule",
            "severity": "Sev4",
            "signalType": "Log",
            "monitorCondition": "Fired",
            "monitoringService": "Log Alerts V2",
            "alertTargetIDs": [
                "/subscriptions/12345a-1234b-123c-123d-12345678e/resourcegroups/ai-engineering/providers/microsoft.compute/virtualmachines/testvm"
            ],
            "originAlertId": "123c123d-1a23-1bf3-ba1d-dd1234ff5a67",
            "firedDateTime": "2020-07-09T14:04:49.99645Z",
            "description": "log alert rule V2",
            "essentialsVersion": "1.0",
            "alertContextVersion": "1.0"
        },
        "alertContext": {
            "properties": {
              "name1": "value1",
              "name2": "value2"
            },
            "conditionType": "LogQueryCriteria",
            "condition": {
                "windowSize": "PT10M",
                "allOf": [
                    {
                        "searchQuery": "Heartbeat",
                        "metricMeasureColumn": "CounterValue",
                        "targetResourceTypes": "['Microsoft.Compute/virtualMachines']",
                        "operator": "LowerThan",
                        "threshold": "1",
                        "timeAggregation": "Count",
                        "dimensions": [
                            {
                                "name": "ResourceId",
                                "value": "/subscriptions/12345a-1234b-123c-123d-12345678e/resourceGroups/TEST/providers/Microsoft.Compute/virtualMachines/testvm"
                            }
                        ],
                        "metricValue": 0.0,
                        "failingPeriods": {
                            "numberOfEvaluationPeriods": 1,
                            "minFailingPeriodsToAlert": 1
                        },
                        "linkToSearchResultsUI": "https://portal.azure.com#@12f345bf-12f3-12af-12ab-1d2cd345db67/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/source/Alerts.EmailLinks/scope/%7B%22resources%22%3A%5B%7B%22resourceId%22%3A%22%2Fsubscriptions%2F12345a-1234b-123c-123d-12345678e%2FresourceGroups%2FTEST%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Ftestvm%22%7D%5D%7D/q/eJzzSE0sKklKTSypUSjPSC1KVQjJzE11T81LLUosSU1RSEotKU9NzdNIAfJKgDIaRgZGBroG5roGliGGxlYmJlbGJnoGEKCpp4dDmSmKMk0A/prettify/1/timespan/2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z",
                        "linkToFilteredSearchResultsUI": "https://portal.azure.com#@12f345bf-12f3-12af-12ab-1d2cd345db67/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/source/Alerts.EmailLinks/scope/%7B%22resources%22%3A%5B%7B%22resourceId%22%3A%22%2Fsubscriptions%2F12345a-1234b-123c-123d-12345678e%2FresourceGroups%2FTEST%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Ftestvm%22%7D%5D%7D/q/eJzzSE0sKklKTSypUSjPSC1KVQjJzE11T81LLUosSU1RSEotKU9NzdNIAfJKgDIaRgZGBroG5roGliGGxlYmJlbGJnoGEKCpp4dDmSmKMk0A/prettify/1/timespan/2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z",
                        "linkToSearchResultsAPI": "https://api.loganalytics.io/v1/subscriptions/12345a-1234b-123c-123d-12345678e/resourceGroups/TEST/providers/Microsoft.Compute/virtualMachines/testvm/query?query=Heartbeat%7C%20where%20TimeGenerated%20between%28datetime%282020-07-09T13%3A44%3A34.0000000%29..datetime%282020-07-09T13%3A54%3A34.0000000%29%29&timespan=2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z",
                        "linkToFilteredSearchResultsAPI": "https://api.loganalytics.io/v1/subscriptions/12345a-1234b-123c-123d-12345678e/resourceGroups/TEST/providers/Microsoft.Compute/virtualMachines/testvm/query?query=Heartbeat%7C%20where%20TimeGenerated%20between%28datetime%282020-07-09T13%3A44%3A34.0000000%29..datetime%282020-07-09T13%3A54%3A34.0000000%29%29&timespan=2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z"
                    }
                ],
                "windowStartTime": "2020-07-07T13:54:34Z",
                "windowEndTime": "2020-07-09T13:54:34Z"
            }
        }
    }
}

Pemberitahuan pencarian log untuk Analitik Log (hingga versi 2018-04-16API )

Contoh payload berikut adalah untuk tindakan webhook standar yang digunakan untuk peringatan berdasarkan Log Analytics:

Catatan

Nilai "Severity" bidang berubah jika Anda telah beralih ke API scheduledQueryRules saat ini dari API Pemberitahuan Analitik Log warisan.

{
    "SubscriptionId": "12345a-1234b-123c-123d-12345678e",
    "AlertRuleName": "AcmeRule",
    "SearchQuery": "Perf | where ObjectName == \"Processor\" and CounterName == \"% Processor Time\" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 5m), Computer",
    "SearchIntervalStartTimeUtc": "2018-03-26T08:10:40Z",
    "SearchIntervalEndtimeUtc": "2018-03-26T09:10:40Z",
    "AlertThresholdOperator": "Greater Than",
    "AlertThresholdValue": 0,
    "ResultCount": 2,
    "SearchIntervalInSeconds": 3600,
    "LinkToSearchResults": "https://portal.azure.com/#Analyticsblade/search/index?_timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
    "LinkToFilteredSearchResultsUI": "https://portal.azure.com/#Analyticsblade/search/index?_timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
    "LinkToSearchResultsAPI": "https://api.loganalytics.io/v1/workspaces/workspaceID/query?query=Heartbeat&timespan=2020-05-07T18%3a11%3a51.0000000Z%2f2020-05-07T18%3a16%3a51.0000000Z",
    "LinkToFilteredSearchResultsAPI": "https://api.loganalytics.io/v1/workspaces/workspaceID/query?query=Heartbeat&timespan=2020-05-07T18%3a11%3a51.0000000Z%2f2020-05-07T18%3a16%3a51.0000000Z",
    "Description": "log alert rule",
    "Severity": "Warning",
    "AffectedConfigurationItems": [
        "INC-Gen2Alert"
    ],
    "Dimensions": [
        {
            "name": "Computer",
            "value": "INC-Gen2Alert"
        }
    ],
    "SearchResult": {
        "tables": [
            {
                "name": "PrimaryResult",
                "columns": [
                    {
                        "name": "$table",
                        "type": "string"
                    },
                    {
                        "name": "Computer",
                        "type": "string"
                    },
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    }
                ],
                "rows": [
                    [
                        "Fabrikam",
                        "33446677a",
                        "2018-02-02T15:03:12.18Z"
                    ],
                    [
                        "Contoso",
                        "33445566b",
                        "2018-02-02T15:16:53.932Z"
                    ]
                ]
            }
        ]
    },
    "WorkspaceId": "12345a-1234b-123c-123d-12345678e",
    "AlertType": "Metric measurement"
}

Pemberitahuan pencarian log untuk Application Insights (hingga versi 2018-04-16API )

Contoh payload berikut adalah untuk webhook standar saat digunakan untuk pemberitahuan pencarian log berdasarkan sumber daya Application Insights:

{
    "schemaId": "Microsoft.Insights/LogAlert",
    "data": {
        "SubscriptionId": "12345a-1234b-123c-123d-12345678e",
        "AlertRuleName": "AcmeRule",
        "SearchQuery": "requests | where resultCode == \"500\" | summarize AggregatedValue = Count by bin(Timestamp, 5m), IP",
        "SearchIntervalStartTimeUtc": "2018-03-26T08:10:40Z",
        "SearchIntervalEndtimeUtc": "2018-03-26T09:10:40Z",
        "AlertThresholdOperator": "Greater Than",
        "AlertThresholdValue": 0,
        "ResultCount": 2,
        "SearchIntervalInSeconds": 3600,
        "LinkToSearchResults": "https://portal.azure.com/AnalyticsBlade/subscriptions/12345a-1234b-123c-123d-12345678e/?query=search+*+&timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
        "LinkToFilteredSearchResultsUI": "https://portal.azure.com/AnalyticsBlade/subscriptions/12345a-1234b-123c-123d-12345678e/?query=search+*+&timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
        "LinkToSearchResultsAPI": "https://api.applicationinsights.io/v1/apps/0MyAppId0/metrics/requests/count",
        "LinkToFilteredSearchResultsAPI": "https://api.applicationinsights.io/v1/apps/0MyAppId0/metrics/requests/count",
        "Description": null,
        "Severity": "3",
        "Dimensions": [
            {
                "name": "IP",
                "value": "1.1.1.1"
            }
        ],
        "SearchResult": {
            "tables": [
                {
                    "name": "PrimaryResult",
                    "columns": [
                        {
                            "name": "$table",
                            "type": "string"
                        },
                        {
                            "name": "Id",
                            "type": "string"
                        },
                        {
                            "name": "Timestamp",
                            "type": "datetime"
                        }
                    ],
                    "rows": [
                        [
                            "Fabrikam",
                            "33446677a",
                            "2018-02-02T15:03:12.18Z"
                        ],
                        [
                            "Contoso",
                            "33445566b",
                            "2018-02-02T15:16:53.932Z"
                        ]
                    ]
                }
            ]
        },
        "ApplicationId": "123123f0-01d3-12ab-123f-abc1ab01c0a1",
        "AlertType": "Metric measurement"
    }
}

Pemberitahuan pencarian log dengan payload JSON kustom (hingga versi 2018-04-16API )

Catatan

Webhook berbasis JSON kustom tidak didukung dari versi 2021-08-01API .

Tabel berikut mencantumkan properti tindakan webhook default dan nama parameter JSON kustomnya.

Parameter Variabel Deskripsi
AlertRuleName #alertrulename Nama aturan peringatan.
Severity #tingkatkeparahan Tingkat keparahan diatur untuk pemberitahuan pencarian log yang diaktifkan.
AlertThresholdOperator #thresholdoperator Operator ambang batas untuk aturan pemberitahuan.
AlertThresholdValue #thresholdvalue Nilai ambang batas untuk aturan pemberitahuan.
LinkToSearchResults #linktosearchresults Tautkan ke portal Analytics yang mengembalikan rekaman dari kueri yang membuat pemberitahuan.
LinkToSearchResultsAPI #linktosearchresultsapi Tautkan ke API Analytics yang mengembalikan rekaman dari kueri yang membuat pemberitahuan.
LinkToFilteredSearchResultsUI #linktofilteredsearchresultsui Tautkan ke portal Analytics yang mengembalikan rekaman dari kueri yang difilter menurut kombinasi nilai dimensi yang membuat pemberitahuan.
LinkToFilteredSearchResultsAPI #linktofilteredsearchresultsapi Tautkan ke API Analytics yang mengembalikan rekaman dari kueri yang difilter berdasarkan kombinasi nilai dimensi yang membuat pemberitahuan.
ResultCount #searchresultcount Jumlah rekaman dalam hasil pencarian.
Search Interval End time #searchintervalendtimeutc Waktu akhir untuk kueri di UTC, dengan format mm/dd/yyyy HH:mm:ss AM/PM.
Search Interval #searchinterval Jendela waktu untuk aturan pemberitahuan, dengan format HH:mm:ss.
Search Interval StartTime #searchintervalstarttimeutc Waktu mulai untuk kueri di UTC, dengan format mm/dd/yyyy HH:mm:ss AM/PM.
SearchQuery #searchquery Mencatat log pencarian yang digunakan oleh aturan pemberitahuan.
SearchResults "IncludeSearchResults": true Rekaman yang dikembalikan oleh kueri sebagai tabel JSON, terbatas pada 1.000 rekaman pertama. "IncludeSearchResults": true ditambahkan dalam definisi webhook JSON kustom sebagai properti tingkat atas.
Dimensions "IncludeDimensions": benar Kombinasi nilai dimensi yang memicu pemberitahuan itu sebagai bagian JSON. "IncludeSearchResults": true ditambahkan dalam definisi webhook JSON kustom sebagai properti tingkat atas.
Alert Type #alerttype Jenis aturan pemberitahuan pencarian log dikonfigurasi sebagai Pengukuran metrik atau Jumlah hasil.
WorkspaceID #workspaceid ID ruang kerja Log Analytics Anda.
Application ID #applicationid ID aplikasi Application Insights Anda.
Subscription ID #subscriptionid ID langganan Azure Anda digunakan.

Anda dapat menggunakan Sertakan payload JSON kustom untuk webhook untuk mendapatkan payload JSON kustom dengan menggunakan parameter . Anda juga dapat menghasilkan lebih banyak properti.

Misalnya, Anda dapat menentukan payload kustom berikut yang menyertakan satu parameter yang disebut text. Layanan yang disebut webhook ini mengharapkan parameter ini:


    {
        "text":"#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
    }

Contoh payload ini menyelesaikan sesuatu seperti contoh berikut saat dikirim ke webhook:

    {
        "text":"My Alert Rule fired with 18 records over threshold of 10 ."
    }

Variabel dalam webhook kustom harus ditentukan dalam penutup JSON. Misalnya, mereferensikan #searchresultcount dalam contoh webhook menghasilkan output berdasarkan hasil pemberitahuan.

Untuk menyertakan hasil pencarian, tambahkan IncludeSearchResults sebagai properti tingkat teratas di JSON kustom. Hasil pencarian disertakan sebagai struktur JSON, sehingga hasil tidak dapat dirujuk dalam bidang yang ditentukan khusus.

Catatan

Tombol Lihat Webhook di samping opsi Sertakan payload JSON kustom untuk webhook menampilkan pratinjau apa yang disediakan. Ini tidak berisi data aktual tetapi mewakili skema JSON yang akan digunakan.

Misalnya, untuk membuat payload kustom yang hanya menyertakan nama pemberitahuan dan hasil pencarian, gunakan konfigurasi ini:

    {
       "alertname":"#alertrulename",
       "IncludeSearchResults":true
    }

Contoh payload berikut adalah untuk tindakan webhook kustom untuk pemberitahuan pencarian log apa pun:

    {
    "alertname":"AcmeRule","IncludeSearchResults":true,
    "SearchResults":
        {
        "tables":[
                    {"name":"PrimaryResult","columns":
                        [
                        {"name":"$table","type":"string"},
                        {"name":"Id","type":"string"},
                        {"name":"TimeGenerated","type":"datetime"}
                        ],
                    "rows":
                        [
                            ["Fabrikam","33446677a","2018-02-02T15:03:12.18Z"],
                            ["Contoso","33445566b","2018-02-02T15:16:53.932Z"]
                        ]
                    }
                ]
        }
    }

Langkah berikutnya