온-프레미스 서버용 Azure Monitor Application Insights 에이전트 배포
- 아티클
Application Insights 에이전트(이전 이름은 상태 모니터 V2)는 PowerShell 갤러리에 게시된 PowerShell 모듈입니다. Application Insights 에이전트는 상태 모니터를 대체합니다. 원격 분석은 앱을 모니터링할 수 있는 Azure Portal로 전송됩니다.
지원되는 자동 계측 시나리오의 전체 목록은 지원되는 환경, 언어 및 리소스 공급자를 참조하세요.
참고 항목
이 모듈은 현재 IIS로 호스트되는 ASP.NET 및 ASP.NET Core 웹앱의 코드 없는 계측을 지원합니다. SDK를 사용하여 Java 및 Node.js 애플리케이션을 계측합니다.
PowerShell 갤러리
Application Insights 에이전트는 PowerShell 갤러리에 있습니다.
지침
- 간결한 코드 샘플을 시작하려면 시작 탭을 참조하세요.
- 시작하는 방법에 대한 자세한 내용은 자세한 지침 탭을 참조하세요.
- PowerShell API 참조는 API 참조 탭을 확인합니다.
- 릴리스 정보 업데이트를 보려면 릴리스 정보 탭을 참조하세요.
이 탭에는 대부분의 환경에서 작동할 것으로 예상되는 빠른 시작 명령이 포함되어 있습니다. 지침은 업데이트를 배포하는 PowerShell 갤러리에 따라 달라집니다. 이러한 명령은 PowerShell -Proxy
매개 변수를 지원합니다.
이러한 명령에 대한 설명, 사용자 지정 지침, 문제 해결 관련 정보는 자세한 지침을 참조하세요.
Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
PowerShell 갤러리를 통해 다운로드 및 설치
다운로드 및 설치에 PowerShell 갤러리를 사용합니다.
설치 필수 구성 요소
모니터링을 사용하도록 설정하려면 연결 문자열이 필요합니다. 연결 문자열이 Application Insights 리소스의 개요 창에 표시됩니다. 자세한 내용은 연결 문자열을 참조하세요.
참고 항목
2020년 4월 기준으로 PowerShell 갤러리는 TLS 1.1 및 1.0을 사용하지 않습니다.
필요할 수 있는 추가 필수 조건은 PowerShell 갤러리 TLS 지원을 참조하세요.
관리자 권한으로 PowerShell을 실행합니다.
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
PowerShell을 닫습니다.
Application Insights 에이전트 설치
관리자 권한으로 PowerShell을 실행합니다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Install-Module -Name Az.ApplicationMonitor -AllowPrerelease -AcceptLicense
모니터링 사용
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
수동으로 다운로드 및 설치(오프라인 옵션)
수동으로 다운로드하여 설치할 수도 있습니다.
모듈 다운로드
PowerShell 갤러리에서 모듈의 최신 버전을 수동으로 다운로드합니다.
Application Insights 에이전트 압축 풀기 및 설치
$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
모니터링 사용
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
이 탭에서는 PowerShell 갤러리에 온보딩하고 ApplicationMonitor 모듈을 다운로드하는 방법을 설명합니다. 시작하는 데 필요한 가장 일반적인 매개 변수는 포함되어 있습니다. 인터넷에 액세스할 수 없는 경우를 위해 수동 다운로드 지침을 제공했습니다.
연결 문자열 가져오기
시작하려면 연결 문자열이 필요합니다. 자세한 내용은 연결 문자열을 참조하세요.
참고 항목
2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.
향상된 실행 정책을 통해 관리자 권한으로 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을 위한 전제 조건
$PSVersionTable
명령을 실행하여 PowerShell의 인스턴스를 감사합니다.
이 명령에서 생성되는 출력은 다음과 같습니다.
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 패키지 제공자를 설치합니다.
- 설명: PowerShell 갤러리와 같은 NuGet 기반 리포지토리와 상호 작용하려면 이 공급자가 필요합니다.
- 참조: 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"):
Get-PSRepository
명령을 실행하여 이 변경 내용을 확인하고 모든PSRepositories
감사를 수행할 수 있습니다.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 갤러리에서 다른 모듈을 가져오는 데 사용되는 도구가 포함되어 있습니다. 버전 1.0.0.1은 Windows 10 및 Windows Server와 함께 제공됩니다. 버전 1.6.0 이상이 필요합니다. 설치된 버전을 확인하려면
PowerShell을 다시 시작합니다. 현재 세션에서는 새 버전을 로드할 수 없습니다. 새 PowerShell 세션에서 PowerShellGet의 최신 버전을 로드합니다.
PowerShell 갤러리를 통해 모듈 다운로드 및 설치
이러한 단계를 수행하면 PowerShell 갤러리에서 Az.ApplicationMonitor 모듈이 다운로드됩니다.
- 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 모듈 설치하기를 참조하세요.
Expand-Archive(v1.0.1.0)를 사용하여 zip 파일로 nupkg 압축 풀기
설명: 기본 버전의 Microsoft.PowerShell.Archive(v1.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
Expand-Archive(v1.1.0.0)를 사용하여 nupkg 압축 풀기
설명: 확장명을 변경하지 않고 Expand-Archive의 현재 버전을 사용하여 nupkg 파일의 압축을 풉니다.
명령:
$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을 사용하여 수동으로 모듈을 가져옵니다.
Important
DLL은 상대 경로를 통해 설치됩니다. 원하는 런타임 디렉터리에 패키지의 내용을 저장하고, 쓰기 권한이 아닌 읽기 권한이 허용되어 있는지 확인합니다.
- 확장명을 ".zip"으로 변경하고 원하는 설치 디렉터리로 패키지의 내용을 추출합니다.
- Az.ApplicationMonitor.psd1의 파일 경로를 찾습니다.
- 향상된 실행 정책을 통해 관리자 권한으로 PowerShell을 실행합니다.
Import-Module Az.ApplicationMonitor.psd1
명령을 사용하여 모듈을 로드합니다.
프록시를 통한 트래픽 라우팅
프라이빗 인트라넷에서 컴퓨터를 모니터링하는 경우 프록시를 통해 HTTP 트래픽을 라우팅해야 합니다.
PowerShell 갤러리에서 Az.ApplicationMonitor를 다운로드 및 설치하기 위한 PowerShell 명령은 -Proxy
매개 변수를 지원합니다.
설치 스크립트를 작성하는 경우 위의 지침을 검토합니다.
Application Insights SDK는 앱의 원격 분석 데이터를 Microsoft로 전송해야 합니다. web.config 파일에서 앱에 대한 프록시 설정을 구성하는 것이 좋습니다. 자세한 내용은 프록시 통과를 가져오려면 어떻게 해야 하나요?를 참조하세요.
모니터링 사용
Enable-ApplicationInsightsMonitoring
명령을 사용하여 모니터링을 활성화합니다.
이 cmdlet의 사용 방법에 대한 자세한 내용은 API 참조를 참조하세요.
이 탭에서는 Az.ApplicationMonitor PowerShell 모듈의 멤버인 다음 cmdlet에 대해 설명합니다.
- Enable-InstrumentationEngine
- Enable-ApplicationInsightsMonitoring
- Disable-InstrumentationEngine
- Disable-ApplicationInsightsMonitoring
- Get-ApplicationInsightsMonitoringConfig
- Get-ApplicationInsightsMonitoringStatus
- Set-ApplicationInsightsMonitoringConfig
- Start-ApplicationInsightsMonitoringTrace
참고 항목
- 시작하려면 연결 문자열이 필요합니다. 자세한 내용은 리소스 만들기를 참조하세요.
- 이 cmdlet을 사용하려면 라이선스 및 개인정보처리방침을 검토하고 동의해야 합니다.
참고 항목
2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.
Important
이 cmdlet을 사용하려면 관리자 권한 및 확장된 실행 정책이 있는 PowerShell 세션이 필요합니다. 자세한 내용은 확장된 실행 정책이 있는 관리자로 PowerShell 실행을 참조하세요.
- 이 cmdlet을 사용하려면 라이선스 및 개인정보처리방침을 검토하고 동의해야 합니다.
- 계측 엔진은 추가 오버헤드를 추가하며 기본적으로 해제되어 있습니다.
Enable-InstrumentationEngine
일부 레지스트리 키를 설정하여 계측 엔진을 사용하도록 설정합니다. 변경 내용을 적용하려면 IIS를 다시 시작하세요.
계측 엔진은 .NET SDK에 의해 수집된 데이터를 보완할 수 있습니다. 관리형 프로세스의 실행을 설명하는 이벤트 및 메시지를 수집합니다. 이러한 이벤트와 메시지에는 종속성 결과 코드, HTTP 동사 및 SQL 명령 텍스트가 포함됩니다.
다음의 경우 계측 엔진을 사용하도록 설정합니다.
- Enable cmdlet을 사용하여 모니터링을 이미 사용하도록 설정했지만 계측 엔진을 사용하도록 설정하지 않았습니다.
- .NET SDK를 사용하여 수동으로 앱을 계측하고 원격 분석 데이터를 추가로 수집하려고 합니다.
예제
Enable-InstrumentationEngine
매개 변수
-AcceptLicense
선택 사항. 이 스위치를 사용하여 헤드리스 설치에서 라이선스 및 개인정보처리방침에 동의합니다.
-Verbose
일반 매개 변수. 이 스위치를 사용하여 자세한 로그를 출력합니다.
출력
계측 엔진을 사용하도록 설정하는 예제 출력
Configuring IIS Environment for instrumentation engine...
Configuring registry for instrumentation engine...
Enable-ApplicationInsightsMonitoring
대상 컴퓨터에서 IIS 앱에 대한 코드리스 연결 모니터링을 사용하도록 설정합니다.
이 cmdlet은 IIS applicationHost.config를 수정하고 일부 레지스트리 키를 설정합니다. 각 앱에서 사용하는 계측 키를 정의하는 applicationinsights.ikey.config 파일을 만듭니다. IIS는 시작 시 RedfieldModule를 로드합니다. 그러면 애플리케이션이 시작될 때 애플리케이션에 Application Insights SDK가 삽입됩니다. IIS를 다시 시작하여 변경 내용을 적용합니다.
모니터링을 사용하도록 설정한 후에는 라이브 메트릭을 사용하여 앱이 원격 분석을 전송하고 있는지 신속하게 확인하는 것이 좋습니다.
예제
단일 연결 문자열이 있는 예제
이 예제에서는 현재 컴퓨터의 모든 앱에 단일 연결 문자열이 할당됩니다.
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 필터(IIS의 .NET의 경우 HostingEnvironment.SiteName)를 설정합니다. VirtualPathFilter
는 가상 경로 regex 필터(IIS의 .NET의 경우, HostingEnvironment.ApplicationVirtualPath)를 설정합니다. 단일 앱을 계측하려면 VirtualPathFilter를 다음과 같이 사용해야 합니다. Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap @(@{VirtualPathFilter="^/MyAppName$"; InstrumentationSettings=@{InstrumentationKey='<your ikey>'}})
매개 변수
-ConnectionString
필수입니다. 이 매개 변수를 사용하여 대상 컴퓨터의 모든 앱에서 사용할 단일 연결 문자열을 제공합니다.
-InstrumentationKey
필수입니다. 이 매개 변수를 사용하여 대상 컴퓨터의 모든 앱에서 사용할 단일 계측 키를 제공합니다.
-InstrumentationKeyMap
필수입니다. 이 매개 변수를 사용하여 여러 계측 키를 제공하고 각 앱에서 사용하는 계측 키의 매핑을 제공합니다.
MachineFilter
를 설정하여 여러 컴퓨터에 대한 단일 설치 스크립트를 만들 수 있습니다.
Important
앱은 규칙이 제공된 순서대로 규칙을 매칭합니다. 따라서 가장 구체적인 규칙을 먼저 지정하고 가장 일반적인 규칙을 마지막에 지정해야 합니다.
스키마
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}})
- Machinefilter는 컴퓨터 또는 VM 이름의 필수 C# regex입니다.
- '.*'는 모두 항목과 일치됩니다.
- 'ComputerName'은 정확한 이름이 지정된 컴퓨터와만 일치됩니다.
- Appfilter는 IIS 사이트 이름의 필수 C# regex입니다. get-iissite 명령을 실행하여 서버에서 사이트 목록을 가져올 수 있습니다.
- '.*'는 모두 항목과 일치됩니다.
- 'SiteName'은 정확한 이름이 지정된 IIS 사이트와만 일치됩니다.
- InstrumentationKey는 위의 두 필터와 일치하는 앱의 모니터링을 사용하도록 설정하는 데 필요합니다.
- 모니터링을 제외하는 규칙을 정의하려면 이 값을 null로 둡니다.
-EnableInstrumentationEngine
선택 사항. 이 스위치를 사용하여 계측 엔진에서 관리형 프로세스를 실행하는 동안 발생하는 상황에 대한 이벤트와 메시지를 수집합니다. 이러한 이벤트와 메시지에는 종속성 결과 코드, HTTP 동사 및 SQL 명령 텍스트가 포함됩니다.
계측 엔진은 오버헤드를 추가하며 기본적으로 해제되어 있습니다.
-AcceptLicense
선택 사항. 이 스위치를 사용하여 헤드리스 설치에서 라이선스 및 개인정보처리방침에 동의합니다.
-IgnoreSharedConfig
웹 서버 클러스터가 있는 경우 공유 구성을 사용할 수 있습니다. HttpModule은 이 공유 구성에 삽입할 수 없습니다. 이 스크립트는 추가 설치 단계가 필요하다는 메시지가 표시되면서 실패합니다. 이 검사를 무시하고 필수 구성 요소 설치를 계속하려면 이 스위치를 사용하세요. 자세한 내용은 known conflict-with-iis-shared-configuration을 참조하세요.
-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
대상 컴퓨터에서 모니터링을 사용하지 않도록 설정합니다. 이 cmdlet은 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
이 cmdlet은 Application Insights 에이전트에 대한 문제 해결 정보를 제공합니다. 이 cmdlet을 사용하여 PowerShell 모듈의 모니터링 상태와 버전을 조사하고 실행 중인 프로세스를 검사할 수 있습니다. 이 cmdlet은 모니터링에 필요한 키 파일과 버전 정보를 보고합니다.
예제
예제: 애플리케이션 상태
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
이 예제에서는 다음이 적용됩니다.
머신 식별자는 서버를 고유하게 식별하는 데 사용되는 익명 ID입니다. 지원 요청을 만드는 경우, 서버에 대한 로그를 찾기 위해 이 ID가 필요합니다.
IIS에서 기본 웹 사이트가 중지되었습니다.
DemoWebApp111이 IIS에서 시작되었지만, 요청을 받지 못했습니다. 이 보고서는 실행 중인 프로세스가 없음을 보여 줍니다(ProcessId: 찾을 수 없음).
DemoWebApp222가 실행 중이며 모니터링되고 있습니다(계측됨: true). 사용자 구성에 따라 이 사이트에 대해 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx123 계측 키가 일치했습니다.
Application Insights SDK를 사용하여 DemoWebApp333을 수동으로 계측했습니다. Application Insights 에이전트는 해당 SDK를 검색했고 이 사이트를 모니터링하지 않습니다.
AppAlreadyInstrumented : true
가 있는 것은 Application Insights 에이전트가 웹 애플리케이션에 로드된 충돌하는 dll을 식별했으며, 웹앱이 수동으로 계측되고, 에이전트가 백업을 수행했고, 이 프로세스를 계측하지 않는다는 것을 의미합니다.Instrumented : true
는 Application Insights 에이전트가 지정된 w3wp.exe 프로세스에서 실행되는 웹앱을 성공적으로 계측했음을 나타냅니다.
예제: PowerShell 모듈 정보
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
매개 변수
(매개 변수 없음)
기본적으로 이 cmdlet은 웹 애플리케이션의 모니터링 상태를 보고합니다. 애플리케이션이 성공적으로 계측되었는지 검토하려면 이 옵션을 사용합니다. 사이트와 일치하는 계측 키를 검토할 수도 있습니다.
-PowerShellModule
선택 사항. 이 스위치를 사용하여 모니터링에 필요한 DLL의 버전 번호와 경로를 보고합니다. Application Insights SDK를 포함하여 DLL의 버전을 식별해야 하는 경우 이 옵션을 사용합니다.
-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를 다시 시작하여 변경 내용을 적용합니다.
Important
이 cmdlet을 사용하려면 관리자 권한이 있는 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
를 설정하여 여러 컴퓨터에 대한 단일 설치 스크립트를 만들 수 있습니다.
Important
앱은 규칙이 제공된 순서대로 규칙을 매칭합니다. 따라서 가장 구체적인 규칙을 먼저 지정하고 가장 일반적인 규칙을 마지막에 지정해야 합니다.
스키마
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'})
- Machinefilter는 컴퓨터 또는 VM 이름의 필수 C# regex입니다.
- '.*'는 모두 항목과 일치됩니다.
- 'ComputerName'은 지정한 이름을 사용하는 컴퓨터와만 일치됩니다.
- Appfilter는 컴퓨터 또는 VM 이름의 필수 C# regex입니다.
- '.*'는 모두 항목과 일치됩니다.
- '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
코드리스 연결 런타임에서 ETW 이벤트를 수집합니다. 이 cmdlet은 Perfview를 실행하는 대신 사용할 수 있습니다.
이벤트가 수집되고, 실시간으로 콘솔에 출력되고, ETL 파일에 저장됩니다. 추가 조사를 위해 PerfView를 사용하여 출력 ETL 파일을 열 수 있습니다.
이 cmdlet은 시간 제한(기본값 5분)에 도달할 때까지 실행되거나 수동으로 중지됩니다(Ctrl + C
).
예제
이벤트 수집 방법
일반적으로 애플리케이션을 계측하지 않는 이유를 조사하기 위해 이벤트를 수집하도록 요청합니다.
코드리스 연결 런타임은 IIS가 시작될 때와 애플리케이션이 시작될 때 ETW 이벤트를 내보냅니다.
이러한 이벤트를 수집하려면 다음을 수행합니다.
- 관리자 권한이 있는 cmd 콘솔에서
iisreset /stop
를 실행하여 IIS 및 모든 웹앱을 중지합니다. - 이 cmdlet 실행
- 관리자 권한이 있는 cmd 콘솔에서
iisreset /start
를 실행하여 IIS를 시작합니다. - 앱으로 이동해 보세요.
- 앱 로드가 완료되면 수동으로 중지(
Ctrl + C
)하거나 시간 제한에 도달할 때까지 기다릴 수 있습니다.
수집할 이벤트
이벤트를 수집할 때 세 가지 옵션이 있습니다.
-CollectSdkEvents
스위치를 사용하여 Application Insights SDK에서 내보낸 이벤트를 수집합니다.-CollectRedfieldEvents
스위치를 사용하여 Application Insights 에이전트 및 Redfield 런타임에서 내보낸 이벤트를 수집합니다. 이러한 로그는 IIS 및 애플리케이션 시작을 진단할 때 유용합니다.- 두 스위치를 모두 사용하여 두 이벤트 유형을 모두 수집합니다.
- 기본적으로 스위치를 지정하지 않으면 두 이벤트 유형이 모두 수집됩니다.
매개 변수
-MaxDurationInMinutes
선택 사항. 이 매개 변수를 사용하여 이 스크립트에서 이벤트를 수집하는 기간을 설정합니다. 기본값은 5분입니다.
-LogDirectory
선택 사항. 이 스위치를 사용하여 ETL 파일의 출력 디렉터리를 설정합니다. 기본적으로 이 파일은 PowerShell 모듈 디렉터리에 생성됩니다. 전체 경로는 스크립트를 실행하는 동안 표시됩니다.
-CollectSdkEvents
선택 사항. 이 스위치를 사용하여 Application Insights SDK 이벤트를 수집합니다.
-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...
릴리스 정보 업데이트는 여기에 나열되어 있습니다.
2.0.0
- Application Insights .NET/.NET Core SDK를
2.21.0-redfield
로 업데이트했습니다.
2.0.0-beta3
- Application Insights .NET/.NET Core SDK를
2.20.1-redfield
로 업데이트했습니다. - SQL 쿼리 컬렉션을 사용하도록 설정했습니다.
2.0.0-beta2
Application Insights .NET/.NET Core SDK를 2.18.1-redfield
로 업데이트했습니다.
2.0.0-beta1
ASP.NET Core 자동 계측 기능이 추가되었습니다.
자주 묻는 질문
이 섹션에서는 일반적인 질문에 대한 답변을 제공합니다.
Application Insights 에이전트가 프록시 설치를 지원하나요?
예. Application Insights 에이전트를 다운로드하는 여러 방법은 다음과 같습니다.
- 컴퓨터에서 인터넷에 액세스할 수 있는 경우
-Proxy
매개 변수를 사용하여 PowerShell 갤러리에 온보딩할 수 있습니다. - 모듈을 수동으로 다운로드하여 컴퓨터에 설치하거나 직접 사용할 수도 있습니다.
이러한 각 옵션은 자세한 지침에 설명되어 있습니다.
Application Insights Agent에서 ASP.NET Core 애플리케이션을 지원하나요?
예. Application Insights Agent 2.0.0 이상에서 IIS에 호스트되는 ASP.NET Core 애플리케이션이 지원됩니다.
사용이 성공했는지 어떻게 확인하나요?
- Get-ApplicationInsightsMonitoringStatus cmdlet을 사용하여 사용이 성공했는지 확인할 수 있습니다.
앱에서 원격 분석을 전송하고 있는지 빠르게 확인하려면 라이브 메트릭을 사용합니다.
Log Analytics를 사용하여 현재 원격 분석을 보내고 있는 모든 클라우드 역할을 나열할 수도 있습니다.
union * | summarize count() by cloud_RoleName, cloud_RoleInstance
프록시 통과를 가져오려면 어떻게 해야 하나요?
프록시 통과를 달성하려면 컴퓨터 수준 프록시 또는 애플리케이션 수준 프록시를 구성합니다. DefaultProxy를 참조하세요.
Web.config 예제:
<system.net>
<defaultProxy>
<proxy proxyaddress="http://xx.xx.xx.xx:yyyy" bypassonlocal="true"/>
</defaultProxy>
</system.net>
문제 해결
전용 문제 해결 문서를 참조하세요.
애플리케이션 호스트와 수집 서비스 간의 연결 테스트
Application Insights SDK 및 에이전트는 수집 엔드포인트에 대한 REST 호출로 수집하기 위해 원격 분석을 보냅니다. PowerShell 또는 curl 명령의 원시 REST 클라이언트를 사용하여 웹 서버 또는 애플리케이션 호스트 컴퓨터에서 수집 서비스 엔드포인트로의 연결을 테스트할 수 있습니다. Azure Monitor Application Insights에서 누락된 애플리케이션 원격 분석 문제 해결을 참조하세요.
다음 단계
원격 분석 보기:
- 메트릭을 탐색하여 성능 및 사용량을 모니터링합니다.
- 이벤트 및 로그를 검색하여 문제를 진단합니다.
- 고급 쿼리를 위해 Log Analytics를 사용합니다.
- 대시보드를 만듭니다.
원격 분석 더 추가:
- 가용성 개요
- 웹 클라이언트 원격 분석을 추가하여 웹 페이지 코드에서 예외를 확인하고 추적 호출을 활성화합니다.
- Application Insights SDK를 코드에 추가하여 추적 및 로그 호출을 삽입할 수 있도록 합니다.
Application Insights Agent에서 지원하는 더 많은 작업:
- 문제 해결 Application Insights 에이전트.
피드백
이 페이지가 도움이 되었나요?