Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

ASP.NET 지원 음성 열

로그 파서 2.2 및 ASP.NET

이 열을 필요에 맞게 사용자 지정하려면 관심 있는 topics 대한 아이디어와 향후 기술 자료 문서 및 지원 음성 열에서 해결하려는 문제에 대한 아이디어를 제출하도록 초대합니다. 요청 양식을 사용하여 아이디어와 피드백을 제출할 수 있습니다. 이 열의 맨 아래에 양식에 대한 링크도 있습니다.

ASP.NET 지원 음성 열에 오신 것을 환영합니다. 제 이름은 라훌 소니이며, 저는 약 2년 동안 Microsoft와 함께 해왔습니다. 이번 달 칼럼에서는 Log Parser 2.2에 대한 몇 가지 사실에 대해 설명합니다. 특정 시나리오를 살펴보기 전에 잠시 시간을 내어 로그 파서 도구를 설명해 보겠습니다.

Log Parser는 로그 파일, XML 파일 및 CSV 파일과 같은 텍스트 기반 데이터뿐만 아니라 이벤트 로그, 레지스트리, 파일 시스템 및 Active Directory 디렉터리 서비스와 같은 Microsoft Windows 운영 체제의 주요 데이터 원본에 대한 범용 쿼리 액세스를 제공하는 매우 강력하고 다양한 도구입니다. 도구를 다운로드하려면여기를 클릭하세요
. 이 버전에서는 로그 파서 도구에서 다음 파일을 매우 쉽게 구문 분석할 수 있습니다.

IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS 및 COM. 명령줄 인터페이스가 매우 직관적이지 않다는 데 동의하며 도구를 설치하고 실행하는 즉시 찾을 수 있습니다. 그러나 도구가 직관적 인 느낌에 부족한 것은 도구에 제공 된 설명서에 의해 패치되고 있습니다. 명령줄 인터페이스가 너무 빨리 연기하지 않도록 하십시오. 이 도구는 geek의 도구 키트에서 필수이며 특히 성능 관점에서 문제를 해결하려는 경우 많은 도움이 됩니다.

설명서가 매우 좋고 설치 폴더에 몇 가지 샘플이 포함된 "Samples\Queries" 폴더도 포함되어 있으므로 로그 파서 도구를 사용하는 "방법"에 대해서는 설명하지 않습니다.

따라서 로그 파서 도구의 승격을 완료한 후에는 얘기하던 시나리오로 돌아가 보겠습니다.

시나리오 1: 특정 텍스트에 대한 큰 텍스트 파일 구문 분석

문제의 작은 배경

고객이 작업을 할 때 "액세스 거부" 문제가 발생합니다. 고객은Filemon이라는
다른 뛰어난 도구를 사용하고 문제를 재현하는 것이 좋습니다. 리소스 ACL에 문제가 있는 경우 Filemon 도구에서 오류를 catch할 수 있습니다. 이제 고객에게 저장된 Filemon 로그 파일을 보내달라고 요청합니다. 여기에 불행한 부분이 온다. 파일(예: Filemon.log)을 가져올 수 있지만 크기가 엄청나다는 것을 알 수 있습니다(Filemon은 많은 데이터를 기록합니다!). 메모장 중단으로 나타나고 로그 파일에서 "액세스 거부됨" 줄을 찾는 속도가 매우 느려집니다. Microsoft Office Excel에서 파일 열기를 완전히 거부합니다. 이번엔 또 뭐야?

답변: 로그 파서 명령 창을 열고 다음 명령을 사용합니다.

LOGPARSER "C:\Filemon.log에서 텍스트를 선택합니다. 여기서 '%Access Denied%'와 같은 텍스트" -i:TEXTLINE -q:Off 로그 파서 도구는 줄에 'Access Denied'가 포함된 지정된 파일(C:\Filemon.log)의 각 줄(텍스트)을 구문 분석하는 것입니다. -i:TEXTLINE 명령줄 스위치는 입력 형식을 지정하고 -q:Off 명령줄 스위치는 자세한 정보 표시(-q[:ON|OFF]:quiet 모드;). -q 명령줄 스위치를 켜면 아래 출력에 표시된 통계와 필드 이름(텍스트)이 없습니다.

샘플 출력

텍스트7447 오후 1:49:24 explorer.exe:1200 디렉터리 C:\ 액세스 거부 통계처리됨: 640444
요소 출력: 1
실행 시간: 12.75초

쿼리에서 반환되는 레코드 수가 10보다 큰 경우 Enter 키를 여러 번 누르지 않도록 하려면 어떻게 해야 할까요?

답변: 쿼리에서 -rtp:-1 매개 변수를 사용합니다.

출력을 파일로 리디렉션하려는 경우 이 매개 변수가 필요합니다. 또한 STDOUT에 쓸 때 출력 레코드는 이 매개 변수에 대해 지정된 값과 동일한 여러 행으로 구성된 일괄 처리로 표시됩니다. 행 일괄 처리가 표시되면 사용자에게 키를 눌러 다음 행 일괄 처리를 표시하라는 메시지를 표시합니다. 이 매개 변수에 "-1"을 지정하면 일괄 처리가 완전히 비활성화됩니다.

쿼리 파일 사용

더 깨끗한 방법으로 동일한 결과를 달성하는 또 다른 방법은 쿼리 파일을 만드는 것입니다. 이렇게 하면 쿼리 파일을 쉽게 조정하고 로그 파서 도구의 명령줄에서 실행할 수 있습니다. 그 외에도 취향에 따라 GUI를 쉽게 만들 수 있습니다. GUI는 저장된 SQL 쿼리를 로드하고 로그 파서 도구를 사용하여 쿼리를 실행합니다.

SQL 쿼리에서 시나리오 1과 동일한 효과를 얻으려면 다음 명령을 제공할 수 있습니다.

LOGPARSER -i:TEXTLINE 파일:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql에는 다음 정보가

포함되어 있습니다. 참고 C:\에 폴더 LPQ 만들기 이 열에 표시된 샘플을 사용할 폴더입니다.

Select Text as LineFromFile
FROM C:\Filemon.log 
WHERE Text 
LIKE '%Access Denied%'

이 경우 쿼리는 이제 훨씬 더 깨끗해 보이며 더 의미가 있습니다. 이렇게 하면 보다 복잡하고 더 큰 쿼리를 만들 수 있으며 를 사용하므로 모든 쿼리가 명령줄에 적합합니다. 전체 쿼리 대신 SQL 파일입니다. 어쨌든 명령줄에 260자를 초과하여 맞출 수 없습니다!

쿼리 파일 사용의 이점을 유지하려면 다음 시나리오에서 이 메서드를 사용합니다. .sql 확장으로 C:\LPQ에 저장된 모든 쿼리가 있습니다(사용자 고유의 쿼리를 사용할 수 있습니다).

시나리오 2: 하위 폴더를 포함하여 특정 폴더에서 가장 큰 파일 10개 찾기

문제의 작은 배경

폴더가 있고 몇 개의 하위 폴더와 파일이 있습니다. 하위 폴더를 포함하여 해당 폴더에서 상위 10개의 가장 큰 파일을 찾으려고 합니다.

특정 폴더의 경우 Windows Explorer 보기 메뉴에서 보기(보기 메뉴에서 세부 정보 클릭)를 변경하고 크기를 기준으로 보기를 정렬할 수 있습니다. 그러나 여기서 문제는 하위 폴더의 내용도 고려해야 한다는 것입니다.

답변: 로그 파서 도구 명령 창을 열고 다음 명령을 사용합니다.

LOGPARSER -i:FS 파일:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql에는 다음이 포함됩니다.

SELECT TOP 10 
Path, 
Name, 
Size, 
Attributes 
FROM 'C:\Program Files\Microsoft Office\*.*' 
ORDER BY Size DESC

여기서 -i:FS는 파일 시스템을 쿼리하고 있음을 의미합니다. 설명서에서 FS 입력 형식 필드의 전체 목록을 보고 그에 따라 쿼리를 구성할 수 있습니다.

-Recurse:-1은 모든 하위 폴더를 포함하려는 것을 의미합니다. 모든 하위 폴더를 원하지 않거나 재귀를 제한하려면 0, 1, 2 등을 사용합니다. 숫자는 파서가 들어갈 깊이를 의미합니다. 0은 재귀가 없음을 의미하고, 2는 파서가 깊이 2 등까지 재귀한다는 것을 의미합니다.

샘플 출력

Path                                                         Name         Size     Attributes 
------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE       WINWORD.EXE  10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE         EXCEL.EXE    9358096  -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL       OUTLLIB.DLL  6326984  -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE      POWERPNT.EXE 6093584  -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL         MSOWC.DLL    3041880  -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS       CLIPPIT.ACS  2904417  -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE         GRAPH.EXE    2144824  -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032  -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072  -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL        MSOWCW.DLL   1200177  -A-------


StatisticsElements processed: 1000
요소 출력: 10
실행 시간: 0.42초

시나리오 3: 웹 사이트에서 가장 느린 페이지 20개 찾기

문제의 작은 배경

IIS(Microsoft 인터넷 정보 서비스) 6을 사용하고, 몇 가지 ASP.NET 웹 사이트를 사용하고 있으며, 성능에 만족하지 않습니다. 서버를 조정하고 웹 서버에서 제공하는 데 가장 높은 시간이 걸리는 상위 20개 페이지에 대해 알고자 합니다. 가장 높은 시간제 페이지를 결정하고 수정한 후 문제가 해결되는 것처럼 되지 않습니다. 아쉽게도 성능 문제를 resolve 실버 글머리 기호는 없습니다. 적어도 시작하는 방법이 있어야합니다. 맞는?

답변: 로그 파서 명령 창을 열고 다음 명령을 사용합니다.

LOGPARSER -i:IISW3C 파일:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql에는 다음 예제 코드가 포함되어 있습니다.

Select Top 20
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP], 
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From 
C:\ex060813.log
Order by time-taken desc

여기서 -i:IISW3C는 IIS W3C 로그를 쿼리하고 있음을 의미합니다. 설명서에서 IISW3C 입력 형식 필드의 전체 목록을 보고 그에 따라 쿼리를 구성할 수 있습니다.

-o:DataGrid는 다음과 같이 출력이 데이터 그리드에 표시되어야 임을 의미합니다



참고 이 쿼리를 사용하려면 IISW3C 로깅을 사용해야 하며 고급 로깅 속성을 사용하도록 설정해야 합니다. (웹 사이트 속성을 열고 웹 사이트 탭을 클릭하고 로깅 사용을 선택한 다음 활성 로그 형식을 W3C 확장 로그 파일 형식으로 설정합니다. 속성을 클릭하고고급 탭을
클릭한 다음 클릭하여 모든 옵션을 선택합니다.)

시나리오 4: 웹 사이트에서 가장 일반적으로 사용되는 .aspx 페이지 20개 찾기

문제의 작은 배경

IIS 6을 사용하고, 몇 가지 ASP.NET 웹 사이트를 사용하고 있으며, 가장 일반적으로 사용되는 .aspx 파일을 알고 싶어하므로 해당 페이지의 성능을 조정하는 경우 결국에는 전체 웹 사이트/서버 이점이 있습니다. 자주 사용되는 페이지보다는 가장 자주 사용되는 페이지를 조정하는 데 시간을 할애하는 것이 좋습니다. (이 규칙에 예외가 있을 수 있지만. 드물게 사용되는 페이지가 해당 문제에 대한 높은 CPU 사용률을 유발하는 정말 나쁜 페이지라고 가정해 보겠습니다.) 이제 특정 페이지가 제공되는 데 시간이 오래 걸리고(시나리오 3) 페이지가 가장 일반적으로 사용되는 페이지 중 하나인 경우 항상 페이지가 스트레스에서 잘 작동하는지 확인해야 합니다.

답변: 로그 파서 도구 명령 창을 열고 다음 명령을 사용합니다.

LOGPARSER -i:IISW3C 파일:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql에는 다음 예제 코드가 포함되어 있습니다.

Select Top 20
cs-uri-stem as [Request URI],
COUNT(*) AS Hits 
INTO MyChart.gif 
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC

이 경우 -chartType:Bar3D는 로그 파서 도구에 준비할 차트 종류를 알려줍니다. -groupSize 매개 변수는 대상 이미지의 너비와 높이를 픽셀 단위로 지정합니다. 사용 가능한 차트 유형 집합은 로컬 컴퓨터에 설치된 Microsoft Office Web Components 버전에 따라 달라집니다.

출력의 모양

은 다음과 같습니다

이미 보았듯이 로그 파서 도구가 다양한 로그의 데이터를 분석하는 데 정말 도움이 될 수 있는 여러 가지 방법이 있을 수 있습니다. 창의성만이 한계입니다! 데이터가 훨씬 더 나은 그림을 반영할 수 있는 방법은 거의 무제한이며, 작업할 수 있는 방법이 될 수 있습니다. 우리가 만진 것은 빙산의 일각에 불과합니다! Microsoft Visual C#, Microsoft Visual Basic .NET 등과 같은 고급 언어를 사용하여 로그 파서 도구의 기능을 사용하여 유용한 프로그램을 만들 수도 있습니다. 아래의 "리소스" 섹션을 확인하세요.

리소스

로그 파서 도구에 대한 더 많은 시나리오에 대해 알아보고 싶습니다. 로그 파서 도구에 대한 새 섹션을 블로그에 만들었습니다. 공유하려는 시나리오 또는 로그 파서 도구 쿼리에 대한 제안이 있는 경우rahulso@microsoft.com 메일로 보내
주세요. 다음 웹 사이트에서 가장 빠른 편의를 위해 게시합니다.

https://learn.microsoft.com/archive/blogs/rahulso/

언제나처럼 향후 열 또는 기술 자료에서 요청 양식을 사용하여 원하는 topics 대한 아이디어를 자유롭게 제출할 수 있습니다.

이 문서에서 설명하는 타사 제품은 Microsoft와 독립적인 회사에서 제조합니다. Microsoft는 이러한 제품의 성능이나 신뢰성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×