Wysyłanie metryk systemu operacyjnego gościa do magazynu metryk usługi Azure Monitor przy użyciu szablonu usługi Azure Resource Manager dla zestawu skalowania maszyn wirtualnych z systemem Windows
Uwaga
Agent usługi Azure Monitor (AMA) zbiera dane monitorowania z systemu operacyjnego gościa maszyn wirtualnych platformy Azure i hybrydowych maszyn wirtualnych oraz zestawów skalowania maszyn wirtualnych oraz dostarcza je do usługi Azure Monitor do użycia przez funkcje, szczegółowe informacje i inne usługi, takie jak Microsoft Sentinel i Microsoft Defender dla Chmury.
Zalecamy używanie agenta usługi Azure Monitor do zbierania dzienników i metryk z zestawów skalowania maszyn wirtualnych. Aby uzyskać więcej informacji, zobacz Omówienie agenta usługi Azure Monitor.
Za pomocą rozszerzenia usługi Azure Monitor Diagnostyka Azure dla systemu Windows (WAD) można zbierać metryki i dzienniki z systemu operacyjnego gościa działającego jako część maszyny wirtualnej, usługi w chmurze lub klastra usługi Azure Service Fabric. Rozszerzenie może wysyłać dane telemetryczne do wielu różnych lokalizacji wymienionych w wcześniej połączonym artykule.
W tym artykule opisano proces wysyłania metryk wydajności systemu operacyjnego gościa dla zestawu skalowania maszyn wirtualnych z systemem Windows do magazynu danych usługi Azure Monitor. Począwszy od usługi Microsoft Diagnostyka Azure w wersji 1.11, można zapisywać metryki bezpośrednio w magazynie metryk usługi Azure Monitor, gdzie już zbierane są standardowe metryki platformy. Przechowując je w tej lokalizacji, możesz uzyskać dostęp do tych samych akcji, które są dostępne dla metryk platformy. Akcje obejmują alerty niemal w czasie rzeczywistym, wykresy, routing, dostęp z interfejsu API REST i nie tylko. W przeszłości rozszerzenie Microsoft Diagnostyka Azure napisało do usługi Azure Storage, ale nie do magazynu danych usługi Azure Monitor.
Jeśli dopiero zaczynasz korzystać z szablonów usługi Resource Manager, dowiedz się więcej o wdrożeniach szablonów i ich strukturze i składni.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
Twoja subskrypcja musi być zarejestrowana w usłudze Microsoft.Insights.
Musisz mieć zainstalowany program Azure PowerShell lub możesz użyć usługi Azure Cloud Shell.
Konfigurowanie usługi Azure Monitor jako ujścia danych
Rozszerzenie Diagnostyka Azure używa funkcji nazywanej ujściami danych do kierowania metryk i dzienników do różnych lokalizacji. W poniższych krokach pokazano, jak za pomocą szablonu usługi Resource Manager i programu PowerShell wdrożyć maszynę wirtualną przy użyciu nowego ujścia danych usługi Azure Monitor.
Tworzenie szablonu usługi Resource Manager
W tym przykładzie można użyć publicznie dostępnego przykładowego szablonu:
Azuredeploy.json to wstępnie skonfigurowany szablon usługi Resource Manager na potrzeby wdrażania zestawu skalowania maszyn wirtualnych.
Azuredeploy.parameters.json to plik parametrów, który przechowuje informacje, takie jak nazwa użytkownika i hasło, które chcesz ustawić dla maszyny wirtualnej. Podczas wdrażania szablon usługi Resource Manager używa parametrów ustawionych w tym pliku.
Pobierz i zapisz oba pliki lokalnie.
Modyfikowanie azuredeploy.parameters.json
Otwórz plik azuredeploy.parameters.json:
- Podaj maszynę wirtualną VMSKU , którą chcesz wdrożyć. Zalecamy Standard_D2_v3.
- Określ wartość windowsOSVersion , która ma być odpowiednia dla zestawu skalowania maszyn wirtualnych. Zalecamy 2016-Datacenter.
- Nazwij zasób zestawu skalowania maszyn wirtualnych, który ma zostać wdrożony przy użyciu właściwości vmssName . Przykładem jest usługa VMSS-WAD-TEST.
- Określ liczbę maszyn wirtualnych, które mają być uruchamiane w zestawie skalowania maszyn wirtualnych przy użyciu właściwości instanceCount .
- Wprowadź wartości adminUsername i adminPassword dla zestawu skalowania maszyn wirtualnych. Te parametry są używane do zdalnego dostępu do maszyn wirtualnych w zestawie skalowania. Aby uniknąć porwania maszyny wirtualnej, nie używaj tych w tym szablonie. Boty skanują Internet pod kątem nazw użytkowników i haseł w publicznych repozytoriach GitHub. Prawdopodobnie będą testować maszyny wirtualne przy użyciu tych wartości domyślnych.
Modyfikowanie azuredeploy.json
Otwórz plik azuredeploy.json.
Dodaj zmienną do przechowywania informacji o koncie magazynu w szablonie usługi Resource Manager. Wszystkie dzienniki lub liczniki wydajności określone w pliku konfiguracji diagnostyki są zapisywane zarówno w magazynie metryk usługi Azure Monitor, jak i na koncie magazynu, które określisz tutaj:
"variables": {
//add this line
"storageAccountName": "[concat('storage', uniqueString(resourceGroup().id))]",
...
}
Znajdź definicję zestawu skalowania maszyn wirtualnych w sekcji zasobów i dodaj sekcję tożsamości do konfiguracji. Dzięki temu platforma Azure przypisze jej tożsamość systemową. Ten krok gwarantuje również, że maszyny wirtualne w zestawie skalowania mogą emitować metryki gościa dotyczące siebie do usługi Azure Monitor:
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables('namingInfix')]",
"location": "[resourceGroup().location]",
"apiVersion": "2017-03-30",
//add these lines below
"identity": {
"type": "systemAssigned"
},
//end of lines to add
...
}
W zasobie zestawu skalowania maszyn wirtualnych znajdź sekcję virtualMachineProfile . Dodaj nowy profil o nazwie extensionsProfile , aby zarządzać rozszerzeniami.
W pliku extensionProfile dodaj nowe rozszerzenie do szablonu, jak pokazano w sekcji VMSS-WAD-extension. Ta sekcja to tożsamości zarządzane dla rozszerzenia zasobów platformy Azure, które zapewnia akceptowanie emitowanych metryk przez usługę Azure Monitor. Pole nazwy może zawierać dowolną nazwę.
Poniższy kod z rozszerzenia MSI dodaje również rozszerzenie diagnostyki i konfigurację jako zasób rozszerzenia do zasobu zestawu skalowania maszyn wirtualnych. Możesz dodawać lub usuwać liczniki wydajności zgodnie z potrzebami:
"extensionProfile": {
"extensions": [
// BEGINNING of added code
// Managed identities for Azure resources
{
"name": "VMSS-WAD-extension",
"properties": {
"publisher": "Microsoft.ManagedIdentity",
"type": "ManagedIdentityExtensionForWindows",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"port": 50342
},
"protectedSettings": {}
}
},
// add diagnostic extension. (Remove this comment after pasting.)
{
"name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]",
"properties": {
"type": "IaaSDiagnostics",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
"storageAccountName": "[variables('storageAccountName')]",
"storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')),'2015-05-01-preview').key1]",
"storageAccountEndPoint": "https://core.windows.net/"
},
"publisher": "Microsoft.Azure.Diagnostics",
"settings": {
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": "50000",
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"sinks": "AzMonSink",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Memory\\% Committed Bytes In Use",
"sampleRate": "PT15S"
},
{
"counterSpecifier": "\\Memory\\Available Bytes",
"sampleRate": "PT15S"
},
{
"counterSpecifier": "\\Memory\\Committed Bytes",
"sampleRate": "PT15S"
}
]
},
"EtwProviders": {
"EtwEventSourceProviderConfiguration": [
{
"provider": "Microsoft-ServiceFabric-Actors",
"scheduledTransferKeywordFilter": "1",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableActorEventTable"
}
},
{
"provider": "Microsoft-ServiceFabric-Services",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableServiceEventTable"
}
}
],
"EtwManifestProviderConfiguration": [
{
"provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
}
]
}
},
"SinksConfig": {
"Sink": [
{
"name": "AzMonSink",
"AzureMonitor": {}
}
]
}
},
"StorageAccount": "[variables('storageAccountName')]"
},
"typeHandlerVersion": "1.11"
}
}
]
},
// end of added code. Be sure that the number and type of brackets match properly when done.
{
"type": "Microsoft.Insights/autoscaleSettings",
...
}
Dodaj element dependsOn dla konta magazynu, aby upewnić się, że został utworzony w odpowiedniej kolejności:
"dependsOn": [
"[concat('Microsoft.Network/loadBalancers/', variables('loadBalancerName'))]",
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]",
//add this line below
"[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]"
]
Utwórz konto magazynu, jeśli nie zostało jeszcze utworzone w szablonie:
"resources": [
// add this code
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountName')]",
"apiVersion": "2015-05-01-preview",
"location": "[resourceGroup().location]",
"properties": {
"accountType": "Standard_LRS"
}
},
// end added code
{
"type": "Microsoft.Network/virtualNetworks",
"name": "[variables('virtualNetworkName')]",
...
}
]
Zapisz i zamknij oba pliki.
Wdrażanie szablonu usługi Resource Manager
Uwaga
Musisz uruchomić rozszerzenie Diagnostyka Azure w wersji 1.5 lub nowszej i mieć właściwość autoUpgradeMinorVersion: właściwość ustawiona na wartość true w szablonie usługi Resource Manager. Następnie platforma Azure ładuje odpowiednie rozszerzenie podczas uruchamiania maszyny wirtualnej. Jeśli nie masz tych ustawień w szablonie, zmień je i ponownie wdróż szablon.
Aby wdrożyć szablon usługi Resource Manager, użyj programu Azure PowerShell:
Uruchom program PowerShell.
Zaloguj się do platformy Azure przy użyciu polecenia
Login-AzAccount
.Pobierz listę subskrypcji przy użyciu polecenia
Get-AzSubscription
.Ustaw subskrypcję, którą utworzysz, lub zaktualizuj maszynę wirtualną:
Select-AzSubscription -SubscriptionName "<Name of the subscription>"
Utwórz nową grupę zasobów dla wdrażanej maszyny wirtualnej. Uruchom następujące polecenie:
New-AzResourceGroup -Name "VMSSWADtestGrp" -Location "<Azure Region>"
Uruchom następujące polecenia, aby wdrożyć maszynę wirtualną:
Uwaga
Jeśli chcesz zaktualizować istniejący zestaw skalowania, dodaj polecenie -Mode Incremental na końcu polecenia.
New-AzResourceGroupDeployment -Name "VMSSWADTest" -ResourceGroupName "VMSSWADtestGrp" -TemplateFile "<File path of your azuredeploy.JSON file>" -TemplateParameterFile "<File path of your azuredeploy.parameters.JSON file>"
Po pomyślnym zakończeniu wdrażania zestaw skalowania maszyn wirtualnych powinien znajdować się w witrynie Azure Portal. Powinna ona emitować metryki do usługi Azure Monitor.
Uwaga
Mogą wystąpić błędy wokół wybranej maszyny wirtualnej VmSkuSize. W takim przypadku wróć do pliku azuredeploy.json i zaktualizuj wartość domyślną parametru vmSkuSize . Zalecamy wypróbowanie Standard_DS1_v2.
Wykres metryk
Zaloguj się w witrynie Azure Portal.
Wybierz pozycję Monitorowanie z menu po lewej stronie.
Na stronie Monitorowanie wybierz pozycję Metryki.
Zmień okres agregacji na Ostatnie 30 minut.
W menu rozwijanym zasobu wybierz utworzony zestaw skalowania maszyn wirtualnych.
W menu rozwijanym Przestrzenie nazw wybierz pozycję Gość maszyny wirtualnej.
W menu rozwijanym metryki wybierz pozycję Pamięć%Zatwierdzone bajty w obszarze Użyj.
Następnie możesz również użyć wymiarów tej metryki, aby utworzyć wykres dla określonej maszyny wirtualnej lub wykreślić każdą maszynę wirtualną w zestawie skalowania.
Następne kroki
- Dowiedz się więcej o metrykach niestandardowych.