Eseményösszesítés és -gyűjtemény a Windows Azure Diagnostics használatával

Azure Service Fabric-fürt futtatásakor érdemes összegyűjteni a naplókat egy központi helyen található összes csomópontról. A naplók központi helyen való elhelyezésével elemezheti és elháríthatja a fürt problémáit, illetve a fürtben futó alkalmazásokban és szolgáltatásokban fellépő problémákat.

A naplók feltöltésének és gyűjtésének egyik módja a Windows Azure Diagnostics (WAD) bővítmény használata, amely naplókat tölt fel az Azure Storage-ba, valamint lehetősége van naplókat küldeni Azure-alkalmazás Elemzések vagy Event Hubsba. Külső folyamatokkal is elolvashatja az eseményeket a tárolóból, és elhelyezheti őket egy elemzési platform termékében, például az Azure Monitor-naplókban vagy egy másik naplóelemzési megoldásban.

Megjegyzés:

We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

Előfeltételek

Ebben a cikkben a következő eszközöket használjuk:

Service Fabric-platformesemények

A Service Fabric beállít néhány beépített naplózási csatornát, amelyek közül a következő csatornák előre konfigurálva vannak a bővítményrel, hogy monitorozási és diagnosztikai adatokat küldjenek egy tárolótáblába vagy máshová:

A Diagnostics bővítmény üzembe helyezése a portálon keresztül

A naplók gyűjtésének első lépése a Diagnosztikai bővítmény üzembe helyezése a Service Fabric-fürt virtuálisgép-méretezési csoportcsomópontjaiban. A Diagnostics bővítmény összegyűjti a naplókat az egyes virtuális gépeken, és feltölti őket a megadott tárfiókba. Az alábbi lépések azt ismertetik, hogyan valósíthatja meg ezt új és meglévő fürtök esetében az Azure Portalon és az Azure Resource Manager-sablonokon keresztül.

A Diagnosztikai bővítmény üzembe helyezése fürtlétrehozás részeként az Azure Portalon

A fürt létrehozásakor a fürtkonfigurációs lépésben bontsa ki az opcionális beállításokat, és győződjön meg arról, hogy a diagnosztika be van kapcsolva (az alapértelmezett beállítás).

Azure Diagnostics settings in the portal for cluster creation

Javasoljuk, hogy töltse le a sablont , mielőtt az utolsó lépésben a Létrehozás gombra kattint. Részletekért tekintse meg a Service Fabric-fürt beállítása Azure Resource Manager-sablonnal történő beállítását. A sablonra szüksége van ahhoz, hogy módosítsa a (fent felsorolt) csatornákat az adatok gyűjtéséhez.

Cluster Template

Most, hogy összesít eseményeket az Azure Storage-ban, állítsa be az Azure Monitor-naplókat, hogy elemzéseket nyerjen, és lekérdezhesse őket az Azure Monitor naplóinak portálján

Megjegyzés:

Jelenleg nem lehet szűrni vagy ápolni a táblákba küldött eseményeket. Ha nem hajt végre olyan folyamatot, amely eltávolítja az eseményeket a táblából, a táblázat továbbra is növekszik (az alapértelmezett korlát 50 GB). Ennek módosítására vonatkozó útmutatást a cikk további részében talál. Emellett van egy példa a Watchdog-mintában futó adatkozmetika szolgáltatásra, és azt is javasoljuk, hogy saját maga is írjon egyet, hacsak nincs jó oka a naplók 30 vagy 90 napos időkereten túli tárolására.

A Diagnostics bővítmény üzembe helyezése az Azure Resource Manageren keresztül

Fürt létrehozása a diagnosztikai bővítménnyel

Ha a Resource Manager használatával szeretne fürtöt létrehozni, hozzá kell adnia a Diagnostics konfigurációs JSON-t a teljes Resource Manager-sablonhoz. A Resource Manager-sablonminták részeként egy öt virtuálisgép-fürtből álló Resource Manager-sablont adunk hozzá diagnosztikai konfigurációval. Ezen a helyen látható az Azure-minták gyűjteményében: Ötcsomópontos fürt Diagnostics Resource Manager-sablonmintával.

A Resource Manager-sablon diagnosztikai beállításának megtekintéséhez nyissa meg az azuredeploy.json fájlt, és keresse meg az IaaSDiagnostics fájlt. Ha ezzel a sablonnal szeretne fürtöt létrehozni, válassza az előző hivatkozáson elérhető Üzembe helyezés az Azure-ban gombot.

Másik lehetőségként letöltheti a Resource Manager-mintát, módosíthatja azt, és létrehozhat egy fürtöt a módosított sablonnal egy New-AzResourceGroupDeployment Azure PowerShell-ablakban található paranccsal. A parancsnak átadott paramétereket az alábbi kódban tekintheti meg. Az erőforráscsoportok PowerShell-lel történő üzembe helyezéséről az Erőforráscsoport üzembe helyezése az Azure Resource Manager-sablonnal című cikk nyújt részletes tájékoztatást.

A diagnosztikai bővítmény hozzáadása meglévő fürthöz

Ha olyan meglévő fürtje van, amely nem rendelkezik a Diagnostics üzembe helyezésével, hozzáadhatja vagy frissítheti a fürtsablonon keresztül. Módosítsa a meglévő fürt létrehozásához használt Resource Manager-sablont, vagy töltse le a sablont a portálról a korábban leírtak szerint. Módosítsa a template.json fájlt a következő feladatok végrehajtásával:

Adjon hozzá egy új tárolási erőforrást a sablonhoz az erőforrások szakasz hozzáadásával.

{
	"apiVersion": "2018-07-01",
	"type": "Microsoft.Storage/storageAccounts",
	"name": "[parameters('applicationDiagnosticsStorageAccountName')]",
	"location": "[parameters('computeLocation')]",
	"sku": {
	"name": "[parameters('applicationDiagnosticsStorageAccountType')]"
	"tier": "standard"
  },
	"tags": {
	"resourceType": "Service Fabric",
	"clusterName": "[parameters('clusterName')]"
  }
},

Ezután adja hozzá a paraméterek szakaszt közvetlenül a tárfiók definíciói után, a kettő között supportLogStorageAccountName. Cserélje le a helyőrző szövegtárfiók nevét a kívánt tárfiók nevére.

    "applicationDiagnosticsStorageAccountType": {
      "type": "string",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS"
      ],
      "defaultValue": "Standard_LRS",
      "metadata": {
        "description": "Replication option for the application diagnostics storage account"
      }
    },
    "applicationDiagnosticsStorageAccountName": {
      "type": "string",
      "defaultValue": "**STORAGE ACCOUNT NAME GOES HERE**",
      "metadata": {
        "description": "Name for the storage account that contains application diagnostics data from the cluster"
      }
    },

Ezután frissítse a VirtualMachineProfile template.json fájl szakaszát úgy, hogy hozzáadja a következő kódot a bővítménytömbhöz. Mindenképpen adjon hozzá vesszőt az elejéhez vagy végéhez, attól függően, hogy hová szúrja be.

{
    "name": "[concat(parameters('vmNodeType0Name'),'_Microsoft.Insights.VMDiagnosticsSettings')]",
    "properties": {
        "type": "IaaSDiagnostics",
        "autoUpgradeMinorVersion": true,
        "protectedSettings": {
        "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]",
        "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]",
        "storageAccountEndPoint": "https://core.windows.net/"
        },
        "publisher": "Microsoft.Azure.Diagnostics",
        "settings": {
        "WadCfg": {
            "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": "50000",
            "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"
                    }
                },
                {
                    "provider": "02d06793-efeb-48c8-8f7f-09713309a810",
                    "scheduledTransferLogLevelFilter": "Information",
                    "scheduledTransferKeywordFilter": "4611686018427387904",
                    "scheduledTransferPeriod": "PT5M",
                    "DefaultEvents": {
                    "eventDestination": "ServiceFabricSystemEventTable"
                    }
                }
                ]
            }
            }
        },
        "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]"
        },
        "typeHandlerVersion": "1.5"
    }
}

Miután módosította a template.json fájlt a leírtak szerint, tegye közzé újra a Resource Manager-sablont. Ha a sablont exportálták, a deploy.ps1 fájl futtatása újra közzéteszi a sablont. Az üzembe helyezés után győződjön meg arról, hogy a ProvisioningState sikeres.

Tipp.

Ha tárolókat szeretne üzembe helyezni a fürtön, engedélyezze a WAD-nak a Docker-statisztikák felvételét a WadCfg > DiagnosticMonitorConfiguration szakaszba való hozzáadásával.

"DockerSources": {
    "Stats": {
        "enabled": true,
        "sampleRate": "PT1M"
    }
},

Tárolási kvóta frissítése

Mivel a bővítmény által feltöltött táblák a kvóta beütemeztetéséig növekednek, érdemes lehet megfontolni a kvóta méretének csökkentését. Az alapértelmezett érték 50 GB, és konfigurálható a sablonban a overallQuotaInMB következő mezőben: DiagnosticMonitorConfiguration

"overallQuotaInMB": "50000",

Naplógyűjtési konfigurációk

A további csatornák naplói is gyűjthetők, az alábbiakban az Azure-ban futó fürtök sablonjában elérhető leggyakoribb konfigurációk közül íme néhány.

  • Működési csatorna – Alap: Alapértelmezés szerint engedélyezve van, a Service Fabric és a fürt által végrehajtott magas szintű műveletek, beleértve a közelgő csomópontok eseményeit, az új alkalmazás üzembe helyezését vagy a frissítés visszaállítását stb. Az események listáját az Operatív csatorna eseményei című témakörben találja.

      "scheduledTransferKeywordFilter": "4611686018427387904"
    
  • Működési csatorna – Részletes: Ide tartoznak az állapotjelentések és a terheléselosztási döntések, valamint az alap működési csatornában található összes elem. Ezeket az eseményeket a rendszer vagy a kód hozza létre az állapot- vagy terhelésjelentési API-k, például a ReportPartitionHealth vagy a ReportLoad használatával. Ha meg szeretné tekinteni ezeket az eseményeket a Visual Studio diagnosztikai Eseménynapló adja hozzá a "Microsoft-ServiceFabric:4:0x4000000000000008" értéket az ETW-szolgáltatók listájához.

      "scheduledTransferKeywordFilter": "4611686018427387912"
    
  • Adat- és üzenetkezelési csatorna – Alap: Az üzenetkezelésben létrehozott kritikus naplók és események (jelenleg csak a ReverseProxy) és az adatútvonal, a részletes operatív csatornanaplók mellett. Ezek az események a kérésfeldolgozási hibák és a ReverseProxy egyéb kritikus problémái, valamint a feldolgozott kérések. Ez az átfogó naplózásra vonatkozó javaslatunk. Ha meg szeretné tekinteni ezeket az eseményeket a Visual Studio diagnosztikai Eseménynapló, adja hozzá a "Microsoft-ServiceFabric:4:0x4000000000000010" értéket az ETW-szolgáltatók listájához.

      "scheduledTransferKeywordFilter": "4611686018427387928"
    
  • Data & Messaging Channel – Részletes csatorna, amely tartalmazza a fürt adataiból és üzenetkezeléséből származó összes nem kritikus naplót, valamint a részletes operatív csatornát. Az összes fordított proxyesemény részletes hibaelhárítását a fordított proxy diagnosztikai útmutatójában találja. Ha meg szeretné tekinteni ezeket az eseményeket a Visual Studio diagnosztikai eseménynaplójában, adja hozzá a "Microsoft-ServiceFabric:4:0x4000000000000020" értéket az ETW-szolgáltatók listájához.

      "scheduledTransferKeywordFilter": "4611686018427387944"
    

Megjegyzés:

Ez a csatorna nagyon nagy mennyiségű eseményt biztosít, így a részletes csatorna eseménygyűjtése sok nyomkövetést eredményez gyorsan, és felhasználhatja a tárolási kapacitást. Ezt csak akkor kapcsolja be, ha feltétlenül szükséges.

Az alap üzemeltetési csatorna engedélyezéséhez a legkisebb zajmennyiségű EtwManifestProviderConfiguration átfogó naplózásra vonatkozó javaslatunk a következőhöz hasonlóan nézne ki a WadCfg sablonban:

  "WadCfg": {
        "DiagnosticMonitorConfiguration": {
          "overallQuotaInMB": "50000",
          "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"
                }
              },
              {
                "provider": "02d06793-efeb-48c8-8f7f-09713309a810",
                "scheduledTransferLogLevelFilter": "Information",
                "scheduledTransferKeywordFilter": "4611686018427387904",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                "eventDestination": "ServiceFabricSystemEventTable"
                }
              }
            ]
          }
        }
      },

Adatgyűjtés új EventSource-csatornákról

Ha frissíteni szeretné a Diagnosticst, hogy új EventSource-csatornákról gyűjtsön naplókat, amelyek egy új, üzembe helyezni kívánt alkalmazást képviselnek, hajtsa végre azokat a lépéseket, amelyeket a diagnosztikai beállítások meglévő fürthöz való beállításához korábban ismertetett.

Frissítse a EtwEventSourceProviderConfiguration template.json fájl szakaszát, hogy bejegyzéseket adjon hozzá az új EventSource-csatornákhoz, mielőtt a Konfigurációfrissítést a New-AzResourceGroupDeployment PowerShell-paranccsal alkalmazza. Az eseményforrás neve a Visual Studio által létrehozott ServiceEventSource.cs fájl kódjának részeként van definiálva.

Ha például az eseményforrás neve My-Eventsource, adja hozzá a következő kódot, hogy a My-Eventsource eseményeit egy MyDestinationTableName nevű táblába helyezze.

{
  "provider": "My-Eventsource",
  "scheduledTransferPeriod": "PT5M",
  "DefaultEvents": {
    "eventDestination": "MyDestinationTableName"
  }
}

Teljesítményszámlálók vagy eseménynaplók gyűjtéséhez módosítsa a Resource Manager-sablont a Windows rendszerű virtuális gép létrehozása monitorozással és diagnosztikával egy Azure Resource Manager-sablon használatával című témakörben található példák használatával. Ezután tegye közzé újra a Resource Manager-sablont.

Teljesítményszámlálók gyűjtése

A fürt teljesítménymetrikáinak gyűjtéséhez adja hozzá a teljesítményszámlálókat a "WadCfg > DiagnosticMonitorConfiguration" elemhez a fürt Resource Manager-sablonjában. Az egyes teljesítményszámlálók gyűjtésére vonatkozó módosítás WadCfg lépéseit a WAD teljesítményfigyelésében találja. Referencia Service Fabric-teljesítményszámlálók azoknak a teljesítményszámlálóknak a listájához, amelyeket érdemes összegyűjteni.

Ha alkalmazás-Elemzések fogadót használ az alábbi szakaszban leírtak szerint, és azt szeretné, hogy ezek a metrikák megjelenjenek az Application Elemzések-ban, akkor adja hozzá a fogadó nevét a "fogadók" szakaszban a fent látható módon. Ez automatikusan elküldi az egyénileg konfigurált teljesítményszámlálókat az alkalmazás Elemzések erőforrásnak.

Naplók küldése az Application Elemzések

Alkalmazás Elemzések konfigurálása WAD-val

Megjegyzés:

Ez jelenleg csak Windows-fürtökre vonatkozik.

A WAD-ból a Azure-alkalmazás Elemzések kétféleképpen küldhet adatokat, amelyeket úgy érhet el, hogy hozzáad egy alkalmazás-Elemzések fogadót a WAD-konfigurációhoz az Azure Portalon vagy egy Azure Resource Manager-sablonon keresztül.

Alkalmazás Elemzések instrumentációs kulcs hozzáadása fürt létrehozásakor az Azure Portalon

Adding an AIKey

Fürt létrehozásakor, ha a Diagnostics be van kapcsolva, megjelenik egy nem kötelező mező, amely beírja az Alkalmazás Elemzések Instrumentation kulcsot. Ha ide illeszti be az alkalmazás Elemzések kulcsot, a rendszer automatikusan konfigurálja az alkalmazás Elemzések fogadót a fürt üzembe helyezéséhez használt Resource Manager-sablonban.

Az alkalmazás Elemzések fogadó hozzáadása a Resource Manager-sablonhoz

A Resource Manager-sablon "WadCfg" fájljában adjon hozzá egy "Fogadót" a következő két módosítás hozzáadásával:

  1. Adja hozzá közvetlenül a fogadó konfigurációját DiagnosticMonitorConfiguration a deklarálás befejezése után:

    "SinksConfig": {
        "Sink": [
            {
                "name": "applicationInsights",
                "ApplicationInsights": "***ADD INSTRUMENTATION KEY HERE***"
            }
        ]
    }
    
    
  2. Adja hozzá a fogadót a DiagnosticMonitorConfiguration következő sor hozzáadásával a DiagnosticMonitorConfigurationWadCfg (közvetlenül a EtwProviders deklarált érték megadása előtt):

    "sinks": "applicationInsights"
    

Az előző kódrészletekben az "application Elemzések" nevet használták a fogadó leírására. Ez nem követelmény, és amíg a fogadó neve szerepel a "fogadókban", a nevet bármilyen sztringre beállíthatja.

A fürt naplói jelenleg nyomkövetésként jelennek meg az Application Elemzések naplómegjelenítőjében. Mivel a platformról érkező nyomkövetések többsége "Informational" szintű, érdemes lehet módosítani a fogadó konfigurációját úgy is, hogy csak "Figyelmeztetés" vagy "Hiba" típusú naplókat küldjön. Ezt úgy teheti meg, hogy hozzáadja a "Csatornák" elemet a fogadóhoz, ahogy az ebben a cikkben is látható.

Megjegyzés:

Ha helytelen alkalmazáskulcsot Elemzések a portálon vagy a Resource Manager-sablonban, manuálisan kell módosítania a kulcsot, és frissítenie kell a fürtöt/ újra üzembe kell helyeznie.

További lépések

Miután megfelelően konfigurálta az Azure-diagnosztikát, az ETW- és EventSource-naplókból fogja látni a Storage-táblák adatait. Ha az Azure Monitor-naplók, a Kibana vagy bármely más olyan adatelemzési és vizualizációs platform használata mellett dönt, amely nincs közvetlenül konfigurálva a Resource Manager-sablonban, mindenképpen állítsa be a választott platformot, hogy beolvassa az adatokat ezekből a tárolótáblákból. Ez az Azure Monitor-naplók esetében viszonylag triviális, és az esemény- és naplóelemzéssel magyarázható. Az alkalmazás Elemzések ebben az értelemben egy kicsit különleges eset, mivel a Diagnosztikai bővítmény konfigurációjának részeként konfigurálható, ezért ha AI-t használ, tekintse meg a megfelelő cikket.

Megjegyzés:

Jelenleg nem lehet szűrni vagy ápolni a táblába küldött eseményeket. Ha nem hajt végre olyan folyamatot, amely eltávolítja az eseményeket a táblából, a tábla tovább fog növekedni. Jelenleg van egy példa a Watchdog-mintában futó adatkozmetika szolgáltatásra, és javasoljuk, hogy saját maga is írjon egyet, hacsak nincs jó oka a naplók 30 vagy 90 napos időkereten túli tárolására.