Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
-
2025-09-25
O Application Insights Agent é um módulo do PowerShell publicado na Galeria do PowerShell. Ele substitui o Status Monitor. A telemetria é enviada para a portal do Azure, no qual você pode monitorar seu aplicativo.
Para obter uma lista completa de cenários de autoinstrumentação com suporte, consulte ambientes, idiomas e provedores de recursos com suporte.
Observação
Atualmente, o módulo dá suporte à instrumentação sem código de aplicativos Web ASP.NET e ASP.NET Core hospedados com o IIS (Servidor de Informações da Internet). Use um SDK para instrumentar aplicativos Java e Node.js.
Observação
O monitoramento do lado do cliente é habilitado por padrão para aplicativos ASP.NET Core. Se você quiser desabilitar o monitoramento do lado do cliente, defina uma variável de ambiente no servidor com as seguintes informações:
-
Nome:
APPINSIGHTS_JAVASCRIPT_ENABLED
-
Valor:
false
Galeria do PowerShell
O Application Insights Agent está localizado na Galeria do PowerShell.
Instruções
- Para começar a usar exemplos de código concisos, veja a guia Introdução.
- Para obter um aprofundamento sobre como começar, veja as Instruções detalhadas.
- Para ver a referência da API do PowerShell, veja a guia Referência de API.
- Para ver atualizações de notas sobre a versão, veja a guia Notas sobre a versão.
Esta guia contém os comandos de início rápido que devem funcionar para a maioria dos ambientes. As instruções dependem da Galeria do PowerShell para distribuir atualizações. Esses comandos são suportados pelo parâmetro -Proxy
do PowerShell.
Para obter uma explicação sobre esses comandos, instruções de personalização e informações sobre solução de problemas, veja as instruções detalhadas.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Baixar e instalar por meio da Galeria do PowerShell
Use a Galeria do PowerShell para download e instalação.
Pré-requisitos da instalação
Para habilitar o monitoramento, você precisa ter uma cadeia de conexão. Uma cadeia de conexão é exibida no painel Visão geral do recurso do Application Insights. Para saber mais, confira Cadeias de conexão.
Observação
Para obter mais pré-requisitos necessários, consulte o suporte do TLS (PowerShell Gallery Transport Layer Security).
Execute o PowerShell como administrador.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
Install-Module -Name PowerShellGet -Force
Feche o PowerShell.
Instalar o Application Insights Agent
Execute o PowerShell como administrador.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Install-Module -Name Az.ApplicationMonitor -AllowPrerelease -AcceptLicense
Observação
A opção AllowPrerelease
no cmdlet Install-Module
permite a instalação da versão beta.
Para obter mais informações, confira Install-Module.
Habilitar o monitoramento
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Baixar e instalar manualmente (opção offline)
Você também pode baixar e instalar manualmente.
Baixar o modulo
Baixe manualmente a versão mais recente do módulo da Galeria do PowerShell.
Descompactar o Application Insights Agent
$pathToNupkg = "C:\Users\t\Desktop\Az.ApplicationMonitor.0.3.0-alpha.nupkg"
$pathToZip = ([io.path]::ChangeExtension($pathToNupkg, "zip"))
$pathToNupkg | rename-item -newname $pathToZip
$pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\Az.ApplicationMonitor"
Expand-Archive -LiteralPath $pathToZip -DestinationPath $pathInstalledModule
Habilitar o monitoramento
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Esta guia descreve como integrar a Galeria do PowerShell e baixar o módulo ApplicationMonitor. Estão incluídos os parâmetros mais comuns de que você precisa para começar. Também fornecemos instruções de download manual caso você não tenha acesso à Internet.
Obter uma cadeia de conexão
Para começar, você precisa de uma cadeia de conexão. Para saber mais, confira Cadeias de conexão.
Observação
Em 31 de março de 31, 2025, o suporte à ingestão de chave de instrumentação será encerrado. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar as novas funcionalidades.
Executar o PowerShell como administrador com uma política de execução elevada
Executar como administrador
O PowerShell precisa de permissões de nível de administrador para fazer alterações em seu computador.
Política de execução
- Descrição: por padrão, a execução de scripts do PowerShell está desabilitada. Recomendamos permitir scripts RemoteSigned apenas para o escopo atual.
- Referência: Sobre políticas de execução e Set-ExecutionPolicy.
- Comando:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
. - Parâmetro opcional:
-
-Force
. Ignora o prompt de confirmação.
-
Erros de exemplo
Install-Module : The 'Install-Module' command was found in the module 'PowerShellGet', but the module could not be
loaded. For more information, run 'Import-Module PowerShellGet'.
Import-Module : File C:\Program Files\WindowsPowerShell\Modules\PackageManagement\1.3.1\PackageManagement.psm1 cannot
be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
Pré-requisitos para PowerShell
Faça auditoria da instância do PowerShell executando o comando $PSVersionTable
.
Esse comando gera a seguinte saída:
Name Value
---- -----
PSVersion 5.1.17763.316
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.316
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Essas instruções foram escritas e testadas em um computador executando o Windows 10 e as seguintes versões.
Pré-requisitos para a Galeria do PowerShell
Estas etapas preparam seu servidor para baixar módulos da Galeria do PowerShell.
Observação
A Galeria do PowerShell tem suporte no Windows 10, no Windows Server 2016 e no PowerShell 6+. Para obter informações sobre versões anteriores, confira Instalar o PowerShellGet.
Execute o PowerShell como administrador com uma política de execução elevada.
Instale o provedor do pacote NuGet.
- Descrição: você precisa desse provedor para interagir com os repositórios baseados em NuGet, como a Galeria do PowerShell.
- Referência: Install-PackageProvider.
- Comando:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201
. - Parâmetros opcionais:
-
-Proxy
. Especifica um servidor proxy para a solicitação. -
-Force
. Ignora o prompt de confirmação.
-
Você receberá esse aviso se o NuGet não estiver configurado:
NuGet provider is required to continue PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or 'C:\Users\t\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and import the NuGet provider now? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Configure a Galeria do PowerShell como um repositório confiável.
- Descrição: por padrão, a Galeria do PowerShell é um repositório não confiável.
- Referência: Set-PSRepository.
- Comando:
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
. - Parâmetro opcional:
-
-Proxy
. Especifica um servidor proxy para a solicitação.
-
Você receberá essa solicitação se a Galeria do PowerShell não for confiável:
Untrusted repository You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
Você pode confirmar essa alteração e auditar todos os
PSRepositories
executando o comandoGet-PSRepository
.Instale a versão mais recente do PowerShellGet.
- Descrição: esse módulo contém as ferramentas usadas para obter outros módulos da Galeria do PowerShell. A versão 1.0.0.1 é fornecida com o Windows 10 e o Windows Server. A versão 1.6.0 ou superior é necessária. Para determinar qual versão está instalada, execute o comando
Get-Command -Module PowerShellGet
. - Referência: Instalar o PowerShellGet.
- Comando:
Install-Module -Name PowerShellGet
. - Parâmetros opcionais:
-
-Proxy
. Especifica um servidor proxy para a solicitação. -
-Force
. Ignora o aviso "já instalado" e instala a versão mais recente.
-
Você receberá esse erro se não estiver usando a versão mais recente do PowerShellGet:
Install-Module : A parameter cannot be found that matches parameter name 'AllowPrerelease'. At line:1 char:20 Install-Module abc -AllowPrerelease ~~~~~~~~~~~~~~~~ CategoryInfo : InvalidArgument: (:) [Install-Module], ParameterBindingException FullyQualifiedErrorId : NamedParameterNotFound,Install-Module
- Descrição: esse módulo contém as ferramentas usadas para obter outros módulos da Galeria do PowerShell. A versão 1.0.0.1 é fornecida com o Windows 10 e o Windows Server. A versão 1.6.0 ou superior é necessária. Para determinar qual versão está instalada, execute o comando
Reinicie o PowerShell. Não é possível carregar a versão nova na sessão atual. As novas sessões do PowerShell carregam a versão mais recente do PowerShellGet.
Baixar e instalar o módulo por meio da Galeria do PowerShell
Estas etapas baixam o módulo Az.ApplicationMonitor da Galeria do PowerShell.
- Verifique se todos os pré-requisitos para a Galeria do PowerShell são atendidos.
- Execute o PowerShell como administrador com uma política de execução elevada.
- Instale o módulo Az.ApplicationMonitor.
- Referência: Install-Module.
- Comando:
Install-Module -Name Az.ApplicationMonitor
. - Parâmetros opcionais:
-
-Proxy
. Especifica um servidor proxy para a solicitação. -
-AllowPrerelease
. Permite a instalação de versões alfa e beta. -
-AcceptLicense
. Ignora o prompt "Aceitar licença" -
-Force
. Ignora o aviso "Repositório não confiável".
-
Baixar e instalar o módulo manualmente (opção offline)
Se por algum motivo não for possível se conectar ao módulo do PowerShell, você poderá baixar e instalar manualmente o módulo Az.ApplicationMonitor.
Baixar manualmente o arquivo nupkg mais recente
- Ir para https://www.powershellgallery.com/packages/Az.ApplicationMonitor.
- Selecione a versão mais recente do arquivo na tabela de Histórico de versão.
- Em Opções de instalação, selecione Download manual.
Opção 1: instalar em um diretório de módulos do PowerShell
Instale o módulo do PowerShell baixado manualmente em um diretório do PowerShell para que ele possa ser descoberto por sessões do PowerShell. Para obter mais informações, confira Instalar um módulo do PowerShell.
Descompactar nupkg como um arquivo zip usando Expand-Archive (v 1.0.1.0)
Descrição: a versão base do Microsoft.PowerShell.Archive (v 1.0.1.0) não pode descompactar arquivos nupkg. Renomeie o arquivo com a extensão .zip.
Referência: Expand-Archive.
Comando:
$pathToNupkg = "C:\az.applicationmonitor.0.3.0-alpha.nupkg" $pathToZip = ([io.path]::ChangeExtension($pathToNupkg, "zip")) $pathToNupkg | rename-item -newname $pathToZip $pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\az.applicationmonitor" Expand-Archive -LiteralPath $pathToZip -DestinationPath $pathInstalledModule
Descompactar nupkg usando Expand-Archive (v 1.1.0.0)
Descrição: use uma versão atual do Expand-Archive para descompactar arquivos nupkg sem alterar a extensão.
Referência: Expand-Archive e Microsoft.PowerShell.Archive.
Comando:
$pathToNupkg = "C:\az.applicationmonitor.0.2.1-alpha.nupkg" $pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\az.applicationmonitor" Expand-Archive -LiteralPath $pathToNupkg -DestinationPath $pathInstalledModule
Opção 2: descompactar e importar nupkg manualmente
Instale o módulo do PowerShell baixado manualmente em um diretório do PowerShell para que ele possa ser descoberto por sessões do PowerShell. Para obter mais informações, confira Instalar um módulo do PowerShell.
Se você estiver instalando o módulo em qualquer outro diretório, importe o módulo manualmente usando Import-Module.
Importante
As DLLs (bibliotecas de link dinâmico) são instaladas por meio de caminhos relativos. Armazene o conteúdo do pacote em seu diretório de runtime pretendido e confirme se as permissões de acesso permitem leitura, mas não gravação.
- Altere a extensão para ".zip" e extraia o conteúdo do pacote no diretório de instalação pretendido.
- Localize o caminho do arquivo de Az.ApplicationMonitor.psd1.
- Execute o PowerShell como administrador com uma política de execução elevada.
- Carregue o módulo usando o comando
Import-Module Az.ApplicationMonitor.psd1
.
Rotear o tráfego por meio de um proxy
Ao monitorar um computador na sua intranet privada, você precisa rotear o tráfego HTTP por meio de um proxy.
Os comandos do PowerShell para baixar e instalar o Az.ApplicationMonitor da Galeria do PowerShell dão suporte ao parâmetro -Proxy
.
Examine as instruções anteriores ao escrever seus scripts de instalação.
O SDK do Application Insights precisa enviar a telemetria do seu aplicativo para a Microsoft. Recomendamos que você defina as configurações de proxy para seu aplicativo no arquivo web.config. Para obter mais informações, consulte Como obtenho a passagem do proxy?.
Habilitar o monitoramento
Use o comando Enable-ApplicationInsightsMonitoring
para habilitar o monitoramento.
Confira a referência da API para obter uma descrição detalhada de como usar esse cmdlet.
Esta guia descreve os seguintes cmdlets, que são membros do módulo do PowerShell Az.ApplicationMonitor:
- Enable-InstrumentationEngine
- Habilitar a monitoração do Application Insights
- Disable-InstrumentationEngine
- Desativar o monitoramento de Application Insights
- Get-ApplicationInsightsMonitoringConfig
- Get-ApplicationInsightsMonitoringStatus
- Set-ApplicationInsightsMonitoringConfig
- Start-ApplicationInsightsMonitoringTrace
Observação
- Para começar, você precisa de uma cadeia de conexão. Para obter mais informações, consulte Criar um recurso.
- Esse cmdlet requer que você examine e aceite nossa licença e nossa política de privacidade.
Observação
Em 31 de março de 31, 2025, o suporte à ingestão de chave de instrumentação será encerrado. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar as novas funcionalidades.
Importante
Este cmdlet requer uma sessão do PowerShell com permissões de administrador e uma política de execução elevada. Para obter mais informações, consulte Executar o PowerShell como administrador com uma política de execução elevada.
- Esse cmdlet requer que você examine e aceite nossa licença e nossa política de privacidade.
- O mecanismo de instrumentação adiciona mais sobrecarga e está desativado por padrão.
Enable-InstrumentationEngine
Habilita o mecanismo de instrumentação definindo algumas chaves do Registro. Reinicie o IIS para que as alterações entrem em vigor.
O mecanismo de instrumentação pode complementar os dados coletados pelos SDKs (Kits de Desenvolvimento de Software) do .NET. Ele coleta eventos e mensagens que descrevem a execução de um processo gerenciado. Esses eventos e mensagens incluem códigos de resultados de dependências, verbos HTTP e textos de comando SQL.
Habilite o mecanismo de instrumentação se:
- Você já habilitou o monitoramento com o cmdlet
Enable
, mas não habilitou o mecanismo de instrumentação. - Você instrumentou manualmente seu aplicativo com os SDKs do .NET e deseja coletar telemetria extra.
Exemplos
Enable-InstrumentationEngine
Parâmetros
-AceitarLicença
Opcional. Use essa opção para aceitar a licença e a política de privacidade em instalações sem periféricos.
-Prolixo
Parâmetro comum. Use essa opção para gerar logs detalhados.
Saída
Exemplo de saída de uma habilitação bem-sucedida do mecanismo de instrumentação
Configuring IIS Environment for instrumentation engine...
Configuring registry for instrumentation engine...
Enable-ApplicationInsightsMonitoring
Habilita o monitoramento de anexação sem código de aplicativos IIS em um computador de destino.
Esse cmdlet modifica o applicationHost.config do IIS e define algumas chaves de registro. Ele cria um arquivo applicationinsights.ikey.config, que define a chave de instrumentação usada por cada aplicativo. O IIS carrega o RedfieldModule na inicialização, que injeta o SDK do Application Insights nos aplicativos à medida que os aplicativos são iniciados. Reinicie o IIS para que as suas alterações entrem em vigor.
Depois de habilitar o monitoramento, recomendamos que você use o Live Metrics para verificar rapidamente se seu aplicativo está enviando telemetria para nós.
Exemplos
Exemplo com uma única cadeia de conexão
Neste exemplo, todos os aplicativos no computador atual são fornecidos com uma única cadeia de conexão.
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Exemplo com uma única chave de instrumentação
Neste exemplo, todos os aplicativos no computador atual são fornecidos com uma única chave de instrumentação.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Exemplo com um mapa de chaves de instrumentação
Neste exemplo:
-
MachineFilter
corresponde ao computador atual usando o caractere curinga'.*'
. -
AppFilter='WebAppExclude'
fornece uma chave de instrumentaçãonull
. O aplicativo especificado não é instrumentado. -
AppFilter='WebAppOne'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva. -
AppFilter='WebAppTwo'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva. -
AppFilter
usa o curinga'.*'
para corresponder a todos os aplicativos Web que ainda não correspondem e atribui uma chave de instrumentação padrão. - Os espaços são adicionados para facilitar a leitura.
Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap `
` @(@{MachineFilter='.*';AppFilter='WebAppExclude'},
` @{MachineFilter='.*';AppFilter='WebAppOne';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1'}},
` @{MachineFilter='.*';AppFilter='WebAppTwo';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2'}},
` @{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxdefault'}})
-
MachineFilter é um regex C# necessário do nome do computador ou da VM (máquina virtual).
- '.*' corresponde a todos
- 'ComputerName' corresponde apenas a computadores com o nome exato especificado.
-
AppFilter é um regex do C# necessário do Nome do Site do IIS. Você pode obter uma lista de sites em seu servidor executando o comando get-iissite.
- '.*' corresponde a todos
- 'SiteName' corresponde apenas ao Site do IIS com o nome exato especificado.
-
InstrumentationKey é necessário para habilitar o monitoramento de aplicativos que correspondem aos dois filtros anteriores.
- Deixe esse valor como null se você quiser definir regras para excluir o monitoramento.
-EnableInstrumentationEngine
Opcional. Use essa opção para habilitar o mecanismo de instrumentação para coletar eventos e mensagens sobre o que está acontecendo durante a execução de um processo gerenciado. Esses eventos e mensagens incluem códigos de resultados de dependências, verbos HTTP e textos de comando SQL.
O mecanismo de instrumentação aumenta a sobrecarga e está desativado por padrão.
-AceitarLicença
Opcional. Use essa opção para aceitar a licença e a política de privacidade em instalações sem periféricos.
-IgnoreSharedConfig
Quando você tiver um cluster de servidores Web, talvez esteja usando uma configuração compartilhada. O HttpModule não pode ser injetado nessa configuração compartilhada. Esse script falha com a mensagem de que etapas extras de instalação são necessárias. Use essa opção para ignorar essa verificação e continuar instalando os pré-requisitos. Para obter mais informações, consulte Conflito conhecido com a configuração compartilhada do IIS
-Prolixo
Parâmetro comum. Use essa opção para exibir logs detalhados.
-WhatIf
Parâmetro comum. Use essa opção para testar e validar os parâmetros de entrada sem realmente habilitar o monitoramento.
Saída
Exemplo de saída de uma habilitação bem-sucedida
Initiating Disable Process
Applying transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config'
'C:\Windows\System32\inetsrv\config\applicationHost.config' backed up to 'C:\Windows\System32\inetsrv\config\applicationHost.config.backup-2019-03-26_08-59-52z'
in :1,237
No element in the source document matches '/configuration/___location[@path='']/system.webServer/modules/add[@name='ManagedHttpModuleHelper']'
Not executing RemoveAll (transform line 1, 546)
Transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config' was successfully applied. Operation: 'disable'
GAC Module will not be removed, since this operation might cause IIS instabilities
Configuring IIS Environment for codeless attach...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring IIS Environment for instrumentation engine...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring registry for instrumentation engine...
Successfully disabled Application Insights Agent
Installing GAC module 'C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\0.2.0\content\Runtime\Microsoft.AppInsights.IIS.ManagedHttpModuleHelper.dll'
Applying transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config'
Found GAC module Microsoft.AppInsights.IIS.ManagedHttpModuleHelper.ManagedHttpModuleHelper, Microsoft.AppInsights.IIS.ManagedHttpModuleHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
'C:\Windows\System32\inetsrv\config\applicationHost.config' backed up to 'C:\Windows\System32\inetsrv\config\applicationHost.config.backup-2019-03-26_08-59-52z_1'
Transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config' was successfully applied. Operation: 'enable'
Configuring IIS Environment for codeless attach...
Configuring IIS Environment for instrumentation engine...
Configuring registry for instrumentation engine...
Updating app pool permissions...
Successfully enabled Application Insights Agent
Disable-InstrumentationEngine
Desabilita o mecanismo de instrumentação removendo algumas chaves do Registro. Reinicie o IIS para que as alterações entrem em vigor.
Exemplos
Disable-InstrumentationEngine
Parâmetros
-Prolixo
Parâmetro comum. Use essa opção para gerar logs detalhados.
Saída
Exemplo de saída de uma desabilitação bem-sucedida do mecanismo de instrumentação
Configuring IIS Environment for instrumentation engine...
Registry: removing 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]'
Registry: removing 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]'
Registry: removing 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]'
Configuring registry for instrumentation engine...
Disable-ApplicationInsightsMonitoring
Desabilita o monitoramento no computador de destino. Esse cmdlet remove edições no applicationHost.config do IIS e remove chaves do Registro.
Exemplos
Disable-ApplicationInsightsMonitoring
Parâmetros
-Prolixo
Parâmetro comum. Use essa opção para exibir logs detalhados.
Saída
Exemplo de saída de uma desabilitação bem-sucedida do monitoramento
Initiating Disable Process
Applying transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config'
'C:\Windows\System32\inetsrv\config\applicationHost.config' backed up to 'C:\Windows\System32\inetsrv\config\applicationHost.config.backup-2019-03-26_08-59-00z'
in :1,237
No element in the source document matches '/configuration/___location[@path='']/system.webServer/modules/add[@name='ManagedHttpModuleHelper']'
Not executing RemoveAll (transform line 1, 546)
Transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config' was successfully applied. Operation: 'disable'
GAC Module will not be removed, since this operation might cause IIS instabilities
Configuring IIS Environment for codeless attach...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring IIS Environment for instrumentation engine...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring registry for instrumentation engine...
Successfully disabled Application Insights Agent
Get-ApplicationInsightsMonitoringConfig
Obtém o arquivo de configuração e imprime os valores no console.
Exemplos
Get-ApplicationInsightsMonitoringConfig
Parâmetros
Nenhum parâmetro é necessário.
Saída
Exemplo de saída da leitura do arquivo de configuração
RedfieldConfiguration:
Filters:
0)InstrumentationKey: AppFilter: WebAppExclude MachineFilter: .*
1)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2 AppFilter: WebAppTwo MachineFilter: .*
2)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxdefault AppFilter: .* MachineFilter: .*
Get-ApplicationInsightsMonitoringStatus
Esse cmdlet fornece informações para solucionar problemas sobre o Application Insights Agent. Use este cmdlet para investigar o status de monitoramento, a versão do módulo do PowerShell e para inspecionar o processo em execução. Esse cmdlet relata informações de versão e informações sobre os principais arquivos necessários para o monitoramento.
Exemplos
Exemplo: status do aplicativo
Execute o comando Get-ApplicationInsightsMonitoringStatus
para exibir o status do monitoramento de sites.
Get-ApplicationInsightsMonitoringStatus
IIS Websites:
SiteName : Default Web Site
ApplicationPoolName : DefaultAppPool
SiteId : 1
SiteState : Stopped
SiteName : DemoWebApp111
ApplicationPoolName : DemoWebApp111
SiteId : 2
SiteState : Started
ProcessId : not found
SiteName : DemoWebApp222
ApplicationPoolName : DemoWebApp222
SiteId : 3
SiteState : Started
ProcessId : 2024
Instrumented : true
InstrumentationKey : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx123
SiteName : DemoWebApp333
ApplicationPoolName : DemoWebApp333
SiteId : 4
SiteState : Started
ProcessId : 5184
AppAlreadyInstrumented : true
Neste exemplo:
Identificador da máquina é uma ID anônima usada para identificar exclusivamente o servidor. Se você criar uma solicitação de suporte, precisaremos dessa ID para encontrar os registros do seu servidor.
Site padrão está Parado no IIS
O IIS mostra DemoWebApp111 como iniciado, mas o aplicativo não recebe nenhuma solicitação. O relatório não mostra nenhum processo em execução (ProcessId: não encontrado).
DemoWebApp222 está sendo executado e está sendo monitorado (instrumentado: true). Com base na configuração do usuário, a chave de instrumentação xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx123 foi assiociada este site.
O DemoWebApp333 é instrumentado manualmente usando o SDK do Application Insights. O Application Insights Agent detecta o SDK e não monitora este site.
A presença de
AppAlreadyInstrumented : true
significa que o agente do Application Insights identificou uma dll conflitante carregada no aplicativo Web, presumiu que o aplicativo Web é instrumentado manualmente e que o agente fez o backup e não está instrumentando esse processo.Instrumented : true
indica que o agente do Application Insights instrumentou com êxito o aplicativo Web em execução no processo w3wp.exe especificado.
Exemplo: informações do módulo do PowerShell
Execute o comando Get-ApplicationInsightsMonitoringStatus -PowerShellModule
para exibir informações sobre o módulo atual:
Get-ApplicationInsightsMonitoringStatus -PowerShellModule
PowerShell Module version:
0.4.0-alpha
Application Insights SDK version:
2.9.0.3872
Executing PowerShell Module Assembly:
Microsoft.ApplicationInsights.Redfield.Configurator.PowerShell, Version=2.8.14.11432, Culture=neutral, PublicKeyToken=31bf3856ad364e35
PowerShell Module Directory:
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\0.2.2\content\PowerShell
Runtime Paths:
ParentDirectory (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content
ConfigurationPath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\applicationInsights.ikey.config
ManagedHttpModuleHelperPath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AppInsights.IIS.ManagedHttpModuleHelper.dll
RedfieldIISModulePath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll
InstrumentationEngine86Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation32\MicrosoftInstrumentationEngine_x86.dll
InstrumentationEngine64Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\MicrosoftInstrumentationEngine_x64.dll
InstrumentationEngineExtensionHost86Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation32\Microsoft.ApplicationInsights.ExtensionsHost_x86.dll
InstrumentationEngineExtensionHost64Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.ExtensionsHost_x64.dll
InstrumentationEngineExtensionConfig86Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation32\Microsoft.InstrumentationEngine.Extensions.config
InstrumentationEngineExtensionConfig64Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.InstrumentationEngine.Extensions.config
ApplicationInsightsSdkPath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.dll
Exemplo: status do runtime
Você pode inspecionar os processos no computador instrumentado para determinar se todas as DLLs estão carregadas. Se o monitoramento estiver funcionando, pelo menos 12 DLLs deverão estar carregadas.
Execute o comando Get-ApplicationInsightsMonitoringStatus -InspectProcess
:
Get-ApplicationInsightsMonitoringStatus -InspectProcess
iisreset.exe /status
Status for IIS Admin Service ( IISADMIN ) : Running
Status for Windows Process Activation Service ( WAS ) : Running
Status for Net.Msmq Listener Adapter ( NetMsmqActivator ) : Running
Status for Net.Pipe Listener Adapter ( NetPipeActivator ) : Running
Status for Net.Tcp Listener Adapter ( NetTcpActivator ) : Running
Status for World Wide Web Publishing Service ( W3SVC ) : Running
handle64.exe -accepteula -p w3wp
BF0: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.ServerTelemetryChannel.dll
C58: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.AzureAppServices.dll
C68: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.DependencyCollector.dll
C78: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.WindowsServer.dll
C98: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.Web.dll
CBC: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.PerfCounterCollector.dll
DB0: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.Agent.Intercept.dll
B98: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll
BB4: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.Contracts.dll
BCC: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.Redfield.Lightup.dll
BE0: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.dll
listdlls64.exe -accepteula w3wp
0x0000000019ac0000 0x127000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\MicrosoftInstrumentationEngine_x64.dll
0x00000000198b0000 0x4f000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.ExtensionsHost_x64.dll
0x000000000c460000 0xb2000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.Extensions.Base_x64.dll
0x000000000ad60000 0x108000 C:\Windows\TEMP\2.4.0.0.Microsoft.ApplicationInsights.Extensions.Intercept_x64.dll
Parâmetros
(Sem parâmetros)
Por padrão, esse cmdlet relata o status de monitoramento dos aplicativos Web. Use esta opção para examinar se o aplicativo foi instrumentado de forma bem-sucedida. Você também pode examinar qual chave de instrumentação foi associada ao seu site.
-PowerShellModule
Opcional. Use essa opção para relatar os números de versão e os caminhos de DLLs necessários para o monitoramento. Use esta opção se você precisar identificar a versão de qualquer DLL, incluindo do SDK do Application Insights.
-InspectProcess
Opcional. Use essa opção para relatar se o IIS está em execução. Ele baixa ferramentas externas para determinar se as DLLs necessárias são carregadas no tempo de execução do IIS.
Se esse processo falhar por algum motivo, você poderá executar estes comandos manualmente:
iisreset.exe /status
[handle64.exe](/sysinternals/downloads/handle) -p w3wp | findstr /I "InstrumentationEngine AI. ApplicationInsights"
[listdlls64.exe](/sysinternals/downloads/listdlls) w3wp | findstr /I "InstrumentationEngine AI ApplicationInsights"
-Força
Opcional. Usado somente com InspectProcess. Use essa opção para ignorar a solicitação do usuário que aparece antes do download de mais ferramentas.
Set-ApplicationInsightsMonitoringConfig
Define o arquivo de configuração sem fazer uma reinstalação completa. Reinicie o IIS para que as suas alterações entrem em vigor.
Importante
Este cmdlet requer uma sessão do PowerShell com permissões de administrador.
Exemplos
Exemplo com uma única chave de instrumentação
Neste exemplo, todos os aplicativos no computador atual são fornecidos com uma única chave de instrumentação.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Exemplo com um mapa de chaves de instrumentação
Neste exemplo:
-
MachineFilter
corresponde ao computador atual usando o caractere curinga'.*'
. -
AppFilter='WebAppExclude'
fornece uma chave de instrumentaçãonull
. O aplicativo especificado não é instrumentado. -
AppFilter='WebAppOne'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva. -
AppFilter='WebAppTwo'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva. -
AppFilter
usa o curinga'.*'
para corresponder a aplicativos Web que ainda não correspondem e atribui uma chave de instrumentação padrão. - Os espaços são adicionados para facilitar a leitura.
Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap `
` @(@{MachineFilter='.*';AppFilter='WebAppExclude'},
` @{MachineFilter='.*';AppFilter='WebAppOne';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1'}},
` @{MachineFilter='.*';AppFilter='WebAppTwo';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2'}},
` @{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxdefault'}})
Parâmetros
-InstrumentationKey
Obrigatório. Use esse parâmetro para fornecer uma chave de instrumentação única para ser usada por todos os aplicativos no computador de destino.
-InstrumentationKeyMap
Obrigatório. Use esse parâmetro para fornecer várias chaves de instrumentação e um mapeamento das chaves de instrumentação usadas por cada aplicativo.
Você pode criar um único script de instalação para vários computadores definindo MachineFilter
.
Importante
Os aplicativos correspondem às regras na ordem em que você as fornece. Especifique as regras mais específicas primeiro e as regras mais genéricas por último.
Importante
InstrumentationKeyMap é um recurso de roteamento avançado que mapeia aplicativos do IIS (Serviços de Informações da Internet) no mesmo computador para recursos do Application Insights. O recurso é aplicado às aplicações ASP.NET e ASP.NET Core hospedadas no IIS que o Application Insights Agent autoinstrui automaticamente.
Como funciona a combinação
- O mapa define uma lista ordenada de regras nomeadas
filters
. A primeira regra correspondente entra em vigor. Coloque as regras específicas em primeiro lugar e finalize com uma regra abrangente (catch-all). - Cada regra pode atribuir um recurso diferente do Application Insights a aplicativos correspondentes. Prefira cadeias de conexão em cenários com suporte porque as chaves de instrumentação são herdadas.
Filtros disponíveis
-
MachineFilter
oumachineFilter
: expressão regular C# que corresponde ao nome do computador ou da VM (máquina virtual)..*
corresponde a todos os nomes. -
AppFilter
ouappFilter
: expressão regular C# que corresponde ao nome do site do IIS (HostingEnvironment.SiteName
). Esse filtro é necessário quandoVirtualPathFilter
ouvirtualPathFilter
não é fornecido. -
VirtualPathFilter
ouvirtualPathFilter
: expressão regular C# que corresponde ao caminho virtual do IIS (HostingEnvironment.ApplicationVirtualPath
). Use esse filtro para direcionar um único aplicativo em um site.
Mapeamento de terminologia
- Os cmdlets do PowerShell usam
MachineFilter
,AppFilter
eVirtualPathFilter
. - A extensão JSON das Máquinas Virtuais do Azure e dos Conjuntos de Dimensionamento de Máquinas Virtuais usa
machineFilter
,appFilter
,virtualPathFilter
e define o recurso cominstrumentationSettings
.
Dica
Inclua uma regra final que corresponda a todos os aplicativos, como .*
, e aplique um recurso padrão para tornar o comportamento explícito.
A forma do mapa deste cmdlet
- Forneça
-InstrumentationKeyMap
como uma matriz de hashtables do PowerShell. - Para este cmdlet, defina o recurso de destino por regra com
InstrumentationSettings=@{ InstrumentationKey = '<ikey>' }
. - Se você quiser um único recurso para todos os aplicativos no computador, use
-ConnectionString
ou-InstrumentationKey
em vez disso.
Start-ApplicationInsightsMonitoringTrace
Coleta eventos ETW (Rastreamento de Eventos para Windows) que o runtime de anexação sem código emite. Use esse cmdlet como uma alternativa mais simples para executar o PerfView.
Os eventos são impressos no console em tempo real e também gravados em um .etl
arquivo. Você pode abrir o .etl
arquivo com o PerfView para uma análise mais profunda.
Esse cmdlet é executado até atingir o tempo limite, o padrão é 5 minutos ou até que você o interrompa manualmente com Ctrl + C
.
Exemplos
Como coletar eventos
Use esse fluxo quando precisar investigar por que um aplicativo IIS não está sendo instrumentado.
O runtime de anexação sem código gera eventos ETW quando o IIS é iniciado e quando seu aplicativo é iniciado.
- Em um prompt de comando administrativo, execute
iisreset /stop
para interromper o IIS e todos os aplicativos Web. - Comece a rastrear executando este cmdlet.
- Em um prompt de comando administrativo, execute
iisreset /start
para iniciar o IIS. - Acione a inicialização navegando até o seu aplicativo.
- Depois que o aplicativo terminar de carregar, pressione
Ctrl + C
para parar ou permita o tempo limite para encerrar a sessão.
Quais eventos coletar
Você pode escolher quais fontes de evento incluir:
-
-CollectSdkEvents
coleta eventos do SDK do Application Insights. -
-CollectRedfieldEvents
coleta eventos do Application Insights Agent e do runtime do Redfield, o que é útil para o diagnóstico do IIS e da inicialização de aplicativos. - Colete ambos os conjuntos especificando ambas as opções.
- Se você não especificar uma opção, ambos os conjuntos serão coletados por padrão.
Parâmetros
-MaxDurationEmMinutos
Opcional. Configura a duração da coleta antes do tempo limite. O padrão é 5 minutos.
-LogDirectory
Opcional. Diretório em que o .etl
arquivo deve ser gravado. Por padrão, o arquivo é criado no diretório do PowerShell do módulo. O caminho completo é mostrado quando a sessão é iniciada.
-CollectSdkEvents
Opcional. Inclua eventos do SDK do Application Insights.
-CollectRedfieldEvents
Opcional. Inclua eventos do Application Insights Agent e do tempo de execução do Redfield.
-Prolixo
Parâmetro comum. Gera logs detalhados.
Saída
Exemplo de logs de inicialização do aplicativo
Start-ApplicationInsightsMonitoringTrace -CollectRedfieldEvents
Starting...
Log File: C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\logs\20190627_144217_ApplicationInsights_ETW_Trace.etl
Tracing enabled, waiting for events.
Tracing will timeout in 5 minutes. Press CTRL+C to cancel.
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Resolved variables to: MicrosoftAppInsights_ManagedHttpModulePath='C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll', MicrosoftAppInsights_ManagedHttpModuleType='Microsoft.ApplicationInsights.RedfieldIISModule.RedfieldIISModule'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Resolved variables to: MicrosoftDiagnosticServices_ManagedHttpModulePath2='', MicrosoftDiagnosticServices_ManagedHttpModuleType2=''
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Environment variable 'MicrosoftDiagnosticServices_ManagedHttpModulePath2' or 'MicrosoftDiagnosticServices_ManagedHttpModuleType2' is null, skipping managed dll loading
Comentários
Esta página foi útil?