공용 IP 주소 모니터링

Azure 리소스를 사용하는 중요한 애플리케이션 및 비즈니스 프로세스가 있는 경우 이와 같은 리소스의 가용성, 성능 및 작업을 모니터링할 수 있습니다.

이 문서에서는 공용 IP 주소에서 생성되는 모니터링 데이터에 대해 설명합니다. 공용 IP 주소는 Azure Monitor를 사용합니다. 이 기능을 사용하는 모든 Azure 서비스에 공통되는 Azure Monitor 기능에 익숙하지 않은 경우, Azure Monitor로 Azure 리소스 모니터링을 읽어 보세요.

공용 IP 주소 인사이트

Azure의 일부 서비스에는 서비스 모니터링을 위한 시작점을 제공하는 Azure Portal에 특별히 집중적으로 미리 작성된 모니터링 대시보드가 있습니다. 이러한 특수 대시보드를 “인사이트”라고 합니다.

공용 IP 주소 인사이트는 다음을 제공합니다.

  • 트래픽 데이터

  • DDoS 정보

데이터 모니터링

공용 IP 주소는 Azure 리소스에서 데이터 모니터링에 설명된 다른 Azure 리소스와 동일한 종류의 모니터링 데이터를 수집합니다.

공용 IP 주소로 만들어진 메트릭 및 로그 메트릭에 대한 자세한 내용은 공용 IP 주소 데이터 참조 모니터링을 참조하세요.

수집 및 라우팅

플랫폼 메트릭 및 활동 로그는 자동으로 수집되고 저장되지만 진단 설정을 사용하여 다른 위치로 라우팅할 수 있습니다.

리소스 로그는 진단 설정을 만들고 하나 이상의 위치로 라우팅할 때까지 수집 및 저장되지 않습니다.

일반적인 지침으로, Azure Portal, CLI 또는 PowerShell을 사용하여 진단 설정을 만드는 프로세스는 Azure에서 플랫폼 로그 및 메트릭을 수집하는 진단 설정 만들기를 참조하세요. 진단 설정을 만들 때 수집할 로그 범주를 지정합니다. 공용 IP 주소 범주는 모니터링 공용 IP 주소 데이터 참조에 나열되어 있습니다.

진단 설정 만들기

Azure Portal, PowerShell 또는 Azure CLI를 사용하여 진단 설정을 만들 수 있습니다.

포털

  1. Azure Portal에 로그인합니다.

  2. 포털 상단의 검색 상자에 공용 IP 주소를 입력합니다. 검색 결과에서 공용 IP 주소를 선택합니다.

  3. 사용하도록 설정할 공용 IP 주소를 선택합니다. 이 예에서는 myPublicIP가 사용됩니다.

  4. 공용 IP 주소의 모니터링 섹션에서 진단 설정을 선택합니다.

  5. + 진단 설정 추가를 선택합니다.

  6. 진단 설정에 다음 정보를 입력하거나 선택합니다.

    설정
    진단 설정 이름 진단 설정의 이름을 입력합니다.
    로그
    범주 DDoSProtectionNotifications, DDoSMitigationFlowLogsDDoSMitigationReports를 선택합니다.
    메트릭
    AllMetrics를 선택합니다.
  7. 대상 세부 정보를 선택합니다. 대상 옵션 중 일부는 다음과 같습니다.

    • Log Analytics 작업 영역으로 보내기

      • 구독Log Analytics 작업 영역을 선택합니다.
    • 스토리지 계정에 보관

      • 구독스토리지 계정을 선택합니다.
    • 이벤트 허브로 스트림

      • 구독, 이벤트 허브 네임스페이스, 이벤트 허브 이름(선택 사항)이벤트 허브 정책 이름을 선택합니다.
    • 파트너 솔루션으로 보내기

      • 구독대상을 선택합니다.
  8. 저장을 선택합니다.

PowerShell

Azure PowerShell에 로그인합니다.

Connect-AzAccount 

Log Analytics 작업 영역

리소스 로그를 Log Analytics 작업 영역으로 보내려면 다음 명령을 입력합니다. 이 예에서는 myResourceGroup, myLogAnalyticsWorkspacemyPublicIP가 리소스 값으로 사용됩니다. 이러한 값을 사용자의 값으로 바꿉니다.

## Place the public IP in a variable. ##
$ippara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myPublicIP'
}
$ip = Get-AzPublicIPAddress @ippara
    
## Place the workspace in a variable. ##
$wspara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLogAnalyticsWorkspace'
}
$ws = Get-AzOperationalInsightsWorkspace @wspara
    
## Enable the diagnostic setting. ##
$diag = @{
	ResourceId = $ip.id
	Name = 'myDiagnosticSetting'
	Enabled = $true
	WorkspaceId = $ws.ResourceId
}
Set-AzDiagnosticSetting @diag

스토리지 계정

리소스 로그를 스토리지 계정으로 보내려면 다음 명령을 입력합니다. 이 예에서는 myResourceGroup, mystorageaccount8675myPublicIP가 리소스 값으로 사용됩니다. 이러한 값을 사용자의 값으로 바꿉니다.

## Place the public IP in a variable. ##
$ippara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myPublicIP'
}
$lb = Get-AzPublicIPAddress @ippara
    
## Place the storage account in a variable. ##
$storpara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'mystorageaccount8675'
}
$storage = Get-AzStorageAccount @storpara
    
## Enable the diagnostic setting. ##
$diag = @{
	ResourceId = $ip.id
	Name = 'myDiagnosticSetting'
	StorageAccountId = $storage.id
  Enabled = $true
}
Set-AzDiagnosticSetting @diag

이벤트 허브

리소스 로그를 이벤트 허브 네임스페이스로 보내려면 다음 명령을 입력합니다. 이 예에서는 myResourceGroup, myeventhub8675myPublicIP가 리소스 값으로 사용됩니다. 이러한 값을 사용자의 값으로 바꿉니다.

## Place the public IP in a variable. ##
$ippara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myPublicIP'
}
$lb = Get-AzPublicIPAddress @ippara
    
## Place the event hub in a variable. ##
$hubpara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myeventhub8675'
}
$eventhub = Get-AzEventHubNamespace @hubpara

## Place the event hub authorization rule in a variable. ##    
$hubrule = @{
    ResourceGroupName = 'myResourceGroup'
    Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule

## Enable the diagnostic setting. ##
$diag = @{
	ResourceId = $ip.id
	Name = 'myDiagnosticSetting'
	EventHubName = $eventhub.Name
  EventHubAuthorizationRuleId = $eventhubrule.Id
  Enabled = $true
}
Set-AzDiagnosticSetting @diag

Azure CLI

Azure CLI에 로그인합니다.

az login

Log Analytics 작업 영역

리소스 로그를 Log Analytics 작업 영역으로 보내려면 다음 명령을 입력합니다. 이 예에서는 myResourceGroup, myLogAnalyticsWorkspacemyPublicIP가 리소스 값으로 사용됩니다. 이러한 값을 사용자의 값으로 바꿉니다.

ipid=$(az network public-ip show \
    --name myPublicIP \
    --resource-group myResourceGroup \
    --query id \
    --output tsv)

wsid=$(az monitor log-analytics workspace show \
    --resource-group myResourceGroup \
    --workspace-name myLogAnalyticsWorkspace \
    --query id \
    --output tsv)
    
az monitor diagnostic-settings create \
    --name myDiagnosticSetting \
    --resource $ipid \
    --logs '[{"category": "DDoSProtectionNotifications","enabled": true},{"category": "DDoSMitigationFlowLogs","enabled": true},{"category": "DDoSMitigationReports","enabled": true}]' \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --workspace $wsid

스토리지 계정

리소스 로그를 스토리지 계정으로 보내려면 다음 명령을 입력합니다. 이 예에서는 myResourceGroup, mystorageaccount8675myPublicIP가 리소스 값으로 사용됩니다. 이러한 값을 사용자의 값으로 바꿉니다.

ipid=$(az network public-ip show \
    --name myPublicIP \
    --resource-group myResourceGroup \
    --query id \
    --output tsv)

storid=$(az storage account show \
        --name mystorageaccount8675 \
        --resource-group myResourceGroup \
        --query id \
        --output tsv)
    
az monitor diagnostic-settings create \
    --name myDiagnosticSetting \
    --resource $ipid \
    --logs '[{"category": "DDoSProtectionNotifications","enabled": true},{"category": "DDoSMitigationFlowLogs","enabled": true},{"category": "DDoSMitigationReports","enabled": true}]' \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --storage-account $storid

이벤트 허브

리소스 로그를 이벤트 허브 네임스페이스로 보내려면 다음 명령을 입력합니다. 이 예에서는 myResourceGroup, myeventhub8675myPublicIP가 리소스 값으로 사용됩니다. 이러한 값을 사용자의 값으로 바꿉니다.

ipid=$(az network public-ip show \
    --name myPublicIP \
    --resource-group myResourceGroup \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name myDiagnosticSetting \
    --resource $ipid \
    --event-hub myeventhub8675 \
    --event-hub-rule RootManageSharedAccessKey \
    --logs '[{"category": "DDoSProtectionNotifications","enabled": true},{"category": "DDoSMitigationFlowLogs","enabled": true},{"category": "DDoSMitigationReports","enabled": true}]' \
    --metrics '[{"category": "AllMetrics","enabled": true}]'

수집할 수 있는 메트릭 및 로그는 다음 섹션에서 설명합니다.

메트릭 분석

Azure Monitor 메뉴에서 메트릭을 열어 메트릭 탐색기를 통해 다른 Azure 서비스의 메트릭으로 공용 IP 주소에 대한 메트릭을 분석할 수 있습니다. 이 도구 사용에 대한 자세한 내용은 Azure Monitor 메트릭 탐색기를 사용하여 메트릭 분석을 참조하세요.

공용 IP 주소에 대해 수집된 플랫폼 메트릭 목록은 공용 IP 주소 데이터 참조 모니터링을 참조하세요.

Azure Monitor에서 지원되는 모든 리소스 메트릭 목록을 참조하세요.

로그 분석

Azure Monitor Logs의 데이터는 테이블마다 고유한 자체 속성 집합이 있는 테이블에 저장됩니다.

Azure Monitor의 모든 리소스 로그에는 동일한 필드와 그 뒤에 오는 서비스별 필드가 있습니다. 공용 스키마는 Azure Monitor 리소스 로그 스키마에서 설명합니다.

활동 로그는 구독 수준의 이벤트에 대한 인사이트를 제공하는 Azure의 플랫폼 로그 유형입니다. 활동 로그는 독립적으로 보거나 Azure Monitor Logs로 라우팅할 수 있습니다. 여기서 Log Analytics를 사용하여 훨씬 더 복잡한 쿼리를 수행할 수 있습니다.

공용 IP 주소에 대해 수집된 리소스 로그 형식 목록은 공용 IP 주소 데이터 참조 모니터링을 참조하세요.

Azure Monitor 로그에서 사용하고 Log Analytics에서 쿼리할 수 있는 테이블 목록은 공용 IP 주소 데이터 참조 모니터링을 참조하세요.

샘플 Kusto 쿼리

Important

공용 IP 메뉴에서 로그를 선택하면 현재 공용 IP 주소로 설정된 쿼리 범위와 함께 Log Analytics가 열립니다. 즉, 로그 쿼리에는 해당 리소스의 데이터만 포함됩니다. 다른 리소스의 데이터 또는 다른 Azure 리소스의 데이터를 포함하는 쿼리를 실행하려면 Azure Monitor 메뉴에서 로그를 선택합니다. 자세한 내용은 Azure Monitor Log Analytics의 로그 쿼리 범위 및 시간 범위를 참조하세요.

공용 IP 주소에 대한 일반적인 쿼리 목록은 Log Analytics 쿼리 인터페이스를 참조하세요.

다음은 Azure Portal의 Long Analytics 쿼리 인터페이스에서 찾을 수 있는 공용 IP 주소에 대한 기본 제공 쿼리의 예입니다.

Screenshot of the built in queries for Public IP addresses.

경고

Azure Monitor 경고는 모니터링 데이터에서 중요한 조건이 발견될 때 사용자에게 사전에 알립니다. 이를 통해 고객이 알기 전에 시스템 문제를 식별하고 해결할 수 있습니다. 메트릭, 로그활동 로그에서 경고를 설정할 수 있습니다. 서로 다른 형식의 경고에는 장점과 단점이 있습니다.

다음 표에는 공용 IP 주소에 대한 공통 및 권장 경고 규칙이 나열되어 있습니다.

경고 유형 조건 설명
DDoS 공격 진행 여부 GreaterThan 0.
1은 현재 공격을 받고 있는 상태입니다.
0은 정상적인 작업을 나타냅니다.
Azure의 에지 보호의 일환으로 공용 IP 주소는 DDoS 공격에 대해 모니터링됩니다. 공용 IP 주소가 영향을 받는 경우 경고를 통해 알림을 받을 수 있습니다.

다음 단계