Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 랩 가상 머신에서 시작을 클릭하고 PowerShell을 검색한 다음, 관리자 권한으로 PowerShell을 엽니다.

  2. 다음 명령을 실행하여 최신 버전의 랩 파일을 가상 머신에 다운로드합니다.

    참고: 명령 중 하나라도 실패하면 성공할 때까지 다시 실행합니다.

  3. New-Item -Path "C:\" -Name "LabFiles" -ItemType "directory"

  4. ([System.Net.WebClient]::new()).DownloadFile('https://github.com/MicrosoftLearning/AZ-104-MicrosoftAzureAdministrator/archive/refs/heads/master.zip', 'C:\LabFiles\master.zip')

  5. Expand-Archive -Path 'C:\LabFiles\master.zip' -DestinationPath 'C:\LabFiles'

  6. Move-item -Path "C:\LabFiles\AZ-104-MicrosoftAzureAdministrator-master\AllFiles\*" -Destination "C:\LabFiles" -confirm:$false

  7. Azure Portal에서 사용자 지정 템플릿 배포를 검색하여 선택합니다.

  8. 사용자 지정 배포 페이지에서 편집기에서 Build your own template(자체 템플릿 빌드)을 선택합니다.

  9. 템플릿 편집 페이지에서 파일 로드를 선택합니다.

  10. C:\LabFiles\Labs\11\az104-11-vm-template.json 파일을 찾아 선택하고 열기를 선택합니다.

  11. {
    "$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')]"
    }
    }
    }
    }
    ]
    }

  12. 저장을 선택합니다.

  13. 다음 정보를 사용하여 사용자 지정 배포 필드를 완료하고 다른 모든 필드는 기본값으로 둡니다.

...

  1. 검토 + 만들기를 선택한 다음, 만들기를 선택합니다.

  2. 배포가 완료될 때까지 기다렸다가 리소스 그룹으로 이동을 클릭합니다.

  3. 배포된 리소스를 검토합니다. 하나의 가상 머신이 있는 하나의 가상 네트워크가 있어야 합니다.

  4. 가상 머신에 대한 Azure Monitor 구성(마지막 작업에서 사용됨)

  1. 포털에서 모니터를 검색하여 선택합니다.

  2. 잠시 시간을 내어 사용 가능한 모든 인사이트, 검색, 심사 및 진단 도구를 검토합니다.

  3. VM 인사이트 상자에서 보기를 선택한 다음, 인사이트 구성을 선택합니다.

image-20241112-234259.png

  1. 가상 머신을 선택한 다음, 사용(두 번)을 선택합니다.

  2. 구독 및 데이터 수집 규칙에 대한 기본값을 사용한 다음, Configure를 선택합니다.

  3. 가상 머신 에이전트를 설치하고 구성하는 데 몇 분 정도 걸리므로 다음 단계로 진행합니다.

image-20241113-000714.png

...

작업 2: 경고 만들기

이 작업에서는 가상 시스템이 삭제될 때 대한 경고를 생성합니다.

...

  1. 알림에 대한 작업을 계속합니다. 다음: 작업을 선택하고, + 작업 그룹 만들기를 선택합니다.

    알고 계셨나요? 경고 규칙에 최대 5개의 작업 그룹을 추가할 수 있습니다. 작업 그룹은 특정 순서 없이 동시에 실행됩니다. 여러 경고 규칙에서 동일한 작업 그룹을 사용할 수 있습니다.

  2. Basics(기본) 탭에서 각 설정에 대해 다음 값을 입력합니다.

    image-20241113-003001.png

  3. 다음: 알림을 선택하고 각 설정에 대해 다음 값을 입력합니다.

    설정값알림 유형이메일/SMS 메시지/푸시/음성을 선택합니다.이름VM was deleted

  4. 전자 메일을 선택하고 전자 메일 상자에 전자 메일 주소(개인)를 입력한 다음 확인을 선택합니다.

image-20241113-003412.png

  1. 메모: 작업 그룹에 추가되었다는 이메일 알림을 받아야 합니다. 몇 분 지연이 있을 수 있지만 이는 규칙이 배포되었다는 확실한 신호입니다.

  2. 검토 + 만들기를 선택한 다음, 만들기를 선택합니다.

  3. 작업 그룹이 만들어지면 다음: 세부 정보 탭으로 이동하여 각 설정에 대해 다음 값을 입력합니다.

    image-20241113-003537.pngImage Modified

  4. 검토 + 만들기를 선택하여 입력의 유효성을 검사한 다음, 만들기를 선택합니다.

...

작업 4: 경고를 트리거하고 작동하는지 확인

이 작업에서는 경고를 트리거하고 알림이 전송되었는지 확인합니다.

...

  1. 제목 표시줄에서 알림 아이콘을 선택하고 vm0이 성공적으로 삭제될 때까지 기다립니다.

  2. 중요 공지: Azure Monitor 경고 VM이 삭제되었습니다. 활성화됨... 그렇지 않은 경우 전자 메일 프로그램을 열고 azure-noreply@microsoft.com 에서 보낸 전자 메일을 찾습니다.

image-20241113-004648.pngImage Removedimage-20241113-035338.pngImage Added

  1. Azure Portal 리소스 메뉴에서 모니터를 선택한 다음, 왼쪽 메뉴에서 경고를 선택합니다.

  2. vm0을 삭제하여 생성된 세 개의 자세한 경고가 있어야 합니다.

    메모: 경고 이메일을 보내고 포털에서 경고를 업데이트하는 데 몇 분 정도 걸릴 수 있습니다. 기다리지 않으려면 다음 작업을 계속한 다음 돌아옵니다.

  3. 경고 중 하나의 이름(예: VM이 삭제됨)을 선택합니다. 이벤트에 대한 자세한 정보를 보여주는 경고 세부 정보 창이 나타납니다.

...

  1. 경고 블레이드에서 계속 진행하고, + 만들기를 클릭하고, 경고 처리 규칙을 선택합니다.

  2. 리소스 그룹 AZ-104-Module11을 선택한 다음, 적용을 선택합니다.

  3. 다음: 규칙 설정을 선택한 다음, 알림 표시 안 함을 선택합니다.

image-20241113-043304.pngImage Added

  1. 다음: 예약을 선택합니다.

  2. 기본적으로 규칙은 사용하지 않도록 설정하거나 일정을 구성하지 않는 한 항상 작동합니다. 야간 유지 관리 중에 알림을 표시하지 않는 규칙을 정의하려고 합니다. 경고 처리 규칙의 스케줄링에 대해 다음 설정을 입력합니다.

...

  1. image-20241113-043749.pngImage Added

  2. 다음: 세부 정보를 선택하고 다음 설정을 입력합니다.

...

  1. image-20241113-043829.pngImage Added

  2. 검토 + 만들기를 선택하여 입력의 유효성을 검사한 다음, 만들기를 선택합니다.

...

작업 6: Azure Monitor 로그 쿼리 사용

...

  1. Azure Portal에서 모니터 블레이드를 검색하여 선택하고 로그를 클릭합니다.

  1. 필요한 경우 시작 화면을 닫습니다.

  2. 범위, 리소스 그룹, AZ-104-Module11을 선택한 다음, 적용을 선택합니다.

image-20241113-044410.pngImage Added

  1. 쿼리 탭에서 가상 머신(왼쪽 창)을 선택합니다.

  2. 사용 가능한 쿼리를 검토합니다. Count heartbeats 쿼리를 실행합니다(쿼리 위로 마우스를 가져갑니다).

  3. 가상 머신이 실행 중일 때의 하트비트 수를 받아야 합니다.

  4. 쿼리를 검토합니다. 이 쿼리는 하트비트 테이블을 사용합니다.

  5. 쿼리를 이 쿼리로 바꾼 다음 Run(실행)을 클릭합니다. 결과 차트를 검토합니다.

    Code Block
     InsightsMetrics
     | where TimeGenerated > ago(1h)
     | where Name == "UtilizationPercentage"
     | summarize avg(Val) by bin(TimeGenerated, 5m), Computer //split up by computer
     | render timechart
    
  6. 시간이 있으면 다른 쿼리를 검토하고 실행합니다.

image-20241113-044618.pngImage Added

알고 계셨나요?: 다른 쿼리로 연습하고 싶다면 Log Analytics 데모 환경이 있습니다.

알고 계셨나요?: 마음에 드는 검색어를 찾으면 해당 검색어에서 알림을 만들 수 있습니다.

Copilot으로 학습 확장

Copilot은 Azure 스크립팅 도구를 사용하는 방법을 배우는 데 도움이 될 수 있습니다. Copilot은 또한 실험실에서 다루지 않는 영역이나 추가 정보가 필요한 영역을 지원할 수 있습니다. Edge 브라우저를 열고 Copilot(오른쪽 상단)을 선택하거나 http://copilot.microsoft.com 로 이동합니다. 몇 분 정도 시간을 내어 이러한 프롬프트를 시도해 보십시오.

...

핵심 요약

실습을 완료하신 것을 축하드립니다. 이 실습의 주요 내용은 다음과 같습니다.

  • 경고는 사용자가 인프라 또는 애플리케이션에 문제가 있을 수 있음을 알아차리기 전에 문제를 감지하고 해결하는 데 도움이 됩니다.

  • Azure Monitor 데이터 플랫폼의 모든 메트릭 또는 로그 데이터 원본에 대해 경고할 수 있습니다.

  • 경고 규칙은 데이터를 모니터링하고 지정된 리소스에서 어떤 일이 발생하고 있음을 나타내는 신호를 캡처합니다.

  • 경고 규칙의 조건이 충족되면 경고가 트리거됩니다. 여러 작업(이메일, SMS, 푸시, 음성)을 트리거할 수 있습니다.

  • 작업 그룹에는 경고에 대한 알림을 받아야 하는 개인이 포함됩니다.