На этой вкладке описывается подключение к коллекция PowerShell и скачивание модуля ApplicationMonitor.
Включены являются наиболее распространенными параметрами, которые необходимо приступить к работе.
Мы также подготовили инструкции по скачиванию вручную на случай, если у вас нет доступа к Интернету.
Получение строка подключения
Чтобы приступить к работе, вам потребуется строка подключения. Дополнительные сведения см. в разделе Строки подключения.
Примечание.
Поддержка приема ключей инструментирования будет завершена 31 марта 31, 2025 г. Прием ключей инструментирования будет и дальше осуществляться, но мы больше не будем предоставлять обновления или поддержку для этой функции. Перейдите на строки подключения, чтобы использовать новые возможности.
Запуск PowerShell от имени администратора с помощью политики выполнения с повышенными правами
Запуск от имени администратора
Чтобы внести изменения на вашем компьютере, PowerShell нужны разрешения на уровне администратора.
Политика выполнения
- Описание: по умолчанию запуск сценариев PowerShell отключен. Мы рекомендуем разрешать сценарии RemoteSigned только для текущей области.
- Справка: Общие сведения о политиках выполнения и Set-ExecutionPolicy.
- Команда:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
.
- Необязательный параметр:
-Force
. Обходит запрос подтверждения.
Примеры ошибок
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.
Предварительные требования для PowerShell
Проведите аудит экземпляра PowerShell, выполнив команду $PSVersionTable
.
Эта команда выдает следующий результат:
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
Эти инструкции были написаны и протестированы на компьютере под управлением Windows 10 и следующих версий.
Предварительные требования для коллекции PowerShell
Эти действия подготовят сервер к загрузке модулей из коллекция PowerShell.
Примечание.
Коллекция PowerShell поддерживается в Windows 10, Windows Server 2016 и PowerShell 6+.
Дополнительные сведения о более ранних версиях см. в разделе Установка PowerShellGet.
Запустите PowerShell от имени администратора с помощью политики выполнения с повышенными правами.
Установите диспетчер пакетов NuGet.
- Описание. Этот поставщик необходим для взаимодействия с репозиториями на основе NuGet, например с коллекцией PowerShell.
- Справка: Install-PackageProvider.
- Команда:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201
.
- Необязательные параметры:
-Proxy
. Указывает прокси-сервер для запроса.
-Force
. Обходит запрос подтверждения.
Вы получите этот запрос, если NuGet не настроен:
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"):
Настройте коллекцию PowerShell как доверенный репозиторий.
- Описание: по умолчанию коллекция PowerShell является недоверенным репозиторием.
- Справка: Set-PSRepository.
- Команда:
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
.
- Необязательный параметр:
-Proxy
. Указывает прокси-сервер для запроса.
Вы получите этот запрос, если коллекция PowerShell не является доверенным:
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"):
Это изменение и аудит PSRepositories
можно подтвердить, выполнив Get-PSRepository
команду.
Установите PowerShellGet последней версии.
- Описание: этот модуль содержит средства, которые используются для получения других модулей из коллекция PowerShell. Версия 1.0.0.1 поставляется с Windows 10 и Windows Server. Требуется версия агента 1.6.0 или более поздняя. Чтобы определить, какая версия установлена, выполните команду
Get-Command -Module PowerShellGet
.
- Справка: Установка PowerShellGet.
- Команда:
Install-Module -Name PowerShellGet
.
- Необязательные параметры:
-Proxy
. Указывает прокси-сервер для запроса.
-Force
. Обходит предупреждение "уже установлено" и устанавливает последнюю версию.
Эта ошибка возникает, если вы не используете последнюю версию 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
Перезапустите PowerShell. Загрузить новую версию в текущем сеансе невозможно. Новые сеансы PowerShell загружают последнюю версию PowerShellGet.
Загрузка и установка модуля с помощью коллекции PowerShell
Эти шаги скачивают модуль Az.ApplicationMonitor из коллекция PowerShell.
- Убедитесь, что все предварительные требования для коллекции PowerShell выполнены.
- Запустите PowerShell от имени администратора с помощью политики выполнения с повышенными правами.
- Установите модуль Az.ApplicationMonitor.
- Справка: Install-Module.
- Команда:
Install-Module -Name Az.ApplicationMonitor
.
- Необязательные параметры:
-Proxy
. Указывает прокси-сервер для запроса.
-AllowPrerelease
. Позволяет устанавливать пакеты альфа- и бета-версии.
-AcceptLicense
. Обходит запрос "Принять лицензию".
-Force
. Обходит предупреждение "Недоверенный репозиторий".
Скачивание и установка модуля вручную (автономный режим)
Если по какой-либо причине подключиться к модулю PowerShell не удается, вы можете скачать и установить модуль Az.ApplicationMonitor вручную.
Скачивание последней версии файла nupkg вручную
- Переход к https://www.powershellgallery.com/packages/Az.ApplicationMonitor.
- Выберите последнюю версию файла в таблице Журнал версий.
- В разделе Параметры установки выберите пункт Скачивание вручную.
Вариант 1. Установка в каталог модулей PowerShell
Установите модуль PowerShell вручную в каталог PowerShell, чтобы его можно было обнаружить с помощью сеансов PowerShell.
Дополнительные сведения см. в статье Установка модуля PowerShell.
Распаковка nupkg как ZIP-файла с помощью Expand-Archive (версии 1.0.1.0)
Описание: базовая версия Microsoft.PowerShell.Archive (версии 1.0.1.0) не может распаковать файлы nupkg. Переименуйте файл, добавив расширение ZIP.
Справка: Expand-Archive.
Команда:
$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
Распаковка nupkg с помощью Expand-Archive (версии 1.1.0.0)
Описание: для распаковки файлов nupkg без изменения расширения используйте текущую версию Expand-Archive.
Справка: Expand-Archive и Microsoft.PowerShell.Archive.
Команда:
$pathToNupkg = "C:\az.applicationmonitor.0.2.1-alpha.nupkg"
$pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\az.applicationmonitor"
Expand-Archive -LiteralPath $pathToNupkg -DestinationPath $pathInstalledModule
Вариант 2. Распаковка и импорт файла nupkg вручную
Установите модуль PowerShell вручную в каталог PowerShell, чтобы его можно было обнаружить с помощью сеансов PowerShell.
Дополнительные сведения см. в статье Установка модуля PowerShell.
Если вы устанавливаете модуль в любой другой каталог, импортируйте модуль с помощью команды Import-Module вручную.
Внимание
Библиотеки DLL будут установлены через относительные пути.
Сохраните содержимое пакета в требуемый каталог среды выполнения и убедитесь в том, что разрешения на доступ разрешают чтение, но не запись.
- Измените расширение на ZIP и извлеките содержимое пакета в требуемый каталог установки.
- Найдите путь к файлу Az.ApplicationMonitor.psd1.
- Запустите PowerShell от имени администратора с помощью политики выполнения с повышенными правами.
- Загрузите модуль с помощью команды
Import-Module Az.ApplicationMonitor.psd1
.
Перенаправление трафика через прокси-сервер
При мониторинге компьютера в частной интрасети необходимо маршрутизировать HTTP-трафик через прокси-сервер.
Команды PowerShell для скачивания и установки Az.ApplicationMonitor из коллекция PowerShell поддерживают параметр -Proxy
.
При написании сценариев установки следуйте приведенным выше инструкциям.
Пакет SDK Application Insights должен отправлять данные телеметрии приложения в Корпорацию Майкрософт. Рекомендуем настроить параметры прокси-сервера для вашего приложения в файле web.config. Дополнительные сведения см. в разделе Разделы справки достижения сквозной передачи прокси-сервера?.
Включение мониторинга
Для включения мониторинга используйте команду Enable-ApplicationInsightsMonitoring
.
Подробное описание использования этого командлета см. в справочных материалах по API.
На этой вкладке описаны следующие командлеты, которые являются членами модуля Az.ApplicationMonitor PowerShell:
Примечание.
- Чтобы приступить к работе, вам потребуется строка подключения. Дополнительную информацию см. в разделе Создание ресурса.
- Для этого командлета необходимо проверить и принять наши лицензионные условия и заявление о конфиденциальности.
Примечание.
Поддержка приема ключей инструментирования будет завершена 31 марта 31, 2025 г. Прием ключей инструментирования будет и дальше осуществляться, но мы больше не будем предоставлять обновления или поддержку для этой функции. Перейдите на строки подключения, чтобы использовать новые возможности.
Внимание
Для этого командлета требуется сеанс PowerShell с разрешениями администратора и политикой выполнения с повышенными правами. Дополнительные сведения см. в статье Запуск PowerShell от имени администратора с повышенной политикой выполнения.
- Для этого командлета необходимо проверить и принять наши лицензионные условия и заявление о конфиденциальности.
- Модуль инструментирования добавляет нагрузку и по умолчанию отключен.
Enable-InstrumentationEngine
Включает модуль инструментирования, настроив некоторые разделы реестра.
Перезапустите IIS, чтобы изменения вступили в силу.
Модуль инструментирования может дополнять данные, собираемые пакетами SDK для .NET.
Он собирает события и сообщения, описывающие выполнение управляемого процесса. Эти события и сообщения включают в себя коды результатов зависимостей, глаголы HTTP и текст команды SQL.
Включите модуль инструментирования, если:
- вы уже включили наблюдение с помощью командлета Enable, но не включили модуль инструментирования;
- Вы вручную инструментировали приложение с помощью пакетов SDK для .NET и хотите собирать дополнительные данные телеметрии.
Примеры
Enable-InstrumentationEngine
Параметры
-AcceptLicense
Необязательно. Используйте этот параметр, чтобы принять условия лицензии и заявление о конфиденциальности в установках headless.
-Verbose
Общий параметр. Используйте этот параметр для вывода подробных журналов.
Выходные данные
Пример выходных данных для успешного включения модуля инструментирования
Configuring IIS Environment for instrumentation engine...
Configuring registry for instrumentation engine...
Enable-ApplicationInsightsMonitoring
Включает некодированный мониторинг приложений IIS на конечном компьютере.
Этот командлет изменяет конфигурацию IIS applicationHost.config и задает некоторые разделы реестра.
Он создает файл applicationinsights.ikey.config, определяющий ключ инструментирования, используемый каждым приложением.
IIS загружает RedfieldModule при запуске, который внедряет пакет SDK Application Insights в приложения при запуске приложений.
Перезапустите IIS, чтобы изменения вступили в силу.
После включения мониторинга рекомендуется использовать Live Metrics, чтобы быстро проверить, отправляет ли ваше приложение данные телеметрии.
Примеры
Пример с одним строка подключения
В этом примере всем приложениям на текущем компьютере назначается один строка подключения.
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Пример с одним ключом инструментирования
В этом примере всем приложениям на текущем компьютере назначается один ключ инструментирования.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Пример с сопоставлением ключа инструментирования
В этом примере:
MachineFilter
соответствует текущему компьютеру посредством подстановочного знака '.*'
.
AppFilter='WebAppExclude'
обеспечивает ключ инструментирования null
. Указанное приложение не инструментировано.
AppFilter='WebAppOne'
присваивает указанному приложению уникальный ключ инструментирования.
AppFilter='WebAppTwo'
присваивает указанному приложению уникальный ключ инструментирования.
AppFilter
'.*'
использует подстановочный знак для сопоставления любых веб-приложений, которые еще не совпадают, и назначает ключ инструментирования по умолчанию.
- Для удобочитаемости добавляются пробелы.
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'}})
Примечание.
Именование AppFilter в этом контексте может быть запутанным, AppFilter
задает фильтр regex имени приложения (HostingEnvironment.SiteName в случае .NET в IIS). VirtualPathFilter
задает фильтр regex виртуального пути (HostingEnvironment.ApplicationVirtualPath в случае .NET в IIS). Для инструментирования одного приложения используется VirtualPathFilter: Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap @(@{VirtualPathFilter="^/MyAppName$"; InstrumentationSettings=@{InstrumentationKey='<your ikey>'}})
Параметры
-ConnectionString
Обязательный. Используйте этот параметр для предоставления одного строка подключения для использования всеми приложениями на целевом компьютере.
-InstrumentationKey
Обязательный. Используйте этот параметр, чтобы указать один ключ инструментирования для использования всеми приложениями на конечном компьютере.
-InstrumentationKeyMap
Обязательный. Этот параметр используется для предоставления нескольких ключей инструментирования и сопоставления ключей инструментирования, используемых каждым приложением.
Можно создать один скрипт установки для нескольких компьютеров, установив параметр MachineFilter
.
Внимание
Приложения соответствуют правилам в порядке предоставления правил. Поэтому необходимо сначала указать самые конкретные и самые общие правила.
Схема
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}})
- MachineFilter — это обязательное регулярное выражение C# для имени компьютера или виртуальной машины.
- ".*" соответствует всем
- Имя_компьютера соответствует только компьютерам с указанным именем.
- AppFilter — это обязательное регулярное выражение C# имени сайта службы IIS. Список сайтов на сервере можно получить, выполнив команду get-iissite.
- ".*" соответствует всем
- SiteName соответствует только сайту IIS с точным именем.
- InstrumentationKey требуется для включения мониторинга приложений, соответствующих двум предыдущим фильтрам.
- Если необходимо определить правила для исключения мониторинга, оставьте значение null.
-EnableInstrumentationEngine
Необязательно. Используйте этот параметр, чтобы модуль инструментирования собирал события и сообщения о том, что происходит во время выполнения управляемого процесса. Эти события и сообщения включают в себя коды результатов зависимостей, глаголы HTTP и текст команды SQL.
Модуль инструментирования добавляет нагрузку и по умолчанию отключен.
-AcceptLicense
Необязательно. Используйте этот параметр, чтобы принять условия лицензии и заявление о конфиденциальности в установках headless.
-IgnoreSharedConfig
Если у вас есть кластер веб-серверов, возможно, вы используете общедоступную конфигурацию.
Внедрить HttpModule в эту общую конфигурацию невозможно.
Этот скрипт завершается ошибкой с сообщением о необходимости дополнительных шагов установки.
Используйте этот параметр, чтобы пропустить эту проверку и продолжить установку необходимых компонентов.
Дополнительные сведения см. в статье Известные конфликты с общедоступной конфигурацией службы IIS.
-Verbose
Общий параметр. Используйте этот параметр для отображения подробных журналов.
-WhatIf
Общий параметр. Используйте этот параметр для тестирования и проверки входных параметров без фактического включения мониторинга.
Выходные данные
Пример выходных данных успешного включения
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
Отключает модуль инструментирования, удаляя некоторые разделы реестра.
Перезапустите IIS, чтобы изменения вступили в силу.
Примеры
Disable-InstrumentationEngine
Параметры
-Verbose
Общий параметр. Используйте этот параметр для вывода подробных журналов.
Выходные данные
Пример выходных данных для успешного отключения модуля инструментирования
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
Отключает мониторинг на конечном компьютере.
Этот командлет удаляет изменения в конфигурацию IIS applicationHost.config и удаляет разделы реестра.
Примеры
Disable-ApplicationInsightsMonitoring
Параметры
-Verbose
Общий параметр. Используйте этот параметр для отображения подробных журналов.
Выходные данные
Пример выходных данных для успешного отключения мониторинга
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
Возвращает файл конфигурации и выводит значения на консоль.
Примеры
Get-ApplicationInsightsMonitoringConfig
Параметры
Никакие параметры не требуются.
Выходные данные
Пример выходных данных чтения файла конфигурации
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
Этот командлет предоставляет сведения об устранении неполадок агента Application Insights.
Используйте этот командлет для изучения состояния мониторинга, версии модуля PowerShell и для проверки выполняющегося процесса.
Этот командлет сообщает сведения о версии и сведения о ключевых файлах, необходимых для мониторинга.
Примеры
Пример: состояние приложения
Выполните команду Get-ApplicationInsightsMonitoringStatus
, чтобы отобразить состояние мониторинга веб-сайтов.
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
В этом примере;
Идентификатор компьютера — это анонимный идентификатор, используемый для уникальной идентификации сервера. Если вы создаете запрос на поддержку, нам нужен этот идентификатор, чтобы найти журналы для сервера.
Веб-сайт по умолчанию остановлен в службе IIS
DemoWebApp111 запущен в службе IIS, но не получил никаких запросов. В этом отчете показано, что нет выполняющегося процесса (ProcessId: не найдено).
DemoWebApp222 работает и отслеживается (инструментировано: true). На основе пользовательской конфигурации для этого сайта был сопоставлен ключ инструментирования xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx123.
DemoWebApp333 вручную инструментирован с помощью пакета SDK для Application Insights. Агент Application Insights обнаружил пакет SDK и не отслеживает этот сайт.
Наличие AppAlreadyInstrumented : true
означает, что агент Application Insights определил конфликтующую библиотеку DLL , загруженную в веб-приложение, предполагается, что веб-приложение инструментировано вручную, а агент отключил и не инструментирует этот процесс.
Instrumented : true
указывает, что агент Application Insights успешно инструментировал веб-приложение, работающее в указанном w3wp.exe процессе.
Выполните команду Get-ApplicationInsightsMonitoringStatus -PowerShellModule
, чтобы отобразить сведения о текущем модуле:
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
Пример: состояние среды выполнения
Можно проверить процесс на инструментированном компьютере, чтобы определить, все ли необходимые библиотеки DLL загружены. Если отслеживание работает, то должно быть загружено не менее 12 библиотек DLL.
Выполните команду 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
Параметры
(Нет параметров)
По умолчанию этот командлет сообщает о состоянии мониторинга веб-приложений.
Используйте этот параметр, чтобы проверить успешность инструментирования приложения.
Вы также можете проверить, какой ключ инструментирования был сопоставлен с сайтом.
-PowerShellModule
Необязательно. Используйте этот параметр, чтобы сообщить номера версий и пути библиотек DLL, необходимые для мониторинга.
Используйте этот параметр, если необходимо указать версию любой библиотеки DLL, включая пакет SDK для Application Insights.
-InspectProcess
Необязательно. Используйте этот параметр для сообщения о том, запущен ли сервер IIS.
Он загружает внешние средства, чтобы определить, загружаются ли необходимые библиотеки DLL в среду выполнения IIS.
Если по какой-то причине этот процесс завершится сбоем, можно выполнить следующие команды вручную:
- iisreset.exe /status
- handle64.exe -p w3wp | findstr /I "InstrumentationEngine AI. ApplicationInsights"
- listdlls64.exe w3wp | findstr /I "InstrumentationEngine AI ApplicationInsights"
-Force
Необязательно. Используется только с InspectProcess. Используйте этот параметр, чтобы пропустить запрос пользователя, который отображается перед загрузкой дополнительных средств.
Set-ApplicationInsightsMonitoringConfig
Задает файл конфигурации без выполнения полной переустановки.
Перезапустите IIS, чтобы изменения вступили в силу.
Внимание
Для этого командлета требуется сеанс PowerShell с правами администратора.
Примеры
Пример с одним ключом инструментирования
В этом примере всем приложениям на текущем компьютере назначается один ключ инструментирования.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Пример с сопоставлением ключа инструментирования
В этом примере:
MachineFilter
соответствует текущему компьютеру посредством подстановочного знака '.*'
.
AppFilter='WebAppExclude'
обеспечивает ключ инструментирования null
. Указанное приложение не инструментировано.
AppFilter='WebAppOne'
присваивает указанному приложению уникальный ключ инструментирования.
AppFilter='WebAppTwo'
присваивает указанному приложению уникальный ключ инструментирования.
AppFilter
'.*'
использует подстановочный знак для сопоставления веб-приложений, которые еще не совпадают, и назначает ключ инструментирования по умолчанию.
- Для удобочитаемости добавляются пробелы.
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'}})
Параметры
-InstrumentationKey
Обязательный. Используйте этот параметр, чтобы указать один ключ инструментирования для использования всеми приложениями на конечном компьютере.
-InstrumentationKeyMap
Обязательный. Этот параметр используется для предоставления нескольких ключей инструментирования и сопоставления ключей инструментирования, используемых каждым приложением.
Можно создать один скрипт установки для нескольких компьютеров, установив параметр MachineFilter
.
Внимание
Приложения соответствуют правилам в порядке предоставления правил. Поэтому необходимо сначала указать самые конкретные и самые общие правила.
Схема
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'})
- MachineFilter — это обязательное регулярное выражение C# для имени компьютера или виртуальной машины.
- ".*" соответствует всем
- Имя_компьютера соответствует только компьютерам с указанным именем.
- AppFilter — это обязательное регулярное выражение C# для имени компьютера или виртуальной машины.
- ".*" соответствует всем
- ApplicationName соответствует только приложениям IIS с указанным именем.
- InstrumentationKey требуется для включения мониторинга приложений, соответствующих двум предыдущим фильтрам.
- Если необходимо определить правила для исключения мониторинга, оставьте значение null.
-Verbose
Общий параметр. Используйте этот параметр для отображения подробных журналов.
Выходные данные
По умолчанию выходные данные отсутствуют.
Пример подробных данных о настройке файла конфигурации с помощью -InstrumentationKey
VERBOSE: Operation: InstallWithIkey
VERBOSE: InstrumentationKeyMap parsed:
Filters:
0)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx AppFilter: .* MachineFilter: .*
VERBOSE: set config file
VERBOSE: Config File Path:
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\applicationInsights.ikey.config
Пример подробных данных о настройке файла конфигурации с помощью -InstrumentationKeyMap
VERBOSE: Operation: InstallWithIkeyMap
VERBOSE: InstrumentationKeyMap parsed:
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: .*
VERBOSE: set config file
VERBOSE: Config File Path:
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\applicationInsights.ikey.config
Start-ApplicationInsightsMonitoringTrace
Собирает трассировку событий Windows из среды выполнения с некодированным подключением.
Этот командлет является альтернативой запуску PerfView.
События собираются, печатаются в консоли в режиме реального времени и сохраняются в ETL-файл. Для дальнейшего изучения можно открыть выходной ETL-файл с помощью PerfView .
Этот командлет выполняется до тех пор, пока не достигнет времени ожидания (по умолчанию 5 минут) или остановлен вручную (Ctrl + C
).
Примеры
Как собирать события
Обычно мы просим вас собирать события, чтобы выяснить, почему ваше приложение не инструментировано.
Среда выполнения подключения без кода выдает события ETW при запуске IIS и при запуске приложения.
Чтобы собирать эти события, выполните следующие действия.
- В консоли cmd с правами администратора выполните выполнение
iisreset /stop
, чтобы остановить СЛУЖБЫ IIS и все веб-приложения.
- Выполните этот командлет
- В консоли cmd с правами администратора выполните запуск
iisreset /start
СЛУЖБ IIS.
- Попробуйте перейти к своему приложению.
- После завершения загрузки приложения можно вручную его отключить (
Ctrl + C
) или подождать, когда истечет время ожидания.
Какие события собирать
При сборе событий можно использовать три варианта.
- Используйте параметр
-CollectSdkEvents
для получения сведений о событиях, выдаваемых из пакета SDK для Application Insights.
- Используйте параметр
-CollectRedfieldEvents
для сбора событий, создаваемых агентом Application Insights и средой выполнения Redfield. Эти журналы полезны при диагностике служб IIS и запуска приложений.
- Используйте оба параметра для сбора обоих типов событий.
- По умолчанию, если параметр не указан, оба типа событий собираются.
Параметры
-MaxDurationInMinutes
Необязательно. Используйте этот параметр, чтобы задать время, в течение которого этот скрипт должен получать события. Значение по умолчанию — 5 минут.
-LogDirectory
Необязательно. Используйте этот параметр, чтобы задать выходной каталог ETL-файла.
По умолчанию этот файл создается в каталоге модулей PowerShell.
Полный путь отображается во время выполнения скрипта.
-CollectSdkEvents
Необязательно. Используйте этот параметр для сбора событий SDK Application Insights.
-CollectRedfieldEvents
Необязательно. Используйте этот параметр для сбора событий из агента Application Insights и среды выполнения Redfield.
-Verbose
Общий параметр. Используйте этот параметр для вывода подробных журналов.
Выходные данные
Пример журналов запуска приложений
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
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace MulticastHttpModule.constructor, success, 70 ms
2:42:31 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace Current assembly 'Microsoft.ApplicationInsights.RedfieldIISModule, Version=2.8.18.27202, Culture=neutral, PublicKeyToken=f23a46de0be5d6f3' location 'C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace Matched filter '.*'~'STATUSMONITORTE', '.*'~'DemoWithSql'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace Lightup assembly calculated path: 'C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.Redfield.Lightup.dll'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-FrameworkLightup Trace Loaded applicationInsights.config from assembly's resource Microsoft.ApplicationInsights.Redfield.Lightup, Version=2.8.18.27202, Culture=neutral, PublicKeyToken=f23a46de0be5d6f3/Microsoft.ApplicationInsights.Redfield.Lightup.ApplicationInsights-recommended.config
2:42:34 PM EVENT: Microsoft-ApplicationInsights-FrameworkLightup Trace Successfully attached ApplicationInsights SDK
2:42:34 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace RedfieldIISModule.LoadLightupAssemblyAndGetLightupHttpModuleClass, success, 2687 ms
2:42:34 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace RedfieldIISModule.CreateAndInitializeApplicationInsightsHttpModules(lightupHttpModuleClass), success
2:42:34 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace ManagedHttpModuleHelper, multicastHttpModule.Init() success, 3288 ms
2:42:35 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:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Resolved variables to: MicrosoftDiagnosticServices_ManagedHttpModulePath2='', MicrosoftDiagnosticServices_ManagedHttpModuleType2=''
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Environment variable 'MicrosoftDiagnosticServices_ManagedHttpModulePath2' or 'MicrosoftDiagnosticServices_ManagedHttpModuleType2' is null, skipping managed dll loading
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace MulticastHttpModule.constructor, success, 0 ms
2:42:35 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace RedfieldIISModule.CreateAndInitializeApplicationInsightsHttpModules(lightupHttpModuleClass), success
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace ManagedHttpModuleHelper, multicastHttpModule.Init() success, 0 ms
Timeout Reached. Stopping...