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


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ók küldésére Azure-alkalmazás Insights vagy Event Hubs szolgáltatásba. 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.

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

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-beállítások a portálon fürtlétrehozáshoz

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.

Fürtsablon

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

Feljegyzé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. Resource Manager-sablont biztosítunk egy öt virtuálisgép-fürthöz, amelyhez a Resource Manager-sablonminták részeként diagnosztikai konfigurációt adunk hozzá. 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 a azuredeploy.json fájlt, és keressen rá az IaaSDiagnostics kifejezésre. 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 elérhetők a gyűjteményhez. Íme néhány, az Azure-ban futó fürtök sablonjában elérhető leggyakoribb konfigurációk.

  • 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"
    

Feljegyzé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 az új EventSource-csatornák bejegyzéseinek hozzáadásához, 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 teljesítménymetrikák azoknak a teljesítményszámlálóknak a listájához, amelyeket érdemes összegyűjteni.

Ha az alábbi szakaszban ismertetett Application Insights-fogadót használ, és azt szeretné, hogy ezek a metrikák megjelenjenek az Application Insightsban, 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 Application Insights-erőforrásnak.

Naplók küldése az Application Insightsba

Az Application Insights konfigurálása WAD-val

Feljegyzés

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

A WAD-ból a Azure-alkalmazás Insightsba kétféle elsődleges módon küldhet adatokat, amelyeket úgy érhet el, hogy hozzáad egy Application Insights-fogadót a WAD-konfigurációhoz az Azure Portalon vagy egy Azure Resource Manager-sablonon keresztül.

Application Insights-rendszerállapotkulcs hozzáadása fürt létrehozásakor az Azure Portalon

AIKey hozzáadása

Fürt létrehozásakor, ha a Diagnosztika be van kapcsolva, megjelenik egy nem kötelező mező az Application Insights Instrumentation kulcs megadásához. Ha ide illeszti be az Application Insights-kulcsot, a rendszer automatikusan konfigurálja az Application Insights fogadót a fürt üzembe helyezéséhez használt Resource Manager-sablonban.

Az Application Insights 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 DiagnosticMonitorConfiguration WadCfg (közvetlenül a EtwProviders deklarált érték megadása előtt):

    "sinks": "applicationInsights"
    

Az előző kódrészletekben az "applicationInsights" 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 Insights 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ó.

Feljegyzés

Ha helytelen Application Insights-kulcsot használ 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.

Következő 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 Application Insights ebben az értelemben egy kicsit különleges eset, mivel a Diagnostics 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 .

Feljegyzé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.