이 랩에서는 Azure Monitor에 대해 알아봅니다. 경고를 만들어 작업 그룹에 보내는 방법을 배웁니다. 경고를 트리거 및 테스트하고 활동 로그를 확인합니다.
이 랩에는 Azure 구독이 필요합니다. 구독 유형은 이 랩의 기능 가용성에 영향을 줄 수 있습니다. 지역을 변경할 수 있지만 단계는 미국 동부를 사용하여 작성되었습니다.
시나리오
조직에서 인프라를 Azure로 마이그레이션했습니다. 관리자에게 중요한 인프라 변경 사항을 알리는 것이 중요합니다. Log Analytics를 포함하여 Azure Monitor의 기능을 검사할 계획입니다.
인터랙티브 실험실 시뮬레이션
이 항목에 유용할 수 있는 대화형 랩 시뮬레이션이 있습니다. 시뮬레이션을 사용하면 자신의 속도에 맞게 유사한 시나리오를 클릭할 수 있습니다. 인터랙티브 시뮬레이션과 이 실습 사이에는 차이점이 있지만 많은 핵심 개념은 동일합니다. Azure 구독은 필요하지 않습니다.
모니터링을 구현합니다. Log Analytics 작업 영역 및 Azure 자동화 솔루션을 만듭니다. 가상 머신에 대한 모니터링 및 진단 설정을 검토합니다. Azure Monitor 및 Log Analytics 기능을 검토합니다.
직무 기술
작업 1: 템플릿을 사용하여 인프라를 프로비저닝합니다.
작업 2: 경고를 만듭니다.
작업 3: 작업 그룹 알림을 구성합니다.
작업 4: 경고를 트리거하고 작동하는지 확인합니다.
작업 5: 경고 처리 규칙을 구성합니다.
작업 6: Azure Monitor 로그 쿼리를 사용합니다.
작업 1: 템플릿을 사용하여 인프라 프로비전
이 작업에서는 모니터링 시나리오를 테스트하는 데 사용할 가상 컴퓨터를 배포합니다.
랩 가상 머신에서 시작을 클릭하고
PowerShell
을 검색한 다음, 관리자 권한으로 PowerShell을 엽니다.다음 명령을 실행하여 최신 버전의 랩 파일을 가상 머신에 다운로드합니다.
참고: 명령 중 하나라도 실패하면 성공할 때까지 다시 실행합니다.
New-Item -Path "C:\" -Name "LabFiles" -ItemType "directory"
([System.Net.WebClient]::new()).DownloadFile('https://github.com/MicrosoftLearning/AZ-104-MicrosoftAzureAdministrator/archive/refs/heads/master.zip', 'C:\LabFiles\master.zip')
Expand-Archive -Path 'C:\LabFiles\master.zip' -DestinationPath 'C:\LabFiles'
Move-item -Path "C:\LabFiles\AZ-104-MicrosoftAzureAdministrator-master\AllFiles\*" -Destination "C:\LabFiles" -confirm:$false
Azure Portal에서
사용자 지정 템플릿 배포
를 검색하여 선택합니다.사용자 지정 배포 페이지에서 편집기에서 Build your own template(자체 템플릿 빌드)을 선택합니다.
템플릿 편집 페이지에서 파일 로드를 선택합니다.
C:\LabFiles\Labs\11\az104-11-vm-template.json 파일을 찾아 선택하고 열기를 선택합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminUsername": {
"type": "string",
"metadata": {
"description": "Admin username"
}
},
"adminPassword": {
"type": "securestring",
"metadata": {
"description": "Admin password"
}
},
"vmNamePrefix": {
"type": "string",
"defaultValue": "az104-vm",
"metadata": {
"description": "VM name prefix"
}
},
"pipNamePrefix": {
"type": "string",
"defaultValue": "az104-pip",
"metadata": {
"description": "Public IP address name prefix"
}
},
"nicNamePrefix": {
"type": "string",
"defaultValue": "az104-nic",
"metadata": {
"description": "Nic name prefix"
}
},
"imagePublisher": {
"type": "string",
"defaultValue": "MicrosoftWindowsServer",
"metadata": {
"description": "Image Publisher"
}
},
"imageOffer": {
"type": "string",
"defaultValue": "WindowsServer",
"metadata": {
"description": "Image Offer"
}
},
"imageSKU": {
"type": "string",
"defaultValue": "2019-Datacenter",
"allowedValues": [
"2019-Datacenter",
"2019-Datacenter-Server-Core",
"2019-Datacenter-Server-Core-smalldisk"
],
"metadata": {
"description": "Image SKU"
}
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D2s_v3",
"metadata": {
"description": "VM size"
}
},
"virtualNetworkName": {
"type": "string",
"defaultValue": "az104-vnet",
"metadata": {
"description": "Virtual network name"
}
},
"addressPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/24",
"metadata": {
"description": "Virtual network address prefix"
}
},
"virtualNetworkResourceGroup": {
"type": "string",
"defaultValue": "az104-rg11",
"metadata": {
"description": "Resource group of the VNet"
}
},
"subnet0Name": {
"type": "string",
"defaultValue": "subnet0",
"metadata": {
"description": "VNet first subnet name"
}
},
"subnet0Prefix": {
"type": "string",
"defaultValue": "10.0.0.0/26",
"metadata": {
"description": "VNet first subnet prefix"
}
},
"nsgName": {
"type": "string",
"defaultValue": "az104-nsg01",
"metadata": {
"description": "Network security group name"
}
}
},
"variables": {
"vnetID": "[resourceId(parameters('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]",
"subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet0Name'))]",
"storageAccountName": "[concat('az10411', uniqueString(subscription().subscriptionId))]",
"storageAccountType": "Standard_LRS",
"numberOfInstances": 1,
"computeAPIVersion": "2018-10-01",
"networkAPIVersion": "2018-12-01",
"storageAPIVersion": "2019-04-01"
},
"resources": [
{
"type": "Microsoft.Network/networkInterfaces",
"name": "[concat(parameters('nicNamePrefix'), copyindex())]",
"apiVersion": "[variables('networkAPIVersion')]",
"location": "[resourceGroup().location]",
"copy": {
"name": "nicLoop",
"count": "[variables('numberOfInstances')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks/',parameters('virtualNetworkName'))]",
"[resourceId('Microsoft.Network/networkSecurityGroups/',parameters('nsgName'))]",
"pipLoop"
],
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[variables('subnetRef')]"
},
"publicIpAddress": {
"id": "[resourceId('Microsoft.Network/publicIpAddresses',concat(parameters('pipNamePrefix'),copyindex()))]"
}
}
}
],
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('nsgName'))]"
}
}
},
{
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('virtualNetworkName')]",
"apiVersion": "[variables('networkAPIVersion')]",
"location": "[resourceGroup().location]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('addressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('subnet0Name')]",
"properties": {
"addressPrefix": "[parameters('subnet0Prefix')]"
}
}
]
}
},
{
"type": "Microsoft.Network/publicIpAddresses",
"name": "[concat(parameters('pipNamePrefix'), copyindex())]",
"apiVersion": "[variables('networkApiVersion')]",
"copy": {
"name": "pipLoop",
"count": "[variables('numberOfInstances')]"
},
"location": "[resourceGroup().location]",
"properties": {
"publicIpAllocationMethod": "Dynamic"
}
},
{
"type": "Microsoft.Network/networkSecurityGroups",
"name": "[parameters('nsgName')]",
"apiVersion": "[variables('networkApiVersion')]",
"location": "[resourceGroup().location]",
"properties": {
"securityRules": [
{
"name": "default-allow-rdp",
"properties": {
"priority": 1000,
"sourceAddressPrefix": "",
"protocol": "Tcp",
"destinationPortRange": "3389",
"access": "Allow",
"direction": "Inbound",
"sourcePortRange": "",
"destinationAddressPrefix": "*"
}
}
]
}
},
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountName')]",
"apiVersion": "[variables('storageAPIVersion')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "[variables('storageAccountType')]"
},
"kind": "Storage",
"properties": {}
},
{
"type": "Microsoft.Compute/virtualMachines",
"name": "[concat(parameters('vmNamePrefix'), copyindex())]",
"apiVersion": "[variables('computeAPIVersion')]",
"copy": {
"name": "virtualMachineLoop",
"count": "[variables('numberOfInstances')]"
},
"location": "[resourceGroup().location]",
"dependsOn": [
"nicLoop",
"[resourceId('Microsoft.Storage/storageAccounts/',variables('storageAccountName'))]"
],
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"osProfile": {
"computerName": "[concat(parameters('vmNamePrefix'), copyIndex())]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
"storageProfile": {
"imageReference": {
"publisher": "[parameters('imagePublisher')]",
"offer": "[parameters('imageOffer')]",
"sku": "[parameters('imageSKU')]",
"version": "latest"
},
"osDisk": {
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces',concat(parameters('nicNamePrefix'),copyindex()))]"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": "true",
"storageUri": "[concat('https://', variables('storageAccountName'), '.blob.core.windows.net')]"
}
}
}
}
]
}저장을 선택합니다.
다음 정보를 사용하여 사용자 지정 배포 필드를 완료하고 다른 모든 필드는 기본값으로 둡니다.
검토 + 만들기를 선택한 다음, 만들기를 선택합니다.
배포가 완료될 때까지 기다렸다가 리소스 그룹으로 이동을 클릭합니다.
배포된 리소스를 검토합니다. 하나의 가상 머신이 있는 하나의 가상 네트워크가 있어야 합니다.
가상 머신에 대한 Azure Monitor 구성(마지막 작업에서 사용됨)
포털에서
모니터
를 검색하여 선택합니다.잠시 시간을 내어 사용 가능한 모든 인사이트, 검색, 심사 및 진단 도구를 검토합니다.
VM 인사이트 상자에서 보기를 선택한 다음, 인사이트 구성을 선택합니다.
가상 머신을 선택한 다음, 사용(두 번)을 선택합니다.
구독 및 데이터 수집 규칙에 대한 기본값을 사용한 다음, Configure를 선택합니다.
가상 머신 에이전트를 설치하고 구성하는 데 몇 분 정도 걸리므로 다음 단계로 진행합니다.
작업 2: 경고 만들기
이 작업에서는 가상 시스템이 삭제될 때 대한 경고를 생성합니다.
모니터 페이지에서 계속 에서 경고를 선택합니다.
만들기 +를 선택하고 경고 규칙을 선택합니다.
리소스 그룹 AZ-104-Module11에 대한 상자를 선택한 다음, 적용을 선택합니다. 이 경고는 리소스 그룹의 모든 가상 머신에 적용됩니다. 또는 하나의 특정 시스템만 지정할 수 있습니다.
조건 탭을 선택한 다음 모든 신호 보기 링크를 선택합니다.
Delete Virtual Machine (Virtual Machines)(가상 머신 삭제)
을 검색하여 선택합니다. 다른 내장 신호에 주목하십시오. 적용을 선택합니다.
Alert logic 영역(아래로 스크롤)에서 Event level selections(이벤트 수준 선택)를 검토합니다. 기본값인 모두를 선택된 상태로 둡니다.
상태 선택 항목을 검토합니다. 기본값인 모두를 선택된 상태로 둡니다.
다음 작업을 위해 Create an alert rule(경고 규칙 만들기) 창을 열어 둡니다.
작업 3: 작업 그룹 알림 구성
이 작업에서 경고가 트리거되면 운영 팀에 이메일 알림을 보냅니다.
알림에 대한 작업을 계속합니다. 다음: 작업을 선택하고, + 작업 그룹 만들기를 선택합니다.
알고 계셨나요? 경고 규칙에 최대 5개의 작업 그룹을 추가할 수 있습니다. 작업 그룹은 특정 순서 없이 동시에 실행됩니다. 여러 경고 규칙에서 동일한 작업 그룹을 사용할 수 있습니다.
Basics(기본) 탭에서 각 설정에 대해 다음 값을 입력합니다.
다음: 알림을 선택하고 각 설정에 대해 다음 값을 입력합니다.
설정값알림 유형이메일/SMS 메시지/푸시/음성을 선택합니다.이름
VM was deleted
전자 메일을 선택하고 전자 메일 상자에 전자 메일 주소(개인)를 입력한 다음 확인을 선택합니다.
메모: 작업 그룹에 추가되었다는 이메일 알림을 받아야 합니다. 몇 분 지연이 있을 수 있지만 이는 규칙이 배포되었다는 확실한 신호입니다.
검토 + 만들기를 선택한 다음, 만들기를 선택합니다.
작업 그룹이 만들어지면 다음: 세부 정보 탭으로 이동하여 각 설정에 대해 다음 값을 입력합니다.
검토 + 만들기를 선택하여 입력의 유효성을 검사한 다음, 만들기를 선택합니다.
작업 4: 경고를 트리거하고 작동하는지 확인
이 작업에서는 경고를 트리거하고 알림이 전송되었는지 확인합니다.
메모: 경고 규칙이 배포되기 전에 가상 머신을 삭제하면 경고 규칙이 트리거되지 않을 수 있습니다.
포털에서
Virtual Machines
를 검색하여 선택합니다.az104-vm0 가상 머신에 대한 확인란을 선택합니다.
메뉴 모음에서 삭제를 선택합니다.
Apply force delete(강제 삭제 적용) 확인란을 선택합니다. 아래쪽의 확인란을 선택하여 리소스를 삭제할 것인지 확인하고 삭제를 선택합니다.
제목 표시줄에서 알림 아이콘을 선택하고 vm0이 성공적으로 삭제될 때까지 기다립니다.
중요 공지: Azure Monitor 경고 VM이 삭제되었습니다. 활성화됨... 그렇지 않은 경우 전자 메일 프로그램을 열고 azure-noreply@microsoft.com 에서 보낸 전자 메일을 찾습니다.
Azure Portal 리소스 메뉴에서 모니터를 선택한 다음, 왼쪽 메뉴에서 경고를 선택합니다.
vm0을 삭제하여 생성된 세 개의 자세한 경고가 있어야 합니다.
메모: 경고 이메일을 보내고 포털에서 경고를 업데이트하는 데 몇 분 정도 걸릴 수 있습니다. 기다리지 않으려면 다음 작업을 계속한 다음 돌아옵니다.
경고 중 하나의 이름(예: VM이 삭제됨)을 선택합니다. 이벤트에 대한 자세한 정보를 보여주는 경고 세부 정보 창이 나타납니다.
작업 5: 경고 처리 규칙 구성
이 작업에서는 유지 관리 기간 동안 알림을 표시하지 않는 경고 규칙을 만듭니다.
경고 블레이드에서 계속 진행하고, + 만들기를 클릭하고, 경고 처리 규칙을 선택합니다.
리소스 그룹 AZ-104-Module11을 선택한 다음, 적용을 선택합니다.
다음: 규칙 설정을 선택한 다음, 알림 표시 안 함을 선택합니다.
다음: 예약을 선택합니다.
기본적으로 규칙은 사용하지 않도록 설정하거나 일정을 구성하지 않는 한 항상 작동합니다. 야간 유지 관리 중에 알림을 표시하지 않는 규칙을 정의하려고 합니다. 경고 처리 규칙의 스케줄링에 대해 다음 설정을 입력합니다.
다음: 세부 정보를 선택하고 다음 설정을 입력합니다.
검토 + 만들기를 선택하여 입력의 유효성을 검사한 다음, 만들기를 선택합니다.
작업 6: Azure Monitor 로그 쿼리 사용
이 작업에서는 Azure Monitor를 사용하여 가상 머신에서 캡처된 데이터를 쿼리합니다.
Azure Portal에서
모니터
블레이드를 검색하여 선택하고 로그를 클릭합니다.
필요한 경우 시작 화면을 닫습니다.
범위, 리소스 그룹, AZ-104-Module11을 선택한 다음, 적용을 선택합니다.
쿼리 탭에서 가상 머신(왼쪽 창)을 선택합니다.
사용 가능한 쿼리를 검토합니다. Count heartbeats 쿼리를 실행합니다(쿼리 위로 마우스를 가져갑니다).
가상 머신이 실행 중일 때의 하트비트 수를 받아야 합니다.
쿼리를 검토합니다. 이 쿼리는 하트비트 테이블을 사용합니다.
쿼리를 이 쿼리로 바꾼 다음 Run(실행)을 클릭합니다. 결과 차트를 검토합니다.
InsightsMetrics | where TimeGenerated > ago(1h) | where Name == "UtilizationPercentage" | summarize avg(Val) by bin(TimeGenerated, 5m), Computer //split up by computer | render timechart
시간이 있으면 다른 쿼리를 검토하고 실행합니다.
알고 계셨나요?: 다른 쿼리로 연습하고 싶다면 Log Analytics 데모 환경이 있습니다.
알고 계셨나요?: 마음에 드는 검색어를 찾으면 해당 검색어에서 알림을 만들 수 있습니다.
Copilot으로 학습 확장
Copilot은 Azure 스크립팅 도구를 사용하는 방법을 배우는 데 도움이 될 수 있습니다. Copilot은 또한 실험실에서 다루지 않는 영역이나 추가 정보가 필요한 영역을 지원할 수 있습니다. Edge 브라우저를 열고 Copilot(오른쪽 상단)을 선택하거나 http://copilot.microsoft.com 로 이동합니다. 몇 분 정도 시간을 내어 이러한 프롬프트를 시도해 보십시오.
가상 머신이 다운될 때 Azure에서 경고할 기본 구성 단계는 무엇인가요?
Azure 경고가 트리거될 때 알림을 받으려면 어떻게 해야 하나요?
Azure Monitor 쿼리를 생성하여 가상 머신 CPU 성능 정보를 제공합니다.
자기 주도 교육에 대해 자세히 알아보기
Azure에서 경고를 통해 인시던트 대응을 개선합니다. Azure Monitor의 경고 기능을 통해 인프라의 인시던트 및 활동에 대응합니다.
Azure Monitor를 사용하여 Azure 가상 머신을 모니터링합니다. Azure Monitor를 사용하여 VM 호스트 및 클라이언트 메트릭과 로그를 수집하고 분석하여 Azure VM을 모니터링합니다.
핵심 요약
실습을 완료하신 것을 축하드립니다. 이 실습의 주요 내용은 다음과 같습니다.
경고는 사용자가 인프라 또는 애플리케이션에 문제가 있을 수 있음을 알아차리기 전에 문제를 감지하고 해결하는 데 도움이 됩니다.
Azure Monitor 데이터 플랫폼의 모든 메트릭 또는 로그 데이터 원본에 대해 경고할 수 있습니다.
경고 규칙은 데이터를 모니터링하고 지정된 리소스에서 어떤 일이 발생하고 있음을 나타내는 신호를 캡처합니다.
경고 규칙의 조건이 충족되면 경고가 트리거됩니다. 여러 작업(이메일, SMS, 푸시, 음성)을 트리거할 수 있습니다.
작업 그룹에는 경고에 대한 알림을 받아야 하는 개인이 포함됩니다.
Add Comment