IIS에서 ‘.NET Framework ’ 추적 문제 해결

IIS에서 호스팅되는 .NET Framework 애플리케이션의 추적 기능이 예상대로 작동하지 않는 경우, 구체적인 사례별 해결 방법으로 넘어가기 전에 일반적인 문제 해결 단계를 먼저 시도해 보십시오.

일반 문제점 해결

다음 단계를 완료하십시오.

  1. 필수 조건 확인:

    • .NET Framework 버전 호환성 확인: 애플리케이션이 .NET Framework 4.5.2 이상 버전에서 실행되는지 확인하십시오.
    • Instana 에이전트가 실행 중인지 확인하십시오:

      • Windows 에서 작업 관리자를 열고 ‘ Instana ’ 에이전트 프로세스를 찾으세요.
      • Instana UI에서 에이전트 상태를 확인하세요.
    • Instana PCP가 실행 중인지 확인하십시오:

      • InstanaPCP.exe작업 관리자를 열고 다음을 검색하세요.
      • 실행 중이 아니라면, Instana 에이전트를 다시 시작하십시오.
  2. IIS가 재시작되었는지 확인하십시오:

    IIS에서 호스팅되는 애플리케이션의 가장 흔한 문제는 구성 변경 후 실행되지 iisreset 않는 것입니다. 변경 사항을 적용한 후에는 항상 다음 명령어를 실행하십시오:

    iisreset
  3. 환경 변수 확인: 추적 기능이 작동하지 않는 경우, 필요한 모든 환경 변수가 다음과 같이 설정되어 있는지 확인하십시오:

    • 올바르게 설정하세요.
    • 철자가 정확합니다.
    • 애플리케이션이 배포된 환경에 맞게 적절히 구성되었습니다( Windows 또는 Linux App Service ).
    • 유효하며, 해당 프로세스나 애플리케이션에서 접근할 수 있고, 정확하다.
  4. IL-Rewriter가 올바르게 로드되었는지 확인하려면 다음을 확인하세요:

    1. 애플리케이션 로그에서 IL-Rewriter 초기화 메시지를 확인하십시오. 성공 시 다음과 같은 결과가 표시됩니다:

      Initializing Instana IL-Rewriter for .NET Framework
      Logging path is not set
      Loading configuration-file /app/instana_tracing/instrumentation.json
      참고: 환경에 따라 경로가 다를 수 있습니다.
    2. IL-Rewriter 관련 줄이 표시되지 않는 경우, 다음 단계에 나열된 대로 필요한 COR 모든 환경 변수가 올바르게 설정되어 있고 애플리케이션에서 사용할 수 있는지 확인하십시오.
  5. 오류 해결을 위해 Windows 의 이벤트 뷰어 로그를 확인하십시오:

    1. 이벤트 뷰어를 엽니다.
    2. Windows 로그 > 응용 프로그램 으로 Go.
    3. 응용 프로그램이나 IIS와 관련된 오류나 경고가 있는지 확인하십시오.
    4. Instana 와 관련된 이벤트를 확인하십시오.

    이벤트에는 문제 진단에 도움이 되는 타임스탬프 및 오류 코드를 포함한 상세 정보가 포함되어 있습니다.

사례별 문제 해결

일반적인 문제 해결 방법으로 문제가 해결되지 않는다면, 다음 문제 해결 시나리오를 확인해 보세요:

시나리오 1: 누락된 트레이스 또는 스팬

증상: 애플리케이션에서 메트릭은 표시되지만 추적 정보는 표시되지 않거나, 일부 서비스는 보고되지만 다른 서비스는 보고되지 않거나, 배포 또는 업데이트 후 추적이 중단됩니다.

문제점 해결 단계:

  1. 해당 애플리케이션의 .NET Framework 버전이 지원되는지 확인하십시오:

    • .NET Framework 4.5.2 또는 그 이후
  2. 에이전트 configuration.yaml 파일에서 추적 기능이 활성화되어 있는지 확인하십시오.
  3. 다음 방법 중 하나를 사용하여 추적 로그를 수집하십시오:

  4. Instana 의 추적 로그를 확인하고 결과를 분석하십시오:

    • 로그에 내용이 없거나 추적 정보가 보이지 않는다면, 해당 애플리케이션은 스팬을 생성하지 않는 것입니다.
    • 로그에 추적 정보가 있지만 일부 정보(예: 호스트)가 누락된 경우, 이는.NET 의 추적 계층에 문제가 있는 것입니다.
    • 로그에 관련 기록이 있고 UI에는 없는 정보가 포함되어 있다면, 문제는 Instana 백엔드나 에이전트 중 한 곳에서 발생한 것입니다.

시나리오 2: 애플리케이션이 중단되거나 시작되지 않음

증상: Instana 에이전트가 실행 중일 때 애플리케이션이 시작 시 중단됩니다.

문제점 해결 단계:

  1. 해당 애플리케이션의 .NET Framework 버전이 지원되는지 확인하십시오:

    • .NET Framework 4.5.2 또는 그 이후
  2. 다음 방법 중 하나를 사용하여 이벤트 뷰어 로그를 수집하십시오:

  3. Instana 와 관련된 이벤트 뷰어 항목을 확인합니다:

    • Instana 와 관련된 오류나 경고가 있는지 확인하십시오.
    • 이벤트 항목에는 문제 진단에 도움이 되는 타임스탬프와 오류 코드가 포함되어 있습니다.
    • InstanaPCP.exe오류 메시지에 가 표시되어 있다면, 이는 ‘ InstanaPCP ’ 프로세스가 중단되었음을 의미합니다. 지금까지의 상황을 되짚어 보고 해당 문제를 더 자세히 조사해 보십시오.
  4. 해당 애플리케이션의 크래시 덤프를 수집하십시오.

시나리오 3: 에이전트가 ‘.NET Framework ’ 애플리케이션을 감지하지 못하는 경우

증상: ‘.NET Framework ’ 애플리케이션이 ‘ Instana ’ 에이전트에 의해 모니터링되지 않으며, ‘ Instana ’ UI에 표시되지 않습니다.

문제점 해결 단계:

  1. Instana 에이전트가 관리자 권한으로 실행 중인지 확인하십시오.
  2. Instana 에이전트가 해당 애플리케이션에 대한 권한을 가지고 있는지 확인하십시오.
  3. Instana PCP가 실행 중인지 확인하십시오:

    • InstanaPCPWindows 에서 작업 관리자를 열고.를 검색하세요.
    • Log Collector를 사용하거나 수동으로 로그를 수집 하여 Instana 에이전트 로그를 수집하십시오.
    • Instana 에이전트 로그에 다음 줄이 반드시 포함되어야 합니다:

      com.instana.agent-process-handling - <version> |  | InstanaPCP.exe passed early window; marked RUNNING
  4. 에이전트 로그에서 센서가 정상적으로 활성화되었는지 확인하십시오:

    com.instana.sensor-clr - <version> |  | Activated Sensor
  5. Instana 에이전트가 시작된 후에 .NET Framework 프로세스가 시작되도록 하십시오.

시나리오 4: 추적 기능을 활성화한 후 ` InstanaPCP ` 또는 애플리케이션의 CPU 사용량이 높음

증상: 추적 기능이 활성화된 후 ‘ InstanaPCP ’ 또는 ‘.NET Framework ’ 애플리케이션에서 비정상적으로 높은 CPU 사용량이 나타납니다.

문제점 해결 단계:

  1. 작업 관리자를 확인하여 문제가 해당 애플리케이션과 관련된 것인지, 아니면 InstanaPCP 과 관련된 것인지 확인하십시오.
  2. InstanaPCP: 에 문제가 있는 경우

    • InstanaPCP 에 대한 디버그 로그를 활성화합니다. “로그 수집”을 참조하십시오.
    • 성능 카운터 누락이나 예외 발생에 관한 반복적인 메시지가 있는지 로그를 확인하십시오.
  3. 문제가 애플리케이션 메모리 급증인 경우:

    • 로그 수집기 (Log Collector)를 사용하거나 수동 로그 수집을 통해 이벤트 로그와 시스템 관리자 로그(.NET )를 수집하십시오.
    • 이벤트 로그와 `.NET ` 로그에서 메모리 관련 예외를 확인하십시오.
    • 해당 문제가 ‘ Instana ’ 계측 기능으로 인해 발생한 것인지 확인하십시오.
    • 추가 분석을 위해.NET 의 덤프 파일을 수집하십시오.

로그 수집

Instana 로그를 수집하는 두 가지 방법을 제공합니다:

로그 수집기를 사용하여 로그 수집하기

Log Collector는 Instana 에서 로그를 수집하는 독립형 애플리케이션입니다. 다음 위치에서 로그 수집기를 실행할 수 있습니다:

로그 수집기는 다음 로그를 수집합니다:

  • 애플리케이션 추적 로그
  • Instana PCP 로그
  • CLR 디버그 로그
  • 이벤트 뷰어 로그
  • Instana 에이전트 디버그 로그
  • Instana 에이전트 추적 로그

Instana UI에서 로그 수집기 실행

중요: 역할에 ‘.NET 추적 로그 수집 및 저장’ 권한이 포함된 경우에만 로그 수집기 도구에 액세스할 수 있습니다. Instana UI의 ‘인프라 ’ 섹션에서 이 권한을 활성화할 수 있습니다.
  1. 탐색 메뉴에서 [ Analytics ] > [Infrastructure] 를 선택하거나, [ Instana ] UI의 [ More ] 메뉴에서 에이전트를 검색하세요.
  2. 모니터링할 ‘.NET Framework ’ 프로세스를 클릭하세요.
  3. .NET 프로세스 대시보드에서 ‘.NET 디버그 환경 설정’을 클릭합니다.

    이 단계에서는 호스트에서 Log Collector 애플리케이션을 실행하고, .NET 로그 수집에 필요한 환경 변수를 설정합니다.

  4. .NET Framework 애플리케이션을 다시 시작하거나(IIS에서 호스팅되는 애플리케이션의 경우 명령어를 실행하여 iisreset ) 업데이트된 환경 변수가 제대로 적용되었는지 확인하십시오.
  5. 전화를 몇 통 걸어보거나 애플리케이션에 트래픽을 유도하여 로그를 생성해 보세요.
  6. ‘.NET ’ 로그 다운로드’를 클릭하세요. 수집된 로그 파일은 ZIP 파일로 압축되어 사용자의 시스템으로 다운로드됩니다.

    참고: ‘.NET 로그 다운로드’ 버튼은 디버그 환경이 성공적으로 설정된 후에만 표시됩니다.

로그 수집기는 애플리케이션 추적 로그(이미 구성된 경우 [agent-dir]\etc\instana\com.instana.agent.main.sender.File.cfg ), InstanaPCP 로그(에이전트가 다시 시작된 경우), CLR 디버그 로그, 이벤트 뷰어 로그 및 Instana 에이전트 로그를 포함한 여러 소스의 로그를 수집합니다. 수집된 로그가 하나의 .zip 파일로 압축되어 사용자의 시스템으로 다운로드됩니다.

콘솔에서 로그 수집기 실행하기

UI가 작동하지 않을 경우, 콘솔에서 로그 수집기를 실행할 수 있습니다:

  1. Go Instana 에이전트 폴더 내의 로그 수집기 경로에:

    C:\instana-agent\data\repo\com\instana\dotnet-logcollector-win-x64\<release>\dotnet-logcollector-win-x64-<release>
  2. 로그 수집을 준비하려면 다음 명령을 실행하십시오:

    logcollector.exe -m prepare -i "C:\Program Files\Instana\instana-agent"
  3. 응용 프로그램을 다시 시작한 다음, 해당 응용 프로그램에 요청을 보내보세요.
  4. 잠시 후 collect 명령을 실행하세요:

    logcollector.exe -m collect -i "C:\Program Files\Instana\instana-agent" -o "C:\output\log.zip"
    참고: 명령을 관리자 권한으로 실행해야 합니다.

수동으로 로그 수집

또는 IIS에서 호스팅되는 .NET Framework 애플리케이션의 로그를 수동으로 수집할 수도 있습니다. 다음 단계를 완료하십시오.

  1. 디버그 로그 사용:

    1. 다음 옵션 중 하나를 사용하여 환경 변수를 추가하십시오:

      참고: 경로가 유효하고, 해당 프로세스나 애플리케이션에서 접근할 수 있으며, 정확한지 확인하십시오.
      • 시스템 수준에서 또는 IIS 애플리케이션 내에서 다음 환경 변수를 수동으로 설정하십시오:

        INSTANA_NET_LOG_PATH: "C:\dc_net_log"
        INSTANA_NET_LOG_LEVEL: DEBUG
        INSTANA_NET_FF_LOG_LEVEL: DEBUG
        INSTANA_NET_PCP_LOG_LEVEL: DEBUG
        INSTANA_TRACER_ENTEREXIT_LOGGING: 1
        INSTANA_EXTENDED_DEBUG: 1
        참고:INSTANA_NET_LOG_PATH 지정된 폴더가 이미 존재하는지 확인하십시오.
      • 관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행하여 환경 변수를 추가하십시오:

        setx INSTANA_NET_LOG_PATH "C:\dc_net_log" /M
        setx INSTANA_NET_LOG_LEVEL "DEBUG" /M
        setx INSTANA_NET_FF_LOG_LEVEL "DEBUG" /M
        setx INSTANA_NET_PCP_LOG_LEVEL "DEBUG" /M
        setx INSTANA_TRACER_ENTEREXIT_LOGGING "1" /M
        setx INSTANA_EXTENDED_DEBUG "1" /M
    2. 다음 ‘ Windows ’ 레지스트리 키를 구성하십시오:

      CLRDebugLog: "_C:\dc_clr_debug_log\clr__"
    3. 변경 사항을 적용하려면 다음 명령을 실행하세요 iisreset :

      iisreset
    4. 애플리케이션을 다시 시작하십시오.
  2. Instana 에이전트 로그 수집:

    1. 에이전트를 <instana_install_dir>/bin/stop.sh 중지하거나, 에이전트가 서비스로 실행 중인 경우 해당 서비스를 중지하십시오.
    2. 로그 삭제: 다음 명령을 실행하여 로그 디렉터리의 모든 파일을 삭제하고 새로 시작하세요:

      rm -rf <instana_install_dir>/data/log/*
    3. 로그 수준을 ‘디버그’로 설정: 에이전트 configuration.yaml 파일에서 로그 수준의 심각도를 변경합니다. 자세한 내용은 에이전트 구성 파일 설정을 참조하십시오.
    4. 에이전트를 <instana_install_dir>/bin/start.sh 시작하거나 서비스를 시작합니다.
    5. 문제 재현 방법: 문제가 발생하도록 한 다음 에이전트를 약 15분 동안 실행합니다.
    6. 로그 수집: 다음 명령을 실행하여 제출할 로그 디렉터리를 압축하십시오:

      cd <instana_install_dir>/data/logs
      zip -r instana_agent_debug_logs.zip *
  3. Instana 추적 로그 수집:

    1. com.instana.agent.main.sender.File.cfgGo...로 [agent-dir]\etc\instana 이동하여 파일을 엽니다.
    2. 파일에 다음 줄을 추가하세요:

      prefix=instanaTraces
      type=traces

      이 구성은 접두사가 instanaTraces 붙은 [agent-dir]/data/log 모든 추적 정보를 포함하는 로그 파일을 제공합니다.

    3. Instana 에이전트를 다시 시작하십시오.
    4. 변경 사항을 적용하려면 다음 명령을 실행하세요 iisreset :

      iisreset
    5. 응용 프로그램을 다시 시작한 후 약 15분 동안 실행하십시오.
    6. 다음 경로에서 로그를 수집하십시오:

      • 변수에 지정된 경로 INSTANA_NET_LOG_PATH
      • instana-agent-installation-folder/data/log
  4. CLR 디버그 로그 수집:

    1. Windows 의 레지스트리 편집기를 엽니다.
    2. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Instana\(으)로 이동
    3. 레지스트리 키를 CLRDebugLog 값이 지정된 문자열로 추가합니다. 예를 들어, C:\temp\clr_.
    4. 또는 관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행하십시오:

      reg add "HKLM\SOFTWARE\Instana" /v CLRDebugLog /t REG_SZ /d "C:\temp\clr_" /f
  5. Windows 의 이벤트 뷰어 로그 수집:

    1. 이벤트 뷰어 열기:

      1. Win + R 키를 누르세요.
      2. eventvwr.msc을 입력하십시오.
      3. Enter키를 누릅니다.
    2. Go 내보내려는 로그에:

      • Windows 로그: Windows 로그 > 애플리케이션
      • 애플리케이션 및 서비스 로그
    3. ‘작업’ 패널에서 ‘모든 이벤트 다른 이름으로 저장’을 선택합니다.
    4. .evtx위치를 선택하고.로 저장하세요.

지원 티켓 열기

이 문제 해결 단계를 모두 수행한 후에도 문제가 지속되면, 지원 티켓을 등록하기 전에 ‘ MustGather ’ 데이터를 수집해 주십시오. MustGather 이 데이터는 IBM 지원팀이 귀하의 문제를 더 효율적으로 진단하는 데 도움이 됩니다.

자세한 내용은 다음 링크를 참조하십시오. MustGather: Instana .NET Tracer - Windows.