IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  오픈 소스 | 자바  >

이클립스 테스트와 성능 개선 도구 플랫폼, Part 2: 모니터 애플리케이션 (한글)

다양한 로그 파일 수집, 분석하기

developerWorks
Go to the previous page13 페이지 중 6 페이지Go to the next page

문서 옵션

제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


extractor 수정하기

센서의 역할은 입력 값을 수집하는 것이고 extractor의 역할은 입력 받은 값을 개별적인 레코드로 분리하는 것이다(다음 순서에 해당하는 component, 즉 parser는 각각 레코드를 필드로 분해한다).

extractor 속성 설정하기

extractor를 편집하기 위해 Extractor를 클릭하자. 속성은 그림 6과 같다. extractor의 속성은 각 레코드를 위한 식별자와 이 식별자가 파서로 전달되는 레코드에 포함되어 있는지를 관리하는지 여부를 정의한다.


그림 6. extractor 속성
extractor 속성

daemon.log 로그 파일 예제에서 로그의 각 줄은 별도의 이벤트다. 이 특징은 extractor가 구성을 쉽게 하도록 해준다(그림 6은 daemon.log를 위한 적절한 구성을 보여준다).

  • daemon.log에 각 줄이 레코드기 때문에, Contains line breaks 체크 박스는 비어 있다. 하지만 MySQL이나 IBM DB2® 데이터베이스 로그 경우처럼, 입력이 여러 줄에 걸쳐 있다면, 이 체크 박스를 선택해야 한다.
  • 여기서 Replace line breaks 체크 박스는 비어 있다. 그렇지만 로그 파일이 줄 바꿈 기호를 포함하고 있다면, 줄 바꿈 기호를 지우거나 파싱에 유용한 다른 기호로 변경하기 위해 체크 박스를 선택할 수 있다. 줄 바꿈 기호를 삭제하려면 그냥 체크 박스만을 선택하면 되며, 각 줄 바꿈 기호를 토큰으로 변경하려면 체크 박스를 선택하고, Line break symbol 필드에 식별자를 제공해야 한다. 이 식별자를 선택하기 위한 가장 좋은 방법은 로그 파일에 나오지 않는 기호를 선택하는 것이다.
  • Start patternEnd pattern은 각 레코드의 시작과 종료를 나타내는 정규 표현식이다. 여기서는 각 줄이 레코드이며, 줄의 시작 또는 ^(caret)은 레코드의 시작을 표시한다. 줄의 마지막 또는 $(dollar sign)으로 각 레코드의 마지막을 표시한다. ^$로 어떤 내용을 기록하지 않기 때문에 레코드 자체에 포함될 필요가 없다.

계속하기 전에 작업 내용을 저장하자.




위로


MySQL 예제

비교를 위해, suboptimal 질의를 얻기 위해 사용되는 특별한 로그(log)인 MySQL의 slow 질의 로그로 또 다른 예제를 만들어보자. slow 질의 로그에서 각각의 입력은 최소한 세 줄을 차지한다(Listing 13).


Listing 13. MySQL의 slow 질의 로그의 일부
                    
# Time: 030207 15:03:33
# Query_time: 13  Lock_time: 0  Rows_sent: 0  Rows_examined: 0
SELECT l FROM un WHERE ip='209.xx.xxx.xx';
# Time: 030207 15:03:42
# Query_time: 17  Lock_time: 1  Rows_sent: 0  Rows_examined: 0
SELECT l FROM un WHERE ip='214.xx.xxx.xx';
# Time: 030207 15:03:43
# Query_time: 57  Lock_time: 0  Rows_sent: 2117  Rows_examined: 4234
SELECT c,cn,ct FROM cr,l,un WHERE ci=lt AND lf='MP' AND ui=cu;

slow 질의 로그를 위한 extractor는 그림 7처럼 될 것이다.


그림 7. MySQL slow 질의 로그를 위한 extractor 예제
MySQL slow 질의 로그를 위한 extractor 예제

그림 8은 extractor에 의해 성공적으로 처리된 세 개 레코드 중 두 번째를 보여준다.


그림 8. slow 질의 로그에서 추출된 레코드
slow 질의 로그에서 추출된 레코드



위로


더 테스트해 보기

daemon.log 어댑터를 다시 받아오면, 획득한 데이터를 확인하고, 레코드로 분리하기 위한 센서와 extractor 컴포넌트를 이제 테스트할 수 있다.

어댑터 재실행

Generic Log Adapter perspective의 하단에 있는 두 개의 패널을 보자. 그림 9와 비슷한 것을 볼 수 있을 것이다. 좌측에는 Extractor Result 패널이고, 오른쪽에 층이 나눠진 것은 Formatter Result 패널, Sensor Result 패널과 Problems 패널이다. Extractor Result 패널에는 어댑터를 제어할 수 있는 버튼이 여러 개가 있다. 그림 10은 버튼의 이름을 보여준다(또는 마우스를 천천히 각 버튼 위에 올려 놓으면 팁을 볼 수 있다).


그림 9. 컨텍스트 컴포넌트 화면 패널 영역
컨텍스트 컴포넌트 화면 패널 영역


그림 10. 어댑터 제어 버튼
어댑터 제어 버튼

로그 파일 템플릿의 시작부터의 처리 과정을 다시 시작하기 위해 Rerun adapter를 클릭하자. 그리고 나서 첫 번째 이벤트를 처리하기 위해 Next event를 클릭하자.

  • Sensor Result 패널에는 로그 파일의 첫 10~20번 행을 보여줄 것이다.
  • Extractor Result 패널은 로그 파일의 첫 번째 줄인 Mar 2 06:27:35 db popa3d[7964]: Session from 71.65.224.25를 보여준다.
  • Problems 패널은 비어 있을 것이다. 하지만 어댑터를 실행할 때마다 이 패널을 지속적으로 주의 깊게 관찰해야 한다. 필수적인 CBE 속성값을 빼 먹었다거나, 부정확한 정규 표현식을 지정했거나, 지원되지 않는 값을 사용한 경우, 이 패널에 그 내용이 지목될 것이다.
  • Formatter Result 패널은 파서가 아직 정의되지 않았기 때문에 언급하기가 부적절하다. 하지만, 여기서는 현재 레코드를 위한 최초 XML CBE를 보여준다.


    Listing 14. 현재 레코드를 위한 최초 XML CBE
                                
    <CommonBaseEvent 
        creationTime="replace with our message text" 
        globalInstanceId="A1DAABE6C7876D20E8E9E8C475042F1B" 
        version="1.0.1">
    </CommonBaseEvent>
    

위에서 보는 것처럼 파서, 추가적인 요소와 속성을 정의했다면, 자동으로 이 XML에 추가된다.

extractor가 다음 레코드를 처리하기 위해서는 Next event를 다시 클릭하면 된다. 마지막 레코드로 가장 빠르게 넘어가기 위해서는(센서에서 지금까지 수집한 입력 중에서) Show last event를 클릭하면 된다.




위로



Go to the previous page13 페이지 중 6 페이지Go to the next page
    IBM 소개 개인정보 보호정책 문의