다음을 통해 공유


추적 (마스터 데이터 서비스)

적용 대상: SQL Server - Windows 한정 Azure SQL Managed Instance

마스터 데이터 서비스를 설치한 이후에 오류 진단, 지원 요청 및 애플리케이션 사용량 및 성능 모니터링에 유용한 추적 로깅 기능을 찾아보실 수 있습니다. 이 문서에서는 추적 로깅을 켜고 구성하기 위한 단계를 살펴보겠습니다. 특히 이 문서에서 텍스트 로그 파일 추적에 대해 살펴보겠습니다. 이 문서에서는 마스터 데이터 서비스 데이터베이스를 만들 때 발생될 수 있는 오류를 해결하기 위해 도움을 주는 로그 파일을 만들어 주는 절차도 설명해 드립니다.

배경

마스터 데이터 서비스는 오픈 소스 웹 프레임 워크 웹 애플리케이션 (마스터 데이터 관리자) 및 윈도우 커뮤니케이션 파운데이션 서비스로 구성됩니다. 둘 다 인터넷 정보 서비스 및 SQL Server 데이터베이스에서 호스트됩니다. 마스터 데이터 관리자 요청 및 웹 서비스 애플리케이션 프로그램 인터페이스 엔드포인트에 대한 외부 호출은 공통 서비스 계층에서 처리됩니다. 서비스 계층은 각 작업 요청 및 응답, 중요한 이벤트 및 오류를 기록할 수 있습니다.

인터넷 정보 서비스 웹 서버의 파일에 액세스할 수 있는 관리자는 마스터 데이터 서비스 Web.config 파일을 수정함으로써 로깅을 활성화할 수 있습니다.

기본적으로 Web.config 파일은 다음의 웹 애플리케이션 폴더 중 하나에 있습니다:

  • SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication

  • SQL Server 2012 이상의 버전: program_files\Microsoft SQL Server\<nnn>\MDS(Master Data Services)\WebApplication

경로의 숫자 nnn은 설치 중인SQL Server 버전에 해당합니다. 다음 표에는 경로에 대한 버전을 식별합니다:

버전 nnn
SQL Server 2019 150
SQL Server 2017 140
SQL Server 2016 130
SQL Server 2014 120
SQL Server 2012 110

주의

Web.config를 업데이트하면 IIS의 마스터 데이터 서비스 애플리케이션 도메인이 재활용됩니다. 기존 사용자 세션은 캐시된 정보를 잃게 되고 사용자는 세션 오류 혹은 느린 페이지에서 로드가 발생될 수 있습니다. 가능하다면 사용량이 많은 시간에 변경 작업을 실시해 주세요.

마스터 데이터 서비스 웹 애플리케이션에 대한 추적 로깅

SQL Server 2016 이상 버전

Web.config 파일은 다음과 같은 추적 섹션을 포함하고 있습니다. 이 섹션은 SQL Server 2016(13.x) 마스터 데이터 서비스에 도입되었습니다.

<sources>  
     <!-- Adjust the switch value to control the types of messages that should be logged.   
           https://msdn.microsoft.com/library/system.diagnostics.sourcelevels  
           Use a switchValue of Verbose to generate a full log. Please be aware that   
           the trace file can get quite large very quickly. -->  
     <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Warning, ActivityTracing">  
          <listeners>  
          <!-- Set a directory path where the service account you chose while setting up Master Data Services has read and write privileges.  
               Default path is Logs in WebApplication folder, for example C:\Program Files\Microsoft SQL Server\130\Master Data Services\WebApplication  
               New log file will be created every day or every 10 mb.  
               When directory size hits the 200 mb limitation, the oldest file will be deleted. -->  
          <add name="FileTraceListener"  
               type="Microsoft.MasterDataServices.Core.Logging.FileTraceListener, Microsoft.MasterDataServices.Core"   
               initializeData="DirectoryPath = Logs; FileSizeInMb = 10; MaxDirectorySizeInMb = 200"/>  
          <remove name="Default"/>  
          </listeners>  
     </source>  
</sources>

기본 추적 동작은 다음과 같습니다:

  • WarningActivityTracing 메시지에 대한 추적이 활성화되어 있습니다.

    자세한 정보는 SourceLevels 열거형을 참고해 주세요.

  • 로그는 WebApplication 폴더 아래의 Logs 폴더에 저장되는 것입니다. 기본 위치는 C:\Program Files\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs입니다.

  • 파일은 매일 혹은 10MB마다 만들어지게 됩니다.

  • 디렉터리 크기가 200MB에 도달할 때 가장 오래된 로그는 삭제되는 것입니다.

  • 로그 형식은 CSV입니다. 다음 표에서는 로그 형식을 설명해 드립니다:

    요소 설명
    Time 추적 항목이 발생할 때
    CorrelationID 각 요청에 대해 하나의 상관 관계 ID가 할당되게 됩니다. 이 요청으로 트리거된 모든 추적은 동일한 상관 관계 ID를 공유하게 될 것입니다.
    UI에서 오류가 발생할 때 상관 관계 ID가 오류 메시지에 표시됩니다
    연산 요청 작업의 이름입니다. 요청이 웹 UI 요청인 경우에는 작업 이름은 URL입니다. 요청이 애플리케이션 프로그램 인터페이스 요청인 경우에는 작업 이름이 서비스 이름입니다
    수준 이러한 추적 항목의 수준
    메시지 추적에 대한 메시지 본문

SQL Server 2014 및 이전 버전

원래 설치된 Web.config 파일에서의 진단 섹션

다음의 파일 조각은 원래 설치된 Web.config 파일에서의 진단 섹션을 보여 줍니다.

참고 항목

switchValueOff로 설정됩니다. 또한 예시 줄은 주석 처리됩니다. 이러한 줄은 다양한 형식의 추적 수신기를 추가하기 위한 예시입니다.

<system.diagnostics>  
     <sources>  
     <!-- Adjust the switch value to control the types of messages that should be logged. -->  
          <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Off">  
          <listeners>  
          <!-- Enable and configure listeners as desired to obtain trace messages. -->  
          <!-- <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime" /> -->  
          <!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"  
          initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->  
          <!-- <remove name="Default"/> -->  
          </listeners>  
         </source>  
     </sources>  
     <trace autoflush="true"/>  
</system.diagnostics>

로그 파일의 추적을 켜기

로깅을 활성화하기 위해 아래 표 1에 설명된 대로 switchValueAll로 변경하거나 다른 유효 값으로 변경해 주세요. 로그 파일에 출력을 활성화하기 위해 다음의 파일 코드 조각에 표시된 대로 LogFileListener줄의 주석 처리를 제거해 주세요:

<system.diagnostics>  
     <sources>  
          <!-- Adjust the switch value to control the types of messages that should be logged. -->  
          <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">  
          <listeners>  
          <!-- Enable and configure listeners as desired to obtain trace messages. -->  
          <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime"/>  
          <!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->  
          <!-- <remove name="Default"/> -->  
          </listeners>
          </source>  
     </sources>  
     <trace autoflush="true"/>  
</system.diagnostics> 
표 1 - 로깅을 위한 SwitchValue 설정
설정 기록되는 내용
끄기 없음
Error 오류만
Warning 오류 및 경고
정보 오류, 경고, 정보 메시지
자세한 정보 표시 확장 가능한 마크업 언어 형식의 애플리케이션 프로그래밍 인터페이스 요청 및 응답을 비롯한 "정보" 및 기타 디버깅 추적 정보
ActivityTracing 이벤트 시작 및 중지만
모두 "자세한 정보 표시" 및 "ActivityTracing"
파일 이름 및 경로

값은 initializeData 로그 파일에 대한 이름입니다. 다른 이름으로 수정하거나 원하는 경로를 포함할 수 있습니다. 경로가 지정되지 않은 경우에는 기본적으로 파일은 웹 애플리케이션 디렉터리 경로(Web.config)가 있는 위치)로 설정되게 됩니다.

Important

마스터 데이터 서비스 애플리케이션 풀의 서비스 계정에는 로그 파일 위치에 대한 쓰기 권한을 가지고 있어야 합니다.

로깅 수준에 대한 세부 정보

아래 표 2 에서는 맨 위에 있는 가장 중요한/중대한 이벤트와 함께 기록되거나 정렬될 수 있는 추적 이벤트의 범주를 설명해 드립니다. 위의 표 1 에서는 로깅에 대한 유효한 설정이 열거되어 있습니다 switchValue. 이러한 설정은 상황에 맞게 적절한 양의 로깅 세부 정보를 만들어 내도록 조정할 수 있습니다.

표 2 - 마스터 데이터 서비스의 로깅 이벤트 유형
이벤트 유형 설명
위험 심각한 오류 혹은 애플리케이션 충돌
Error 복구 가능한 오류
Warning 심각하지 않은 문제
정보 정보 메시지
자세한 정보 표시 디버깅 추적 메시지
시작 논리 작업 시작
중지 논리 작업 중지

로그 설정 권장 사항

  • 정상적인 작업의 경우에는 Off설정을 사용하여 로깅을 완전히 방지하거나 관리자에게 문제를 경고하면서 로그를 작게 유지하는 설정 Error 혹은 Warning 설정을 사용해 주세요.
  • 지원 및 문제 해결 상황에 대한 All설정을 사용해 주세요.
  • ActivityTracing 성능 측정 혹은 사용량 모니터링에 사용해 주세요.
  • Information정기적으로 로그를 확인하며 정리할 준비가 된 경우에만 사용해 주세요. 이 설정때문에 로그가 오래 걸릴 수 있습니다. 이 설정은 사용량 및 사용 패턴을 추적하는 것에 도움을 줍니다.
  • 기록된 데이터의 양이 성능에 부정적인 영향을 주므로 사용하거나 정상적인 작동 조건에서 Verbose 혹은 All를 사용하지 말아 주세요.

제품 지원에 대한 로그 파일을 만드는 단계

예기치 않은 오류가 발생되어 추가 진단이 필요한 경우에는 서비스 요청 및 응답과 함께 문제로 이어지는 이벤트를 추적하는 로그 파일을 만드는 것이 도움이 됩니다.

간결하고 유용한 로그 파일을 만들어 내기 위해 다음 단계를 실행해 주세요:

주의

Web.config를 업데이트하면 IIS의 마스터 데이터 서비스 애플리케이션 도메인이 재활용됩니다.

  1. 가능하다면 인터넷 정보 서비스 관리자에서 마스터 데이터 서비스 애플리케이션 풀을 중지해 주세요.

    Warning

    애플리케이션을 오프라인 상태로 만들 수 있는 경우에만 이 작업을 실행해 주세요.

  2. 가능하다면 현재 로그 파일을 이동하거나 삭제해 주세요 (이미 있는 경우).

  3. 텍스트 편집기에서 Web.config 파일을 열어 주세요.

    참고 항목

    기본적으로 Web.config 파일은 다음의 웹 애플리케이션 폴더 중 하나에 있습니다:

    • SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication
    • SQL Server 2012: program_files\Microsoft SQL Server\110\MDS(Master Data Services)\WebApplication
  4. system.diagnostics 섹션을 찾습니다.

  5. switchValueAll혹은 ActivityTracing으로 변경하여 이 문서의 로그 파일 추적 켜기 섹션에 나와있는 대로 로그 파일 줄의 주석 처리를 제거해 주세요.

    1. switchValue="All"오류 진단에 사용됩니다.
    2. switchValue="ActivityTracing"성능 진단에 사용됩니다.
    3. 원하는 경우에는 MdsTrace.log 파일 이름 앞에 경로 접두사를 지정할 수 있습니다.
  6. 애플리케이션 풀이 이전에 중지된 경우에는 인터넷 정보 서비스에서 마스터 데이터 서비스 애플리케이션 풀을 시작해 주세요. 혹은 일정 시간 및 웹 애플리케이션 작업 이후에 로그 파일이 나타날 때까지 기다려 주세요. 웹 애플리케이션은 파일에서 구성 설정을 주기적으로 다시 로드해 주세요 (몇 분 이내여야 합니다).

  7. 문제를 재현하고 오류를 발생시킨 동일한 작업 또는 요청을 실시해 주세요.

  8. 애플리케이션 풀을 중지할 수 있는 경우에는:

    1. 애플리케이션 풀을 중지해 주세요.
    2. 로그 파일을 검색해 주세요 (프로세스가 완료될 때까지 기다려야 할 수 있습니다. 앱 풀을 중지한 이후에 지연이 될 수 있습니다).

    혹은 파일을 잠궈놓지 않은 편집기 (예를들면: notepad.exe)를 사용하여 로그 파일을 열고 관련 추적 메시지를 복사해 주세요.

  9. 텍스트 편집기를 사용하여 Web.config 파일을 열고 switchValue를 다시 Off 혹은 이전 값으로 변경해 주세요.니다.

  10. 중지된 경우라면 애플리케이션 풀을 시작해 주세요.

    오류 처리: 모든 서비스 작업은 응답 메시지의 OperationResult개체 내에서 오류의 배열 혹은 컬렉션을 반환해 주세요. 오류가 발생할 때 오류 배열도 확장 가능한 마크업 언어로 직렬화되고 위에서 설명한 대로 특정 switchValue 설정에 대한 웹 애플리케이션 로그 파일에 기록되는 것입니다.

로그 파일에 기록된 애플리케이션 프로그래밍 인터페이스 응답 오류의 예시:

MDS Error: 0 :
<ArrayOfError xmlns="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <Error> 
     <Code>110003</Code> 
          <Context> 
          <FullyQualifiedName>Model1</FullyQualifiedName> 
          <Identifier> 
               <Id>00000000-0000-0000-0000-000000000000</Id> 
               <Name>Model1</Name> <InternalId>0</InternalId> 
          </Identifier> 
          <Type>Model</Type> 
          </Context> 
     <Description>The name already exists. Type a different name.</Description> 
     </Error> 
</ArrayOfError> 
DateTime=2009-12-10T20:48:05.6949548Z error object contents 

위의 예시에서 볼 수 있듯이 각 오류에는 다음의 데이터 속성을 포함합니다:

속성 설명
코드 오류 유형을 식별하는 고유 오류의 번호
설명 지역화된 오류 메시지의 텍스트
Context.FullyQualifiedName 오류와 관련되어 있는 개체의 정규화된 이름입니다. 일부 이름은 컨텍스트 안에서만 고유합니다. 엔터티는 ModelName : EntityName과 같은 모델 이름 접두사를 사용하므로 정규화됩니다
Context.Type 오류와 관련되어 있는 개체의 형식입니다
Context.Identifier 오류와 관련되어 있는 개체의 식별자입니다
Context.Identifier.Id 개체의 고유 전역 고유 식별자, 지정되거나 사용 가능한 경우
Context.Identifier.Name 지정하거나 사용할 수 있는 경우에는 개체의 이름입니다
Context.Identifier.InternalId 사용되지 않음 - 사용 안 함

마스터 데이터 서비스 데이터베이스 만들기 문제 추적

다음 절차를 사용하여 마스터 데이터 서비스 데이터베이스를 만들 때 발생될 수 있는 오류를 해결하는 데 도움이 되주는 로그 파일을 만들 수 있습니다:

  1. notepad.exe사용하여 C:\Program Files\Microsoft SQL Server\MDS(Master Data Services)\Configuration 경로에서 MDSConfigTool.exe.config 파일을 열어 주세요.

  2. 해당 줄의 접미사 문자를 제거하고 파일에서 다음 줄의 주석 처리를 제거해 주세요:

    <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsConfigManagerTrace.log" traceOutputOptions="DateTime"/>

  3. switchValueAll로 설정되어 있는지 확인합니다.

    <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">

  4. 데이터베이스를 다시 만들어 보세요. 그런 다음, C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration에 저장된 MdsConfigManagerTrace.log 파일을 열어서 오류와 관련되어 있는 다른 정보를 검토해 주세요.

External resources

로깅 개선 문제를 해결