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


Monitorozás és diagnosztika használata Windows rendszerű virtuális géppel és Azure Resource Manager-sablonokkal

Az Azure Diagnostics bővítmény a Windows-alapú Azure-beli virtuális gépek monitorozási és diagnosztikai funkcióit biztosítja. Ezeket a képességeket a virtuális gépen úgy engedélyezheti, hogy a bővítményt az Azure Resource Manager-sablon részeként beleszámítja. Az Azure Resource Manager-sablonok virtuálisgép-bővítményekkel való elkészítésével kapcsolatos további információkért tekintse meg a bővítmények virtuálisgép-sablon részeként való hozzáadását. Ez a cikk azt ismerteti, hogyan adhatja hozzá az Azure Diagnostics bővítményt egy Windows rendszerű virtuálisgép-sablonhoz.

Az Azure Diagnostics bővítmény hozzáadása a virtuálisgép-erőforrás-definícióhoz

Ha windowsos virtuális gépen szeretné engedélyezni a diagnosztikai bővítményt, a bővítményt virtuálisgép-erőforrásként kell hozzáadnia a Resource Manager-sablonban.

Egyszerű Resource Manager-alapú virtuális gép esetén adja hozzá a bővítménykonfigurációt a virtuális gép erőforrástömbjében :

"resources": [
    {
        "name": "Microsoft.Insights.VMDiagnosticsSettings",
        "type": "extensions",
        "location": "[resourceGroup().location]",
        "apiVersion": "2015-06-15",
        "dependsOn": [
            "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
        ],
        "tags": {
            "displayName": "AzureDiagnostics"
        },
        "properties": {
            "publisher": "Microsoft.Azure.Diagnostics",
            "type": "IaaSDiagnostics",
            "typeHandlerVersion": "1.5",
            "autoUpgradeMinorVersion": true,
            "settings": {
                "xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('wadmetricsresourceid'), variables('vmName'), variables('wadcfgxend')))]",
                "storageAccount": "[parameters('existingdiagnosticsStorageAccountName')]"
            },
            "protectedSettings": {
                "storageAccountName": "[parameters('existingdiagnosticsStorageAccountName')]",
                "storageAccountKey": "[listkeys(variables('accountid'), '2015-05-01-preview').key1]",
                "storageAccountEndPoint": "https://core.windows.net"
            }
        }
    }
]

Egy másik gyakori konvenció a bővítménykonfiguráció hozzáadása a sablon gyökérerőforrás-csomópontján ahelyett, hogy a virtuális gép erőforráscsomópontja alatt definiálná. Ezzel a megközelítéssel explicit módon meg kell adnia egy hierarchikus kapcsolatot a bővítmény és a virtuális gép között a névvel és a típusértékekkel. Példa:

"name": "[concat(variables('vmName'),'Microsoft.Insights.VMDiagnosticsSettings')]",
"type": "Microsoft.Compute/virtualMachines/extensions",

A bővítmény mindig a virtuális géphez van társítva, közvetlenül definiálhatja a virtuális gép erőforráscsomópontja alatt, vagy definiálhatja az alapszinten, és a hierarchikus elnevezési konvencióval társíthatja a virtuális géphez.

Virtuálisgép-méretezési csoportok esetén a bővítmények konfigurációja a VirtualMachineProfile extensionProfile tulajdonságában van megadva.

A Microsoft.Azure.Diagnostics értékével és az IaaSDiagnostics értékkel rendelkező típustulajdonság egyedileg azonosítja az Azure Diagnostics bővítményt.

A névtulajdonság értéke az erőforráscsoport bővítményére hivatkozhat. Ha kifejezetten a Microsoft.Insights.VMDiagnosticsSettings szolgáltatásra állítja, az Azure Portal könnyen azonosíthatja, biztosítva, hogy a monitorozási diagramok megfelelően jelenjenek meg az Azure Portalon.

A typeHandlerVersion a használni kívánt bővítmény verzióját adja meg. Az autoUpgradeMinorVersion alverzió igazra állítása biztosítja, hogy a bővítmény legújabb alverziója elérhető legyen. Erősen ajánlott, hogy az autoUpgradeMinorVersion mindig igaz legyen, így mindig a legújabb elérhető diagnosztikai bővítményt használhatja az összes új funkcióval és hibajavítással.

A beállításelem a bővítmény konfigurációs tulajdonságait tartalmazza, amelyek beállíthatók és visszaolvashatók a bővítményből (más néven nyilvános konfiguráció). Az xmlcfg tulajdonság xml-alapú konfigurációt tartalmaz a diagnosztikai naplókhoz, teljesítményszámlálókhoz stb., amelyeket a diagnosztikai ügynök gyűjt össze. Az xml-sémáról további információt a Diagnosztikai konfigurációs séma című témakörben talál. Gyakori eljárás, hogy a tényleges xml-konfigurációt változóként tárolja az Azure Resource Manager-sablonban, majd összefűzi és a base64 kódolja őket az xmlcfg értékének beállításához. Tekintse meg a diagnosztikai konfigurációs változókról szóló szakaszt, amelyből megtudhatja , hogyan tárolhatja az xml-t változókban. A StorageAccount tulajdonság annak a tárfióknak a nevét adja meg, amelybe a diagnosztikai adatokat továbbítják.

A protectedSettings (más néven magánkonfiguráció) tulajdonságai beállíthatók , de a beállítás után nem olvashatók vissza. A protectedSettings írásvédett jellege olyan titkos kulcsok tárolására használható, mint a tárfiókkulcs, ahol a diagnosztikai adatok meg vannak írva.

Diagnosztikai tárfiók megadása paraméterekként

A fenti JSON diagnosztikai bővítmény kódrészlete két paramétert feltételez a meglévődiagnosticsStorageAccountName és a existingdiagnosticsStorageResourceGroup paraméterből annak a diagnosztikai tárfióknak a megadásához, amelyben a diagnosztikai adatok tárolódnak. Ha paraméterként adja meg a diagnosztikai tárfiókot, egyszerűen módosíthatja a diagnosztikai tárfiókot különböző környezetekben, például érdemes lehet egy másik diagnosztikai tárfiókot használni a teszteléshez, és egy másikat az éles környezethez.

"existingdiagnosticsStorageAccountName": {
    "type": "string",
    "metadata": {
"description": "The name of an existing storage account to which diagnostics data is transfered."
    }
},
"existingdiagnosticsStorageResourceGroup": {
    "type": "string",
    "metadata": {
"description": "The resource group for the storage account specified in existingdiagnosticsStorageAccountName"
    }
}

Ajánlott egy diagnosztikai tárfiókot más erőforráscsoportban megadni, mint a virtuális gép erőforráscsoportját. Az erőforráscsoportok tekinthetők saját élettartammal rendelkező üzembehelyezési egységnek, a virtuális gépek üzembe helyezhetők és újra üzembe helyezhetők, mivel az új konfigurációfrissítések hozzá lettek osztva, de előfordulhat, hogy továbbra is ugyanabban a tárfiókban szeretné tárolni a diagnosztikai adatokat ezeken a virtuális gépek üzemelő példányaiban. Ha a tárfiók egy másik erőforrásban van, a tárfiók különböző virtuálisgép-telepítésekből származó adatokat fogad el, így egyszerűen elháríthatja a különböző verziók problémáit.

Feljegyzés

Ha Windows rendszerű virtuálisgép-sablont hoz létre a Visual Studióból, előfordulhat, hogy az alapértelmezett tárfiók ugyanazt a tárfiókot használja, amelyben a virtuális gép VHD-jének feltöltése történik. Ez leegyszerűsíti a virtuális gép kezdeti beállítását. A sablon újraszámozása egy másik, paraméterként átadható tárfiók használatára.

Diagnosztikai konfigurációs változók

Az előző diagnosztikai bővítmény json-kódrészlete egy fiókazonosító változót határoz meg, amely leegyszerűsíti a tárfiók kulcsának lekérését a diagnosztikai tárhoz:

"accountid": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/',parameters('existingdiagnosticsStorageResourceGroup'), '/providers/','Microsoft.Storage/storageAccounts/', parameters('existingdiagnosticsStorageAccountName'))]"

A diagnosztikai bővítmény xmlcfg tulajdonsága több, összefűzött változóval van definiálva. Ezeknek a változóknak az értékei xml-ben vannak, ezért a json-változók beállításakor helyesen kell kimenekíteni őket.

Az alábbi példa bemutatja a diagnosztikai konfiguráció xml-fájlját, amely a szabványos rendszerszintű teljesítményszámlálókat, valamint néhány Windows-eseménynaplót és diagnosztikai infrastruktúra-naplót gyűjt. A rendszer sikeresen eltávolította és megfelelően formázta, hogy a konfiguráció közvetlenül beilleszthető legyen a sablon változók szakaszába. A konfigurációs xml emberibb olvasható példáját a Diagnosztikai konfigurációs sémában találhatja meg.

"wadlogs": "<WadCfg> <DiagnosticMonitorConfiguration overallQuotaInMB=\"4096\" xmlns=\"http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration\"> <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter=\"Error\"/> <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>",
"wadperfcounters1": "<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=\"\\PhysicalDisk(_Total)\\% Disk Time\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Disk active time\" locale=\"en-us\"/></PerformanceCounterConfiguration>",
"wadperfcounters2": "<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=\"\\LogicalDisk(_Total)\\% Free Space\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Disk free space (percentage)\" locale=\"en-us\"/></PerformanceCounterConfiguration></PerformanceCounters>",
"wadcfgxstart": "[concat(variables('wadlogs'), variables('wadperfcounters1'), variables('wadperfcounters2'), '<Metrics resourceId=\"')]",
"wadmetricsresourceid": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name , '/providers/', 'Microsoft.Compute/virtualMachines/')]",
"wadcfgxend": "\"><MetricAggregation scheduledTransferPeriod=\"PT1H\"/><MetricAggregation scheduledTransferPeriod=\"PT1M\"/></Metrics></DiagnosticMonitorConfiguration></WadCfg>"

A fenti konfiguráció Metrikadefiníció xml-csomópontja fontos konfigurációelem, mivel meghatározza, hogy a PerformanceCounter csomópontban az xml-ben korábban definiált teljesítményszámlálók hogyan lesznek összesítve és tárolva.

Fontos

Ezek a metrikák vezetik a monitorozási diagramokat és a riasztásokat az Azure Portalon. A resourceID és a MetricAggregation metrikacsomópontnak szerepelnie kell a virtuális gép diagnosztikai konfigurációjában, ha látni szeretné a virtuális gép monitorozási adatait az Azure Portalon.

Az alábbi példa a metrikák definícióihoz tartozó XML-t mutatja be:

<Metrics resourceId="/subscriptions/subscription().subscriptionId/resourceGroups/resourceGroup().name/providers/Microsoft.Compute/virtualMachines/vmName">
    <MetricAggregation scheduledTransferPeriod="PT1H"/>
    <MetricAggregation scheduledTransferPeriod="PT1M"/>
</Metrics>

A resourceID attribútum egyedileg azonosítja az előfizetésben lévő virtuális gépet. Ügyeljen arra, hogy az előfizetés() és a resourceGroup() függvényeket használja, hogy a sablon automatikusan frissítse ezeket az értékeket a telepített előfizetés és erőforráscsoport alapján.

Ha több virtuális gépet hoz létre egy ciklusban, a resourceID értéket egy copyIndex() függvénnyel kell feltöltenie az egyes virtuális gépek helyes megkülönböztetéséhez. Az xmlCfg érték az alábbiak szerint frissíthető:

"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('wadmetricsresourceid'), concat(parameters('vmNamePrefix'), copyindex()), variables('wadcfgxend')))]",

A PT1M és a PT1H MetricAggregation értéke egy percenkénti összesítést, illetve egy óránkénti összesítést jelent.

WADMetrics-táblák a tárolóban

A fenti Metrics-konfiguráció táblákat hoz létre a diagnosztikai tárfiókban az alábbi elnevezési konvenciók használatával:

  • WADMetrics: Standard előtag az összes WADMetrics-táblához
  • PT1H vagy PT1M: Azt jelzi, hogy a tábla összesített adatokat tartalmaz 1 óra vagy 1 perc alatt
  • P10D: Azt jelzi, hogy a tábla az adatok gyűjtésének megkezdésétől számított 10 napig tartalmaz adatokat
  • V2S: Sztringállandó
  • yyyymmdd: Az a dátum, amikor a tábla megkezdte az adatok gyűjtését

Példa: A WADMetricsPT1HP10DV2S20151108 2015. nov. 11-től kezdődően 10 napon keresztül összesített metrikák adatait tartalmazza

Minden WADMetrics-tábla a következő oszlopokat tartalmazza:

  • PartitionKey: A partíciókulcs a resourceID érték alapján jön létre a virtuálisgép-erőforrás egyedi azonosításához. Például: 002Fsubscriptions:<subscriptionID>:002FresourceGroups:002F<ResourceGroupName>:002Fproviders:002FMicrosoft:002ECompute:002FvirtualMachines:002F<vmName>
  • Sorkulcs: A formátumot <Descending time tick>:<Performance Counter Name>követi. A csökkenő időosztás számítása a maximális időszelet, mínusz az összesítési időszak kezdetének időpontja. Ha például a mintaidőszak 2015. nov. 10-én és 00:00-kor (UTC) kezdődött, akkor a számítás a következő lesz: DateTime.MaxValue.Ticks - (new DateTime(2015,11,10,0,0,0,DateTimeKind.Utc).Ticks). A memória rendelkezésre álló bájtteljesítményéhez a sorkulcs számlálója a következőképpen néz ki: 2519551871999999999__:005CMemory:005CAvailable:0020Bytes
  • CounterName: A teljesítményszámláló neve. Ez megegyezik az xml-konfigurációban definiált counterSpecifier azonosítóval.
  • Maximum: A teljesítményszámláló maximális értéke az összesítési időszakban.
  • Minimum: A teljesítményszámláló minimális értéke az összesítési időszakban.
  • Összeg: Az összesítési időszakban jelentett teljesítményszámláló összes értékének összege.
  • Darabszám: A teljesítményszámlálóhoz jelentett értékek teljes száma.
  • Átlag: A teljesítményszámláló átlagos (összeg/darabszám) értéke az összesítési időszakban.

Következő lépések