Windows 에서 .NET 추적 관련 문제 해결

트레이싱이 예상대로 작동하지 않는 경우, 구체적인 사례별 해결책으로 넘어가기 전에 일반적인 문제 해결 단계를 먼저 시도해 보십시오.

일반 문제점 해결

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

  1. 필수 조건 확인:

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

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

      • InstanaPCP.exe작업 관리자를 열고 다음을 검색하세요.
      • 실행 중이 아니라면, Instana 에이전트를 다시 시작하십시오.
  2. 환경 변수 확인: 추적 기능이 작동하지 않는 경우, 다음 환경 변수가 설정되어 있는지 확인하십시오:

    • 올바르게 설정하세요.
    • 철자가 정확합니다.
    • 애플리케이션이 배포되는 환경에 맞게 설정하십시오.
    • 유효하며, 해당 프로세스나 애플리케이션에서 접근할 수 있고, 정확하다.
  3. IL-Rewriter가 올바르게 로드되었는지 확인하려면 다음을 확인하세요:

    1. 애플리케이션 로그에서 IL-Rewriter 초기화 메시지를 확인하십시오. 성공 시 예상 출력:

      *Initializing Instana IL-Rewriter for .NET Core* 
      *Logging path is not set* 
      *Loading configuration-file /app/instana_tracing/instrumentation.json*
      참고: 환경에 따라 경로가 다를 수 있습니다.
    2. IL-Rewriter 관련 줄이 표시되지 않는 경우, 필요한 CORECLR 모든 환경 변수가 올바르게 설정되어 있고 애플리케이션에서 사용할 수 있는지 확인하십시오.

      • CORECLR_ENABLE_PROFILING
      • CORECLR_PROFILER_PATH
      • CORECLR_PROFILER
  4. Windows 이벤트 뷰어를 확인하세요: 오류 해결을 위해 Windows 이벤트 뷰어를 사용하세요:

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

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

  5. 1.NET 에 대해 진단 기능이 활성화되어 있는지 확인하십시오: 환경 변수 COMPlus_EnableDiagnosticsDOTNET_EnableDiagnostics 가 다음과 같이 설정되어 있는지 확인하십시오. 이 기능이 비활성화된 경우, IL-Rewriter는 해당 프로세스에 연결할 수 없으므로 호출을 재작성하거나 추적을 생성할 수 없습니다.

사례별 문제 해결

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

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

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

문제점 해결 단계:

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

    • .NET Core 실행 환경 5.0 이상
  2. 에이전트 configuration.yaml 파일에서 추적 기능이 활성화되어 있는지 확인하십시오.
  3. 로그 수집기를 사용하거나 수동으로 로그를 수집하여 추적 로그를 수집하십시오.
  4. Instana 의 추적 로그를 확인하세요:

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

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

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

문제점 해결 단계:

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

    • .NET Core 실행 환경 5.0 이상
  2. 로그 수집기를 사용하거나 수동으로 로그를 수집하여 이벤트 뷰어 로그를 수집합니다.
  3. Instana 의 이벤트 뷰어 로그를 확인하십시오:

    • 로그에 오류나 경고가 표시되는지 확인하십시오. 이벤트에는 문제 진단에 도움이 되는 타임스탬프 및 오류 코드를 비롯한 상세 정보가 포함되어 있습니다.
    • ' InstanaPCP ' 오류가 발생했다는 InstanaPCP.exe 메시지가 표시되면, 이는 이 실패했음을 의미합니다. 그에 앞서 발생한 상황을 확인하고 문제를 더 자세히 조사해 보십시오.
  4. 문제가 있는 애플리케이션의 크래시 덤프를 수집하십시오.

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

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

문제점 해결 단계:

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

    • InstanaPCPWindows 에서 작업 관리자를 열고.를 검색하세요.
  4. Log Collector를 사용하거나 수동으로 로그를 수집 하여 ‘ Instana ’ 에이전트 로그를 수집하십시오.

    • Instana 에이전트 로그에 다음 줄이 표시되어야 합니다:

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

    com.instana.sensor-clr - 1.1.141 |  | Activated Sensor
  6. Instana 에이전트가 시작된 후 .NET 프로세스가 실행되었는지 확인하십시오.

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

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

문제점 해결 단계:

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

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

    • 로그 수집기(Log Collector)를 사용하거나 수동으로 로그를 수집 하여 이벤트 로그와 시스템 관리자 로그(.NET )를 수집하십시오.
    • 이벤트 로그와 `.NET ` 로그에서 메모리 관련 예외가 있는지 확인하십시오.
    • 해당 문제가 ‘ Instana ’ 계측 기능으로 인해 발생한 것인지 확인하십시오.
    • 추가 분석을 위해 ‘.NET ’ 덤프 파일을 수집하십시오. Go 작업 관리자로 이동하여 해당 프로세스를 마우스 오른쪽 버튼으로 클릭한 다음 덤프 파일을 생성합니다.

로그 수집

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

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

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

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

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

Instana UI에서 로그 수집기 실행

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

    그림 1. 로그 콜렉터
    로그 콜렉터

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

  4. .NET 애플리케이션을 다시 시작하여 업데이트된 환경 변수가 제대로 적용되었는지 확인하십시오.
    참고: InstanaPCP 로그를 수집 대상에 포함하려면 Instana 에이전트도 함께 다시 시작하십시오.
  5. 전화를 몇 통 걸어보거나 애플리케이션에 트래픽을 유도하여 로그를 생성해 보세요.
  6. ‘.NET ’ 로그 다운로드’를 클릭하세요.

    참고: ‘.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\1.302.1\dotnet-logcollector-win-x64-1.302.1
  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"
    참고: 명령을 관리자 권한으로 실행해야 합니다.

수동으로 로그 수집

또는 로그를 수동으로 수집할 수도 있습니다. 다음 단계를 완료하십시오.

  1. 디버그 로그 사용:

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

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

        INSTANA_NET_LOG_PATH: "C:\dc_net_log"
        INSTANA_NET_LOG_LEVEL: DEBUG
        INSTANA_NET_CORE_LOG_LEVEL: DEBUG
        INSTANA_NET_FF_LOG_LEVEL: DEBUG
        INSTANA_NET_PCP_LOG_LEVEL: DEBUG
        INSTANA_TRACER_ENTEREXIT_LOGGING: 1
        INSTANA_EXTENDED_DEBUG: 1
      • 관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행하여 환경 변수를 추가하십시오:

        setx INSTANA_NET_LOG_PATH "C:\dc_net_log" /M
        setx INSTANA_NET_LOG_LEVEL "DEBUG" /M
        setx INSTANA_NET_CORE_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. 애플리케이션을 다시 시작하십시오.
  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. 응용 프로그램을 약 15분 동안 실행하십시오.
    5. 다음 경로에서 로그를 수집하십시오:

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

    1. 레지스트리 편집기를 엽니다.
    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

지원 티켓 열기

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

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