Megosztás a következőn keresztül:


Azure Diagnostics engedélyezése Windows rendszerű virtuális gépen a PowerShell használatával

Azure Diagnostics az Azure azon képessége, amely lehetővé teszi a diagnosztikai adatok gyűjtését egy üzembe helyezett alkalmazáson. A diagnosztikai bővítmény használatával diagnosztikai adatokat gyűjthet, például alkalmazásnaplókat vagy teljesítményszámlálókat egy Windowst futtató Azure-beli virtuális gépről .

Engedélyezze a diagnosztikai bővítményt, ha a Resource Manager üzembehelyezési modellt használja

A diagnosztikai bővítményt a Windows rendszerű virtuális gépek Azure Resource Manager-alapú üzemi modellen keresztül történő létrehozásakor engedélyezheti, ha hozzáadja a bővítménykonfigurációt a Resource Manager sablonhoz. Lásd: Windows rendszerű virtuális gép létrehozása monitorozással és diagnosztikával az Azure Resource Manager sablon használatával.

Ha engedélyezni szeretné a diagnosztikai bővítményt egy meglévő virtuális gépen, amelyet a Resource Manager üzembehelyezési modellel hoztak létre, használhatja a Set-AzVMDiagnosticsExtension PowerShell-parancsmagot az alább látható módon.

$vm_resourcegroup = "myvmresourcegroup"
$vm_name = "myvm"
$diagnosticsconfig_path = "DiagnosticsPubConfig.xml"

Set-AzVMDiagnosticsExtension -ResourceGroupName $vm_resourcegroup -VMName $vm_name -DiagnosticsConfigurationPath $diagnosticsconfig_path

$diagnosticsconfig_path a diagnosztikai konfigurációt XML-ben tartalmazó fájl elérési útja az alábbi példában leírtak szerint.

Ha a diagnosztikai konfigurációs fájl egy StorageAccount elemet ad meg egy tárfiók nevével, akkor a Set-AzVMDiagnosticsExtension szkript automatikusan beállítja a diagnosztikai bővítményt, hogy diagnosztikai adatokat küldjön az adott tárfióknak. Ahhoz, hogy ez működjön, a tárfióknak ugyanabban az előfizetésben kell lennie, mint a virtuális gépnek.

Ha nem adott meg StorageAccount értéket a diagnosztikai konfigurációban, akkor meg kell adnia a StorageAccountName paramétert a parancsmagnak. Ha a StorageAccountName paraméter meg van adva, akkor a parancsmag mindig a paraméterben megadott tárfiókot fogja használni, nem pedig a diagnosztikai konfigurációs fájlban megadottat.

Ha a diagnosztikai tárfiók a virtuális géptől eltérő előfizetésben található, akkor explicit módon meg kell adnia a StorageAccountName és a StorageAccountKey paramétereket a parancsmagnak. A StorageAccountKey paraméterre nincs szükség, ha a diagnosztikai tárfiók ugyanabban az előfizetésben van, mivel a parancsmag automatikusan lekérdezheti és beállíthatja a kulcs értékét a diagnosztikai bővítmény engedélyezésekor. Ha azonban a diagnosztikai tárfiók egy másik előfizetésben van, akkor előfordulhat, hogy a parancsmag nem tudja automatikusan lekérni a kulcsot, és explicit módon meg kell adnia a kulcsot a StorageAccountKey paraméterrel.

Set-AzVMDiagnosticsExtension -ResourceGroupName $vm_resourcegroup -VMName $vm_name -DiagnosticsConfigurationPath $diagnosticsconfig_path -StorageAccountName $diagnosticsstorage_name -StorageAccountKey $diagnosticsstorage_key

Ha a diagnosztikai bővítmény engedélyezve van egy virtuális gépen, az aktuális beállításokat a Get-AzVmDiagnosticsExtension parancsmaggal szerezheti be.

Get-AzVMDiagnosticsExtension -ResourceGroupName $vm_resourcegroup -VMName $vm_name

A parancsmag a PublicSettings értéket adja vissza, amely tartalmazza a diagnosztikai konfigurációt. Kétféle konfiguráció támogatott: WadCfg és xmlCfg. A WadCfg JSON-konfiguráció, az xmlCfg pedig Base64 kódolású XML-konfiguráció. Az XML olvasásához dekódolnia kell azt.

$publicsettings = (Get-AzVMDiagnosticsExtension -ResourceGroupName $vm_resourcegroup -VMName $vm_name).PublicSettings
$encodedconfig = (ConvertFrom-Json -InputObject $publicsettings).xmlCfg
$xmlconfig = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($encodedconfig))
Write-Host $xmlconfig

A Remove-AzVmDiagnosticsExtension parancsmaggal eltávolíthatja a diagnosztikai bővítményt a virtuális gépről.

A diagnosztikai bővítmény engedélyezése a klasszikus üzemi modell használata esetén

Fontos

A klasszikus üzemi modellel létrehozott virtuális gépeket 2023. szeptember 1-jén kivonjuk.

Ha az Azure Service Management IaaS-erőforrásait használja, 2023. szeptember 1-ig fejezze be a migrálást. Javasoljuk, hogy előbb végezze el a váltást, hogy kihasználhassa az Azure Resource Manager számos funkciófejlesztését.

További információ: IaaS-erőforrások migrálása az Azure Resource Manager-be 2023. szeptember 1-ig.

A Set-AzureVMDiagnosticsExtension parancsmaggal engedélyezheti a diagnosztikai bővítményt a klasszikus üzemi modellel létrehozott virtuális gépeken. Az alábbi példa bemutatja, hogyan hozhat létre új virtuális gépet a klasszikus üzemi modellen keresztül, amelyen engedélyezve van a diagnosztikai bővítmény.

$VM = New-AzureVMConfig -Name $VM -InstanceSize Small -ImageName $VMImage
$VM = Add-AzureProvisioningConfig -VM $VM -AdminUsername $Username -Password $Password -Windows
$VM = Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath $Config_Path -VM $VM -StorageContext $Storage_Context
New-AzVM -Location $Location -ServiceName $Service_Name -VM $VM

Ha engedélyezni szeretné a diagnosztikai bővítményt egy meglévő virtuális gépen, amelyet a klasszikus üzemi modellel hoztak létre, először használja a Get-AzureVM parancsmagot a virtuális gép konfigurációjának lekéréséhez. Ezután frissítse a virtuális gép konfigurációját úgy, hogy tartalmazza a diagnosztikai bővítményt a Set-AzureVMDiagnosticsExtension parancsmag használatával. Végül alkalmazza a frissített konfigurációt a virtuális gépre az Update-AzureVM használatával.

$VM = Get-AzureVM -ServiceName $Service_Name -Name $VM_Name
$VM_Update = Set-AzureVMDiagnosticsExtension  -DiagnosticsConfigurationPath $Config_Path -VM $VM -StorageContext $Storage_Context
Update-AzureVM -ServiceName $Service_Name -Name $VM_Name -VM $VM_Update.VM

Diagnosztikai mintakonfiguráció

A következő XML használható a diagnosztikai nyilvános konfigurációhoz a fenti szkriptekkel. Ez a mintakonfiguráció különböző teljesítményszámlálókat továbbít a diagnosztikai tárfiókba, valamint az alkalmazás, a biztonság és a rendszercsatornák hibáit a Windows eseménynaplóiban, valamint a diagnosztikai infrastruktúra naplóiból származó hibákat.

A konfigurációt frissíteni kell, hogy tartalmazza a következőket:

  • A Metrics elem resourceID attribútumát frissíteni kell a virtuális gép erőforrás-azonosítójával.

    • Az erőforrás-azonosító a következő mintával hozható létre: "/subscriptions/{subscription id for the subscription with the VM}/resourceGroups/{The resourcegroup name for the VM}/providers/Microsoft.Compute/virtualMachines/{The VM Name}".

    • Ha például a virtuális gépet futtató előfizetés előfizetés-azonosítója 111111111-1111-1111-1111-111111111111111111, az erőforráscsoport erőforráscsoportjának neve MyResourceGroup, a virtuális gép neve Pedig MyWindowsVM, akkor az erőforrás-azonosító értéke a következő lesz:

      <Metrics resourceId="/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyWindowsVM" >
      
    • A metrikák a teljesítményszámlálók és a metrikakonfiguráció alapján történő generálásáról további információt a Azure Diagnostics metrikatáblában a tárolóban című témakörben talál.

  • A StorageAccount elemet frissíteni kell a diagnosztikai tárfiók nevével.

    <?xml version="1.0" encoding="utf-8"?>
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        <WadCfg>
          <DiagnosticMonitorConfiguration overallQuotaInMB="4096">
            <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error"/>
            <PerformanceCounters scheduledTransferPeriod="PT1M">
          <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" unit="Percent">
            <annotation displayName="CPU utilization" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Privileged Time" sampleRate="PT15S" unit="Percent">
            <annotation displayName="CPU privileged time" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% User Time" sampleRate="PT15S" unit="Percent">
            <annotation displayName="CPU user time" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Processor Information(_Total)\Processor Frequency" sampleRate="PT15S" unit="Count">
            <annotation displayName="CPU frequency" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\System\Processes" sampleRate="PT15S" unit="Count">
            <annotation displayName="Processes" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Process(_Total)\Thread Count" sampleRate="PT15S" unit="Count">
            <annotation displayName="Threads" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Process(_Total)\Handle Count" sampleRate="PT15S" unit="Count">
            <annotation displayName="Handles" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Memory\% Committed Bytes In Use" sampleRate="PT15S" unit="Percent">
            <annotation displayName="Memory usage" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Available Bytes" sampleRate="PT15S" unit="Bytes">
            <annotation displayName="Memory available" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT15S" unit="Bytes">
            <annotation displayName="Memory committed" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Commit Limit" sampleRate="PT15S" unit="Bytes">
            <annotation displayName="Memory commit limit" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Pool Paged Bytes" sampleRate="PT15S" unit="Bytes">
            <annotation displayName="Memory paged pool" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Pool Nonpaged Bytes" sampleRate="PT15S" unit="Bytes">
            <annotation displayName="Memory non-paged pool" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\% Disk Time" sampleRate="PT15S" unit="Percent">
            <annotation displayName="Disk active time" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\% Disk Read Time" sampleRate="PT15S" unit="Percent">
            <annotation displayName="Disk active read time" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\% Disk Write Time" sampleRate="PT15S" unit="Percent">
            <annotation displayName="Disk active write time" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Disk Transfers/sec" sampleRate="PT15S" unit="CountPerSecond">
            <annotation displayName="Disk operations" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Disk Reads/sec" sampleRate="PT15S" unit="CountPerSecond">
            <annotation displayName="Disk read operations" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Disk Writes/sec" sampleRate="PT15S" unit="CountPerSecond">
            <annotation displayName="Disk write operations" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Disk Bytes/sec" sampleRate="PT15S" unit="BytesPerSecond">
            <annotation displayName="Disk speed" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Disk Read Bytes/sec" sampleRate="PT15S" unit="BytesPerSecond">
            <annotation displayName="Disk read speed" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Disk Write Bytes/sec" sampleRate="PT15S" unit="BytesPerSecond">
            <annotation displayName="Disk write speed" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Avg. Disk Queue Length" sampleRate="PT15S" unit="Count">
            <annotation displayName="Disk average queue length" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Avg. Disk Read Queue Length" sampleRate="PT15S" unit="Count">
            <annotation displayName="Disk average read queue length" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\PhysicalDisk(_Total)\Avg. Disk Write Queue Length" sampleRate="PT15S" unit="Count">
            <annotation displayName="Disk average write queue length" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\LogicalDisk(_Total)\% Free Space" sampleRate="PT15S" unit="Percent">
            <annotation displayName="Disk free space (percentage)" locale="en-us"/>
          </PerformanceCounterConfiguration>
          <PerformanceCounterConfiguration counterSpecifier="\LogicalDisk(_Total)\Free Megabytes" sampleRate="PT15S" unit="Count">
            <annotation displayName="Disk free space (MB)" locale="en-us"/>
          </PerformanceCounterConfiguration>
        </PerformanceCounters>
        <Metrics resourceId="(Update with resource ID for the VM)" >
            <MetricAggregation scheduledTransferPeriod="PT1H"/>
            <MetricAggregation scheduledTransferPeriod="PT1M"/>
        </Metrics>
        <WindowsEventLog scheduledTransferPeriod="PT1M">
          <DataSource name="Application!*[System[(Level = 1 or Level = 2)]]"/>
          <DataSource name="Security!*[System[(Level = 1 or Level = 2)]"/>
          <DataSource name="System!*[System[(Level = 1 or Level = 2)]]"/>
        </WindowsEventLog>
          </DiagnosticMonitorConfiguration>
        </WadCfg>
        <StorageAccount>(Update with diagnostics storage account name)</StorageAccount>
    </PublicConfig>
    

Következő lépések