Sdílet prostřednictvím


Řešení potíží se službou Azure Diagnostics

Tento článek popisuje informace o řešení potíží, které jsou relevantní pro použití diagnostiky Azure. Další informace o diagnostice najdete v přehledu diagnostiky Azure.

Logické komponenty

Součásti jsou:

  • Spouštěč diagnostických modulů plug-in (DiagnosticsPluginLauncher.exe):Spustí rozšíření Diagnostika. Slouží jako proces vstupního bodu.
  • Diagnostický modul plug-in (DiagnosticsPlugin.exe): Konfiguruje, spouští a spravuje životnost agenta monitorování. Je to hlavní proces, který spouštěč spustil.
  • Agent monitorování (Procesy MonAgent*.exe): Monitory, shromažďuje a přenáší diagnostická data.

Cesty k protokolům nebo artefaktům

Následující cesty vedou k některým důležitým protokolům a artefaktům. Na tyto informace se odkazujeme v celém tomto článku.

Azure Cloud Services

Artefakt Cesta
Konfigurační soubor Azure Diagnostics %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\Config.txt
Soubory protokolu C:\Logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\
Místní úložiště diagnostických dat C:\Resources\Directory<CloudServiceDeploymentID>.<>Název role DiagnosticStore\WAD0107\Tables
Konfigurační soubor agenta monitorování C:\Resources\Directory<CloudServiceDeploymentID>.<>Název role DiagnosticStore\WAD0107\Configuration\MaConfig.xml
Balíček rozšíření Azure Diagnostics %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<verze>
Cesta nástroje pro shromažďování protokolů %SystemDrive%\Packages\GuestAgent\
Soubor protokolu MonAgentHost C:\Resources\Directory<CloudServiceDeploymentID>.<>Název role DiagnosticStore\WAD0107\Configuration\MonAgentHost.<>seq_num.log

Virtuální počítače

Artefakt Cesta
Konfigurační soubor Azure Diagnostics C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\RuntimeSettings
Soubory protokolu C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\
Místní úložiště diagnostických dat C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Tables
Konfigurační soubor agenta monitorování C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MaConfig.xml
Stavový soubor C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\Status
Balíček rozšíření Azure Diagnostics C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>
Cesta nástroje pro shromažďování protokolů C:\WindowsAzure\Logs\WaAppAgent.log
Soubor protokolu MonAgentHost C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MonAgentHost.<>seq_num.log

Data metrik se nezobrazují na webu Azure Portal

Diagnostika poskytuje data metrik, která se dají zobrazit na webu Azure Portal. Pokud máte problémy se zobrazením dat na portálu, zkontrolujte WADMetrics\* tabulku v účtu úložiště diagnostiky a zkontrolujte, jestli tam jsou odpovídající záznamy metrik, a ujistěte se, že je zaregistrovaný poskytovatel prostředků Microsoft.Insights.

PartitionKey V této tabulce je ID prostředku, virtuální počítač nebo škálovací sada virtuálních počítačů. RowKey je název metriky. Označuje se také jako název čítače výkonu.

Pokud je ID prostředku nesprávné, zkontrolujte ID prostředku diagnostické metriky konfigurace>>a zkontrolujte, jestli je ID prostředku správně nastavené.

Pokud pro konkrétní metriku nejsou žádná data, zkontrolujte, jestli je metrika (čítač výkonu) zahrnutá, zkontrolujte nástroj PerformanceCounter konfigurace>diagnostiky. Ve výchozím nastavení povolíme následující čítače:

  • \Processor(_Total)% čas procesoru
  • \Memory\Available Bytes
  • \ASP.NET Applications(Total)\Requests/Sec
  • \ASP.NET Applications(Total)\Errors Total/Sec
  • \ASP.NET\Požadavky zařazené do fronty
  • \ASP.NET\Žádosti odmítnuty
  • \Processor(w3wp)% čas procesoru
  • \Process(w3wp)\Privátní bajty
  • \Process(WaIISHost)% čas procesoru
  • \Process(WaIISHost)\Privátní bajty
  • \Process(WaWorkerHost)% čas procesoru
  • \Process(WaWorkerHost)\Privátní bajty
  • \Memory\Page Faults/s
  • Paměť .NET CLR (Globální)% čas v GC
  • \Logický disk(C:)\Bajty zápisu na disk/s
  • \LogicalDisk(C:)\Bajty čtení disku/s
  • \Logický disk(D:)\Bajty zápisu na disk/s
  • \Logický disk(D:)\Bajty čtení disku/s

Pokud je konfigurace nastavená správně, ale stále se vám nezobrazují data metrik, s řešením potíží vám pomůžou následující pokyny.

Azure Diagnostics se nespustí

Informace o tom, proč se diagnostika nespuskla, najdete v DiagnosticsPluginLauncher.log a DiagnosticsPlugin.log souborech v umístění souborů protokolu, které jste zadali dříve.

Pokud tyto protokoly naznačují Monitoring Agent not reporting success after launch, znamená to, že došlo k selhání spuštění MonAgentHost.exe. Podívejte se na protokoly v umístění, které je uvedené pro MonAgentHost soubor protokolu v předchozí části Virtuální počítače.

Poslední řádek souborů protokolu obsahuje ukončovací kód.

DiagnosticsPluginLauncher.exe Information: 0 : [4/16/2016 6:24:15 AM] DiagnosticPlugin exited with code 0

Pokud najdete záporný ukončovací kód, podívejte se na tabulku ukončovacího kódu v části Reference.

Diagnostická data se do Služby Azure Storage nezaprotokolují

Určete, jestli se žádná z dat nezobrazí nebo jestli se některá data zobrazí.

Protokoly infrastruktury diagnostiky

Diagnostika protokoluje všechny chyby v protokolech infrastruktury diagnostiky. Ujistěte se, že jste ve své konfiguraci povolili zachytávání protokolů infrastruktury diagnostiky. Pak můžete rychle vyhledat všechny relevantní chyby, které se zobrazí v tabulce v DiagnosticInfrastructureLogsTable nakonfigurovaných účtech úložiště.

Nezobrazují se žádná data

Nejčastějším důvodem, proč se data událostí vůbec nezobrazují, je to, že informace o účtu úložiště jsou definovány nesprávně.

Řešení: Opravte konfiguraci diagnostiky a přeinstalujte diagnostiku.

Pokud je účet úložiště správně nakonfigurovaný, vzdálený přístup k počítači a ověřte, že jsou spuštěné DiagnosticsPlugin.exe a MonAgentCore.exe . Pokud nejsou spuštěné, postupujte podle kroků v Diagnostice Azure, které se nespustí.

Pokud jsou procesy spuštěné, přejděte do části Dochází k zachycení dat místně? a postupujte podle pokynů v něm.

Pokud problém přetrvává, zkuste:

  1. Odinstalujte agenta.
  2. Odeberte adresář C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics.
  3. Nainstalujte agenta znovu.

Chybí část dat.

Pokud získáváte nějaká data, ale ne všechna, znamená to, že je správně nastavený kanál shromažďování a přenosu dat. Pokud chcete tento problém zúžit, postupujte podle zde uvedených pododdílů.

Je kolekce nakonfigurovaná?

Konfigurace diagnostiky obsahuje pokyny ke shromažďování konkrétního typu dat. Zkontrolujte konfiguraci a ověřte, že hledáte jenom data, která jste pro kolekci nakonfigurovali.

Generuje hostitel data?

  • Čítače výkonu: Otevřete perfmon a zkontrolujte čítač.
  • Protokoly trasování: Vzdálený přístup k virtuálnímu počítači a přidání TextWriterTraceListener do konfiguračního souboru aplikace. Pokud chcete nastavit naslouchací proces textu, přečtěte si téma Vytvoření a inicializace naslouchacích procesů trasování. Ujistěte se, že <trace> prvek obsahuje <trace autoflush="true">. Pokud se vygenerované protokoly trasování nezobrazují, přečtěte si část Další informace o chybějících protokolech trasování.
  • Trasování událostí pro Windows (ETW): Vzdálený přístup k virtuálnímu počítači a instalace nástroje PerfView V nástroji PerfView spusťte příkaz User>File>Listen etwprovder1>etwprovider2 atd. Příkaz Listen rozlišuje malá a velká písmena a mezi čárkami odděleným seznamem poskytovatelů Trasování událostí pro Windows nesmí být mezery. Pokud se příkaz nepodaří spustit, vyberte v pravém dolním rohu nástroje PerfView protokol, abyste zjistili, co se pokusilo spustit a jaký byl výsledek. Za předpokladu, že je vstup správný, otevře se nové okno. Za několik sekund uvidíte trasování trasování Trasování Událostí pro Windows.
  • Protokoly událostí: Vzdálený přístup k virtuálnímu počítači. Otevřete Prohlížeč událostí a ujistěte se, že události existují.

Jsou data zachycená místně?

Dále se ujistěte, že se data zaznamenávají místně. Data jsou místně uložená v souborech *.tsf v místním úložišti pro diagnostická data. Různé druhy protokolů se shromažďují v různých souborech .tsf. Názvy se podobají názvům tabulek ve službě Azure Storage.

Například čítače výkonu se shromažďují v PerformanceCountersTable.tsf. Protokoly událostí se shromažďují ve WindowsEventLogsTable.tsf. Podle pokynů v části Extrakce místních protokolů otevřete soubory místní kolekce a ověřte, že se shromažďují na disku.

Pokud se protokoly neshromažďují místně a už jste ověřili, že hostitel generuje data, pravděpodobně máte problém s konfigurací. Pečlivě zkontrolujte konfiguraci.

Zkontrolujte také konfiguraci vygenerovanou pro MaConfig.xml MonitoringAgent. Ověřte, že existuje oddíl, který popisuje příslušný zdroj protokolu. Pak ověřte, že se při překladu neztratí mezi konfigurací diagnostiky a konfigurací agenta monitorování.

Přenáší se data?

Pokud jste ověřili, že se data zaznamenávají místně, ale v účtu úložiště se stále nezobrazují, postupujte takto:

  • Ověřte, že jste zadali správný účet úložiště a že jste nezadali klíče pro daný účet úložiště. V případě Azure Cloud Services se někdy uživatelé neaktualizují useDevelopmentStorage=true.
  • Ověřte správnost zadaného účtu úložiště. Ujistěte se, že nemáte síťová omezení, která brání komponentám v dosažení koncových bodů veřejného úložiště. Jedním ze způsobů, jak to udělat, je vzdálený přístup k počítači a zkuste něco napsat do stejného účtu úložiště sami.
  • Nakonec se můžete podívat, jaká selhání hlásí agent monitorování. Agent monitorování zapisuje protokoly do maeventtable.tsf, který se nachází v místním úložišti pro diagnostická data. Pokud chcete tento soubor otevřít, postupujte podle pokynů v části Extrakce místních protokolů. Pak se pokuste zjistit, jestli nedošlo errors k selhání při čtení místních souborů zapisování do úložiště.

Zachytávání a archivace protokolů

Pokud uvažujete o kontaktování podpory, první věc, kterou vás může požádat, je shromáždit protokoly z vašeho počítače. Můžete ušetřit čas tím, že to uděláte sami. CollectGuestLogs.exe Spusťte nástroj v cestě nástroje pro shromažďování protokolů. Vygeneruje soubor .zip se všemi relevantními protokoly Azure ve stejné složce.

Tabulky diagnostických dat se nenašly

Tabulky ve službě Azure Storage, které obsahují události trasování událostí pro Windows, jsou pojmenované pomocí následujícího kódu:

        if (String.IsNullOrEmpty(eventDestination)) {
            if (e == "DefaultEvents")
                tableName = "WADDefault" + MD5(provider);
            else
                tableName = "WADEvent" + MD5(provider) + eventId;
        }
        else
            tableName = "WAD" + eventDestination;

Tady je příklad:

        <EtwEventSourceProviderConfiguration provider="prov1">
          <Event id="1" />
          <Event id="2" eventDestination="dest1" />
          <DefaultEvents />
        </EtwEventSourceProviderConfiguration>
        <EtwEventSourceProviderConfiguration provider="prov2">
          <DefaultEvents eventDestination="dest2" />
        </EtwEventSourceProviderConfiguration>
"EtwEventSourceProviderConfiguration": [
    {
        "provider": "prov1",
        "Event": [
            {
                "id": 1
            },
            {
                "id": 2,
                "eventDestination": "dest1"
            }
        ],
        "DefaultEvents": {
            "eventDestination": "DefaultEventDestination",
            "sinks": ""
        }
    },
    {
        "provider": "prov2",
        "DefaultEvents": {
            "eventDestination": "dest2"
        }
    }
]

Tento kód generuje čtyři tabulky:

Událost Název tabulky
provider="prov1" <Event id="1" /> WADEvent+MD5("prov1")+"1"
provider="prov1" <Event id="2" eventDestination="dest1" /> WADdest1
provider="prov1" <DefaultEvents /> WADDefault+MD5("prov1")
provider="prov2" <DefaultEvents eventDestination="dest2" /> WADdest2

Reference

Podívejte se na následující odkazy.

Kontrola konfigurace rozšíření diagnostiky

Nejjednodušší způsob, jak zkontrolovat konfiguraci rozšíření, je přejít do Azure Resource Exploreru. Pak přejděte na virtuální počítač nebo cloudovou službu, kde je rozšíření Diagnostika (IaaSDiagnostics / PaaDiagnostics).

Případně vzdálená plocha do počítače a podívejte se na konfigurační soubor diagnostiky popsaný v části Cesta k artefaktům protokolu.

V obou případech vyhledejte Microsoft.Azure.Diagnostics a pole xmlCfg nebo WadCfg.

Pokud hledáte na virtuálním počítači a je k dispozici pole WadCfg , znamená to, že konfigurace je ve formátu JSON. Pokud je pole xmlCfg k dispozici, znamená to, že konfigurace je v XML a je kódována base64. Abyste viděli XML načtený diagnostikou, musíte ho dekódovat.

Pokud pro roli cloudové služby vyberete konfiguraci z disku, data jsou zakódovaná v base64. Budete ho muset dekódovat, aby se zobrazil kód XML načtený diagnostikou.

Ukončovací kódy modulu plug-in Azure Diagnostics

Modul plug-in vrátí následující ukončovací kódy:

Ukončovací kód Popis
0 Akce byla úspěšná.
-1 Obecná chyba.
-2 Nelze načíst soubor rcf.

K této vnitřní chybě by mělo dojít pouze v případě, že se na virtuálním počítači ručně vyvolá ručně modul plug-in plug-in agenta hosta.

-3 Nelze načíst konfigurační soubor diagnostiky.

Řešení: Příčinou konfiguračního souboru není předávání ověřování schématu. Řešením je poskytnout konfigurační soubor, který vyhovuje schématu.

-4 Další instance diagnostiky agenta monitorování už používá místní adresář prostředků.

Řešení: Zadejte jinou hodnotu pro LocalResourceDirectory.

-6 Spouštěč modulů plug-in agenta hosta se pokusil spustit diagnostiku s neplatným příkazovým řádkem.

K této vnitřní chybě by mělo dojít pouze v případě, že se na virtuálním počítači ručně vyvolá ručně modul plug-in plug-in agenta hosta.

-10 Modul plug-in Diagnostika se ukončil s neošetřenou výjimkou.
-11 Agent hosta nemohl vytvořit proces zodpovědný za spuštění a monitorování agenta monitorování.

Řešení: Ověřte, že jsou k dispozici dostatečné systémové prostředky pro spouštění nových procesů.

-101 Neplatné argumenty při volání modulu plug-in Diagnostika

K této vnitřní chybě by mělo dojít pouze v případě, že se na virtuálním počítači ručně vyvolá ručně modul plug-in plug-in agenta hosta.

-102 Proces modulu plug-in nemůže inicializovat sám sebe.

Řešení: Ověřte, že jsou k dispozici dostatečné systémové prostředky pro spouštění nových procesů.

-103 Proces modulu plug-in nemůže inicializovat sám sebe. Konkrétně nejde vytvořit objekt protokolovacího nástroje.

Řešení: Ověřte, že jsou k dispozici dostatečné systémové prostředky pro spouštění nových procesů.

-104 Nelze načíst soubor rcf poskytnutý agentem hosta.

K této vnitřní chybě by mělo dojít pouze v případě, že se na virtuálním počítači ručně vyvolá ručně modul plug-in plug-in agenta hosta.

-105 Modul plug-in Diagnostika nemůže otevřít konfigurační soubor diagnostiky.

K této vnitřní chybě by mělo dojít pouze v případě, že je modul plug-in Diagnostiky na virtuálním počítači ručně vyvolán nesprávně.

-106 Nelze přečíst konfigurační soubor diagnostiky.

Příčinou je, že konfigurační soubor nepředává ověřování schématu.

Řešení: Zadejte konfigurační soubor, který vyhovuje schématu. Další informace najdete v tématu Kontrola konfigurace rozšíření Diagnostiky.

-107 Adresář prostředků předá agentu monitorování je neplatný.

K této vnitřní chybě by mělo dojít pouze v případě, že je agent monitorování na virtuálním počítači ručně vyvolán nesprávně.

-108 Konfigurační soubor diagnostiky nelze převést na konfigurační soubor agenta monitorování.

K této vnitřní chybě by mělo dojít pouze v případě, že je modul plug-in Diagnostika vyvolán ručně s neplatným konfiguračním souborem.

-110 Obecná chyba konfigurace diagnostiky

K této vnitřní chybě by mělo dojít pouze v případě, že je modul plug-in Diagnostika vyvolán ručně s neplatným konfiguračním souborem.

-111 Agent monitorování nejde spustit.

Řešení: Ověřte, že jsou k dispozici dostatečné systémové prostředky.

-112 Obecná chyba.

Extrakce místních protokolů

Agent monitorování shromažďuje protokoly a artefakty jako .tsf soubory. Soubor .tsf není čitelný, ale můžete ho .csv převést takto:

<Azure diagnostics extension package>\Monitor\x64\table2csv.exe <relevantLogFile>.tsf

Volaný <relevantLogFile>.csv nový soubor se vytvoří ve stejné cestě jako odpovídající .tsf soubor.

Poznámka:

Tento nástroj musíte spustit pouze pro hlavní .tsf soubor (například PerformanceCountersTable.tsf). Doprovodné soubory (například PerformanceCountersTables_\*\*001.tsf, PerformanceCountersTables_\*\*002.tsf) se zpracovávají automaticky.

Další informace o chybějících protokolech trasování

Poznámka:

Následující informace platí většinou pro Azure Cloud Services, pokud jste nenakonfigurovali DiagnosticsMonitorTraceListener aplikaci, která běží na virtuálním počítači IaaS (Infrastruktura jako služba).

  • Ujistěte se, že je diagnosticmonitorTraceListener nakonfigurovaný v souboru web.config nebo app.config. Ve výchozím nastavení je nakonfigurovaná v projektech cloudových služeb. Někteří zákazníci ho ale okomentují, což způsobí, že diagnostické příkazy neshromáždí.
  • Pokud se protokoly nezapisují z metody OnStart nebo Run , ujistěte se, že je diagnosticMonitorTraceListener v souboru app.config. Ve výchozím nastavení je v souboru web.config, ale to platí jenom pro kód spuštěný v rámci w3wp.exe. Proto ho potřebujete v souboru app.config k zachycení trasování spuštěných v WaIISHost.exe.
  • Ujistěte se, že místo Diagnostics.Debug.WriteXXX používáte Diagnostics.Trace.TraceXXX. Příkazy Debug se odeberou z sestavení vydané verze.
  • Ujistěte se, že zkompilovaný kód skutečně obsahuje řádky Diagnostics.Trace. K ověření použijte Reflector, ildasm nebo ILSpy. Příkazy Diagnostics.Trace se odeberou z kompilovaného binárního souboru, pokud nepoužíváte symbol podmíněné kompilace TRACE. K tomuto běžnému problému dochází, když k sestavení projektu používáte nástroj MSBuild.

Známé problémy a zmírnění rizik

Následující známé problémy mají zmírnění rizik.

Závislost .NET 4.5

Rozšíření Azure Diagnostics pro Windows má závislost modulu runtime na rozhraní .NET Framework 4.5 nebo novějším. V době psaní tohoto článku mají všechny počítače zřízené pro Azure Cloud Services a všechny oficiální image založené na virtuálních počítačích Azure, nainstalované .NET 4.5 nebo novější.

Stále je možné narazit na situaci, kdy se pokusíte spustit rozšíření Azure Diagnostics pro Windows na počítači, který nemá .NET 4.5 nebo novější. K této situaci dochází při vytváření počítače ze staré image nebo snímku nebo při používání vlastního disku.

Tento problém se obvykle manifestuje jako ukončovací kód 255 při spuštění DiagnosticsPluginLauncher.exe. K selhání dochází kvůli následující neošetřené výjimce:

System.IO.FileLoadException: Could not load file or assembly 'System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies

Zmírnění rizik: Nainstalujte na počítač .NET 4.5 nebo novější.

Data čítačů výkonu jsou k dispozici v úložišti, ale nezobrazují se na portálu.

Prostředí portálu ve virtuálních počítačích zobrazuje ve výchozím nastavení určité čítače výkonu. Pokud se nezobrazují čítače výkonu a víte, že se data generují, protože jsou k dispozici v úložišti, nezapomeňte zkontrolovat:

  • Určuje, jestli data v úložišti mají názvy čítačů v angličtině. Pokud názvy čítačů nejsou v angličtině, graf metrik portálu ho nerozpozná.

    • Zmírnění: Změna jazyka počítače na angličtinu pro systémové účty. Uděláte to tak, že vyberete Ovládací panely> Nastavení kopie pro správu>oblasti.> Potom zrušte zaškrtnutí úvodní obrazovky a systémových účtů , aby se pro systémový účet nepoužít vlastní jazyk.
  • Pokud v čítačích výkonu používáte zástupné čítače (*), portál nemůže korelovat nakonfigurovaný a shromážděný čítač při odesílání čítačů výkonu do jímky azure Storage.

    • Zmírnění rizik: Abyste měli jistotu, že můžete použít zástupné cardy a portál rozbalit (*), směrujte čítače výkonu do jímky služby Azure Monitor.