REST API로 Log Analytics에서 경고 규칙 만들기 및 관리

중요

발표된 대로 2019년 6월 1일 이후에 만든 Log Analytics 작업 영역은 현재 scheduledQueryRules API를 사용하여 경고 규칙을 관리합니다. 고객은 Azure Monitor scheduledQueryRules 혜택을 활용하기 위해 이전 작업 영역에서 현재 API로 전환하는 것이 좋습니다. 이 문서에서는 레거시 API를 사용하여 경고 규칙을 관리하는 방법에 대해 설명합니다.

Log Analytics 경고 REST API를 사용하여 Log Analytics에서 경고를 만들고 관리할 수 있습니다. 이 문서에서는 API에 대한 세부 정보와 다양한 작업을 수행하기 위한 몇 가지 예제를 제공합니다.

Log Analytics Search REST API는 RESTful이며 Azure Resource Manager REST API를 통해 액세스할 수 있습니다. 이 문서에서는 ARMClient를 사용하여 PowerShell 명령줄에서 API에 액세스하는 예제를 찾을 수 있습니다. 이 오픈 소스 명령줄 도구는 Azure Resource Manager API 호출을 간소화합니다.

ARMClient 및 PowerShell 사용은 Log Analytics Search API에 액세스하는 데 사용할 수 있는 여러 옵션 중 하나입니다. 이러한 도구를 사용하면 RESTful Azure Resource Manager API를 활용하여 Log Analytics 작업 영역을 호출하고, 이 작업 영역 내에서 검색 명령을 수행할 수 있습니다. API는 검색 결과를 프로그래밍 방식으로 여러 가지 방법으로 사용할 수 있도록 JSON 형식으로 검색 결과를 출력합니다.

사전 요구 사항

현재 Log Analytics에 저장된 검색을 사용해서만 경고를 만들 수 있습니다. 자세한 내용은 로그 검색 REST API를 참조하세요.

일정

저장된 검색은 하나 이상의 일정을 가질 수 있습니다. 일정은 검색이 실행되는 빈도와 조건이 식별되는 시간 간격을 정의합니다. 일정에는 다음 표에 설명된 속성이 있습니다.

속성 Description
Interval 검색이 실행되는 빈도입니다. 분 단위로 측정됩니다.
QueryTimeSpan 조건이 평가되는 시간 간격입니다. 와 같거나 보다 Interval커야 합니다. 분 단위로 측정됩니다.
Version 사용 중인 API 버전입니다. 현재 이 설정은 항상 이어야 1합니다.

예를 들어 가 15분이고 이 30분인 이벤트 쿼리 IntervalTimespan 생각해 보세요. 이 경우 쿼리는 15분마다 실행됩니다. 기준이 30분 동안 계속 확인 true 되면 경고가 트리거됩니다.

일정 검색

Get 메서드를 사용하여 저장된 검색에 대한 모든 일정을 검색합니다.

armclient get /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search  ID}/schedules?api-version=2015-03-20

일정 ID와 Get 메서드를 사용하여 저장된 검색에 대한 특정 일정을 검색합니다.

armclient get /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Subscription ID}/schedules/{Schedule ID}?api-version=2015-03-20

다음 샘플 응답은 일정에 대한 것입니다.

{
   "value": [{
      "id": "subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/sampleRG/providers/Microsoft.OperationalInsights/workspaces/MyWorkspace/savedSearches/0f0f4853-17f8-4ed1-9a03-8e888b0d16ec/schedules/a17b53ef-bd70-4ca4-9ead-83b00f2024a8",
      "etag": "W/\"datetime'2016-02-25T20%3A54%3A49.8074679Z'\"",
      "properties": {
         "Interval": 15,
         "QueryTimeSpan": 15,
         "Enabled": true,
      }
   }]
}

일정 만들기

고유 일정 ID와 Put 메서드를 사용하여 새 일정을 만듭니다. 두 일정은 다른 저장된 검색과 연결되어 있더라도 동일한 ID를 가질 수 없습니다. Log Analytics 콘솔에서 일정을 만드는 경우 일정 ID에 대해 GUID가 생성됩니다.

참고

Log Analytics API를 사용하여 만든 저장된 모든 검색, 일정 및 작업의 이름은 소문자여야 합니다.

$scheduleJson = "{'properties': { 'Interval': 15, 'QueryTimeSpan':15, 'Enabled':'true' } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/mynewschedule?api-version=2015-03-20 $scheduleJson

일정 편집

동일한 저장된 검색에 대해 기존 일정 ID와 Put 메서드를 사용하여 해당 일정을 수정합니다. 다음 예제에서는 일정을 사용할 수 없습니다. 요청 본문에는 일정의 etag가 포함되어야 합니다.

$scheduleJson = "{'etag': 'W/\"datetime'2016-02-25T20%3A54%3A49.8074679Z'\""','properties': { 'Interval': 15, 'QueryTimeSpan':15, 'Enabled':'false' } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/mynewschedule?api-version=2015-03-20 $scheduleJson

일정 삭제

일정 ID와 함께 Delete 메서드를 사용하여 일정을 삭제합니다.

armclient delete /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Subscription ID}/schedules/{Schedule ID}?api-version=2015-03-20

동작

일정이 여러 작업을 가질 수 있습니다. 작업은 전자 메일 보내기 또는 Runbook 시작과 같이 수행할 프로세스를 하나 이상 정의할 수 있습니다. 또한 작업은 검색 결과가 일부 조건과 일치하는 시기를 결정하는 임계값을 정의할 수도 있습니다. 일부 작업은 임계값을 만족할 때 프로세스가 수행되도록 정의합니다.

모든 작업에는 다음 표에 설명된 속성이 있습니다. 경고 유형에 따라 다음 표에 설명된 다른 속성이 있습니다.

속성 설명
Type 작업의 유형입니다. 현재 가능한 값은 및 Webhook입니다Alert.
Name 경고에 대한 표시 이름입니다.
Version 사용 중인 API 버전입니다. 현재 이 설정은 항상 이어야 1합니다.

작업 검색

Get 메서드를 사용하여 일정에 대한 모든 작업을 검색합니다.

armclient get /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search  ID}/schedules/{Schedule ID}/actions?api-version=2015-03-20

작업 ID와 함께 Get 메서드를 사용하여 일정에 대한 특정 작업을 검색합니다.

armclient get /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Subscription ID}/schedules/{Schedule ID}/actions/{Action ID}?api-version=2015-03-20

작업 만들기 또는 편집

Put 메서드를 일정에 고유한 작업 ID와 함께 사용하여 새 작업을 만듭니다. Log Analytics 콘솔에서 작업을 만드는 경우 GUID는 작업 ID에 대한 것입니다.

참고

Log Analytics API를 사용하여 만든 저장된 모든 검색, 일정 및 작업의 이름은 소문자여야 합니다.

동일한 저장된 검색에 대해 기존 작업 ID와 Put 메서드를 사용하여 해당 일정을 수정합니다. 요청 본문에는 일정의 etag가 포함되어야 합니다.

새 작업을 만들기 위한 요청 형식은 작업 유형에 따라 다르므로 다음 섹션에서 이러한 예제를 제공합니다.

삭제 작업

작업 ID와 함께 Delete 메서드를 사용하여 작업을 삭제합니다.

armclient delete /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Subscription ID}/schedules/{Schedule ID}/Actions/{Action ID}?api-version=2015-03-20

경고 작업

일정에는 경고 작업이 하나만 있어야 합니다. 경고 작업에는 다음 표에 설명된 섹션이 하나 이상 있습니다.

섹션 Description 사용
임계값 작업이 실행되기 위한 조건입니다. Azure로 확장되기 전이나 후에 모든 경고에 필요합니다.
심각도 트리거될 때 경고를 분류하는 데 사용되는 레이블입니다. Azure로 확장되기 전이나 후에 모든 경고에 필요합니다.
표시 안 함 경고에서 알림을 중지하는 옵션입니다. Azure로 확장되기 전이나 후에 모든 경고에 대해 선택 사항입니다.
작업 그룹 이메일, SMS, 음성 통화, 웹후크, 자동화 Runbook 및 ITSM 커넥터와 같이 필요한 작업이 지정된 Azure ActionGroup 의 ID입니다. 경고가 Azure로 확장된 후에 필요합니다.
작업 사용자 지정 에서 선택한 작업에 대한 표준 출력을 ActionGroup수정합니다. 모든 경고에 대해 선택 사항이며 경고가 Azure로 확장된 후 사용할 수 있습니다.

임계값

경고 작업은 임계값을 한 개만 가져야 합니다. 저장된 검색 결과가 해당 검색과 연결된 작업의 임계값과 일치하면 해당 작업의 다른 모든 프로세스가 실행됩니다. 또한 작업은 임계값만 포함할 수 있으므로 임계값을 포함하지 않는 다른 형식의 작업과 함께 사용할 수 있습니다.

임계값에는 다음 표에 설명된 속성이 있습니다.

속성 설명
Operator 임계값 비교를 위한 연산자입니다.
gt = 보다 큼
lt = 보다 작음
Value 임계값에 대한 값입니다.

예를 들어 15분, 30분, Timespan 가 10보다 큰 이벤트 쿼리 IntervalThreshold 고려합니다. 이 경우 쿼리는 15분마다 실행됩니다. 30분 동안 생성된 10개의 이벤트를 반환하면 경고가 트리거됩니다.

다음 샘플 응답은 만 있는 작업에 대한 것입니다.Threshold

"etag": "W/\"datetime'2016-02-25T20%3A54%3A20.1302566Z'\"",
"properties": {
   "Type": "Alert",
   "Name": "My threshold action",
   "Threshold": {
      "Operator": "gt",
      "Value": 10
   },
   "Version": 1
}

고유 작업 ID와 Put 메서드를 사용하여 일정에 대한 새 임계값 작업을 만듭니다.

$thresholdJson = "{'properties': { 'Name': 'My Threshold', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 10 } } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/mythreshold?api-version=2015-03-20 $thresholdJson

고유 작업 ID와 Put 메서드를 사용하여 일정에 대한 임계값 작업을 수정합니다. 요청 본문에는 작업의 etag가 포함되어야 합니다.

$thresholdJson = "{'etag': 'W/\"datetime'2016-02-25T20%3A54%3A20.1302566Z'\"','properties': { 'Name': 'My Threshold', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 10 } } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/mythreshold?api-version=2015-03-20 $thresholdJson

심각도

Log Analytics를 사용하면 경고를 범주로 분류하여 보다 쉽게 관리 및 심사할 수 있습니다. 경고 심각도 수준은 , warningcritical입니다informational. 이러한 범주는 다음 표와 같이 Azure Alerts의 정규화된 심각도 규모에 매핑됩니다.

Log Analytics 심각도 수준 Azure 경고 심각도 수준
critical Sev 0
warning Sev 1
informational Sev 2

다음 샘플 응답은 및 SeverityThreshold 사용하는 작업에 대한 것입니다.

"etag": "W/\"datetime'2016-02-25T20%3A54%3A20.1302566Z'\"",
"properties": {
   "Type": "Alert",
   "Name": "My threshold action",
   "Threshold": {
      "Operator": "gt",
      "Value": 10
   },
   "Severity": "critical",
   "Version": 1
}

고유한 작업 ID와 함께 Put 메서드를 사용하여 를 사용하여 일정 Severity에 대한 새 작업을 만듭니다.

$thresholdWithSevJson = "{'properties': { 'Name': 'My Threshold', 'Version':'1','Severity': 'critical', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 10 } } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/mythreshold?api-version=2015-03-20 $thresholdWithSevJson

고유 작업 ID와 Put 메서드를 사용하여 일정에 대한 심각도 작업을 수정합니다. 요청 본문에는 작업의 etag가 포함되어야 합니다.

$thresholdWithSevJson = "{'etag': 'W/\"datetime'2016-02-25T20%3A54%3A20.1302566Z'\"','properties': { 'Name': 'My Threshold', 'Version':'1','Severity': 'critical', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 10 } } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/mythreshold?api-version=2015-03-20 $thresholdWithSevJson

표시 안 함

Log Analytics 기반 쿼리 경고는 임계값을 충족하거나 초과할 때마다 발생합니다. 쿼리에 내포된 논리에 따라 일련의 간격으로 경고가 발생할 수 있습니다. 그 결과 알림이 지속적으로 전송됩니다. 이러한 시나리오를 방지하려면 Log Analytics가 경고 규칙에 대해 두 번째로 알림이 실행되기 전에 규정된 시간 동안 기다리도록 지시하는 옵션을 설정할 Suppress 수 있습니다.

예를 들어 가 30분 동안 설정된 경우 Suppress 경고가 처음으로 실행되고 구성된 알림을 보냅니다. 그런 다음 경고 규칙에 대한 알림이 다시 사용되기까지 30분 동안 기다립니다. 중간 기간 동안 경고 규칙은 계속 실행됩니다. 이 기간 동안 경고 규칙이 발생한 횟수에 관계없이 Log Analytics에서 지정된 시간 동안 알림만 표시되지 않습니다.

Suppress Log Analytics 경고 규칙의 속성은 값을 사용하여 Throttling 지정됩니다. 제거 기간은 값을 사용하여 DurationInMinutes 지정됩니다.

다음 샘플 응답은 , SeveritySuppress 속성만 Threshold있는 작업에 대한 것입니다.

"etag": "W/\"datetime'2016-02-25T20%3A54%3A20.1302566Z'\"",
"properties": {
   "Type": "Alert",
   "Name": "My threshold action",
   "Threshold": {
      "Operator": "gt",
      "Value": 10
   },
   "Throttling": {
   "DurationInMinutes": 30
   },
   "Severity": "critical",
   "Version": 1
}

고유한 작업 ID와 함께 Put 메서드를 사용하여 를 사용하여 일정 Severity에 대한 새 작업을 만듭니다.

$AlertSuppressJson = "{'properties': { 'Name': 'My Threshold', 'Version':'1','Severity': 'critical', 'Type':'Alert', 'Throttling': { 'DurationInMinutes': 30 },'Threshold': { 'Operator': 'gt', 'Value': 10 } } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myalert?api-version=2015-03-20 $AlertSuppressJson

고유 작업 ID와 Put 메서드를 사용하여 일정에 대한 심각도 작업을 수정합니다. 요청 본문에는 작업의 etag가 포함되어야 합니다.

$AlertSuppressJson = "{'etag': 'W/\"datetime'2016-02-25T20%3A54%3A20.1302566Z'\"','properties': { 'Name': 'My Threshold', 'Version':'1','Severity': 'critical', 'Type':'Alert', 'Throttling': { 'DurationInMinutes': 30 },'Threshold': { 'Operator': 'gt', 'Value': 10 } } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myalert?api-version=2015-03-20 $AlertSuppressJson

작업 그룹

Azure의 모든 경고는 작업 그룹을 작업 처리의 기본 메커니즘으로 사용합니다. 작업 그룹을 사용하면 작업을 한 번 지정한 다음 동일한 작업을 반복적으로 선언할 필요 없이 Azure의 여러 경고에 작업 그룹을 연결할 수 있습니다. 작업 그룹은 이메일, SMS, 음성 통화, ITSM 연결, 자동화 Runbook 및 웹후크 URI와 같은 여러 작업을 지원합니다.

경고를 Azure로 확장한 사용자의 경우 이제 경고를 만들 수 있도록 일정에 작업 그룹 세부 정보가 전달 Threshold 되어야 합니다. 경고를 만들기 전에 먼저 작업 그룹 내에서 전자 메일 세부 정보, 웹후크 URL, Runbook 자동화 세부 정보 및 기타 작업을 정의해야 합니다. Azure Portal Azure Monitor에서 작업 그룹을 만들거나 작업 그룹 API를 사용할 수 있습니다.

작업 그룹을 경고에 연결하려면 경고 정의에서 작업 그룹의 고유한 Azure Resource Manager ID를 지정합니다. 다음 샘플에서는 사용을 보여 줍니다.

"etag": "W/\"datetime'2017-12-13T10%3A52%3A21.1697364Z'\"",
"properties": {
   "Type": "Alert",
   "Name": "test-alert",
   "Description": "I need to put a description here",
   "Threshold": {
      "Operator": "gt",
      "Value": 12
   },
   "AzNsNotification": {
      "GroupIds": [
         "/subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup"
      ]
   },
   "Severity": "critical",
   "Version": 1
}

Put 메서드를 고유한 작업 ID와 함께 사용하여 일정에 대해 이미 존재하는 작업 그룹을 연결합니다. 다음 샘플에서는 사용을 보여 줍니다.

$AzNsJson = "{'properties': { 'Name': 'test-alert', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 12 },'Severity': 'critical', 'AzNsNotification': {'GroupIds': ['subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup']} } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myAzNsaction?api-version=2015-03-20 $AzNsJson

기존 작업 ID와 함께 Put 메서드를 사용하여 일정에 연결된 작업 그룹을 수정합니다. 요청 본문에는 작업의 etag가 포함되어야 합니다.

$AzNsJson = "{'etag': 'datetime'2017-12-13T10%3A52%3A21.1697364Z'\"', 'properties': { 'Name': 'test-alert', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 12 },'Severity': 'critical', 'AzNsNotification': { 'GroupIds': ['subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup'] } } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myAzNsaction?api-version=2015-03-20 $AzNsJson

작업 사용자 지정

기본적으로 작업은 알림에 대한 표준 템플릿 및 형식을 따릅니다. 그러나 일부 작업은 작업 그룹에 의해 제어되는 경우에도 사용자 지정할 수 있습니다. 현재 및 WebhookPayload에 대한 EmailSubject 사용자 지정이 가능합니다.

작업 그룹에 대한 EmailSubject 사용자 지정

기본적으로 경고의 이메일 제목은 에 대한 <WorkspaceName>경고 알림 <AlertName> 입니다. 그러나 받은 편지함에서 필터 규칙을 쉽게 사용할 수 있도록 단어 또는 태그를 지정할 수 있도록 제목을 사용자 지정할 수 있습니다. 다음 샘플과 ActionGroup 같이 사용자 지정된 전자 메일 헤더 세부 정보를 세부 정보와 함께 보내야 합니다.

"etag": "W/\"datetime'2017-12-13T10%3A52%3A21.1697364Z'\"",
"properties": {
   "Type": "Alert",
   "Name": "test-alert",
   "Description": "I need to put a description here",
   "Threshold": {
      "Operator": "gt",
      "Value": 12
   },
   "AzNsNotification": {
      "GroupIds": [
         "/subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup"
      ],
      "CustomEmailSubject": "Azure Alert fired"
   },
   "Severity": "critical",
   "Version": 1
}

Put 메서드를 고유한 작업 ID와 함께 사용하여 기존 작업 그룹을 일정에 대한 사용자 지정과 연결합니다. 다음 샘플에서는 사용을 보여 줍니다.

$AzNsJson = "{'properties': { 'Name': 'test-alert', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 12 },'Severity': 'critical', 'AzNsNotification': {'GroupIds': ['subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup'], 'CustomEmailSubject': 'Azure Alert fired'} } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myAzNsaction?api-version=2015-03-20 $AzNsJson

기존 작업 ID와 함께 Put 메서드를 사용하여 일정에 연결된 작업 그룹을 수정합니다. 요청 본문에는 작업의 etag가 포함되어야 합니다.

$AzNsJson = "{'etag': 'datetime'2017-12-13T10%3A52%3A21.1697364Z'\"', 'properties': { 'Name': 'test-alert', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 12 },'Severity': 'critical', 'AzNsNotification': {'GroupIds': ['subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup']}, 'CustomEmailSubject': 'Azure Alert fired' } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myAzNsaction?api-version=2015-03-20 $AzNsJson
작업 그룹에 대한 WebhookPayload 사용자 지정

기본적으로 Log Analytics에 대한 작업 그룹을 통해 전송되는 웹후크에는 고정된 구조가 있습니다. 그러나 웹후크 엔드포인트의 요구 사항을 충족하기 위해 지원되는 특정 변수를 사용하여 JSON 페이로드를 사용자 지정할 수 있습니다. 자세한 내용은 로그 경고 규칙에 대한 웹후크 작업을 참조하세요.

사용자 지정된 웹후크 세부 정보를 세부 정보와 함께 ActionGroup 보내야 합니다. 작업 그룹 내에 지정된 모든 웹후크 URI에 적용됩니다. 다음 샘플에서는 사용을 보여 줍니다.

"etag": "W/\"datetime'2017-12-13T10%3A52%3A21.1697364Z'\"",
"properties": {
   "Type": "Alert",
   "Name": "test-alert",
   "Description": "I need to put a description here",
   "Threshold": {
      "Operator": "gt",
      "Value": 12
   },
   "AzNsNotification": {
      "GroupIds": [
         "/subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup"
      ],
   "CustomWebhookPayload": "{\"field1\":\"value1\",\"field2\":\"value2\"}",
   "CustomEmailSubject": "Azure Alert fired"
   },
   "Severity": "critical",
   "Version": 1
},

Put 메서드를 고유한 작업 ID와 함께 사용하여 기존 작업 그룹을 일정에 대한 사용자 지정과 연결합니다. 다음 샘플에서는 사용을 보여 줍니다.

$AzNsJson = "{'properties': { 'Name': 'test-alert', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 12 },'Severity': 'critical', 'AzNsNotification': {'GroupIds': ['subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup'], 'CustomEmailSubject': 'Azure Alert fired','CustomWebhookPayload': '{\"field1\":\"value1\",\"field2\":\"value2\"}'} } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myAzNsaction?api-version=2015-03-20 $AzNsJson

기존 작업 ID와 함께 Put 메서드를 사용하여 일정에 연결된 작업 그룹을 수정합니다. 요청 본문에는 작업의 etag가 포함되어야 합니다.

$AzNsJson = "{'etag': 'datetime'2017-12-13T10%3A52%3A21.1697364Z'\"', 'properties': { 'Name': 'test-alert', 'Version':'1', 'Type':'Alert', 'Threshold': { 'Operator': 'gt', 'Value': 12 },'Severity': 'critical', 'AzNsNotification': {'GroupIds': ['subscriptions/1234a45-123d-4321-12aa-123b12a5678/resourcegroups/my-resource-group/providers/microsoft.insights/actiongroups/test-actiongroup']}, 'CustomEmailSubject': 'Azure Alert fired','CustomWebhookPayload': '{\"field1\":\"value1\",\"field2\":\"value2\"}' } }"
armclient put /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/Microsoft.OperationalInsights/workspaces/{Workspace Name}/savedSearches/{Search ID}/schedules/{Schedule ID}/actions/myAzNsaction?api-version=2015-03-20 $AzNsJson

다음 단계