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

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

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

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

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

문서 옵션

제안 및 의견
피드백

튜토리얼 평가

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


어댑터 생성

GLA는 로그 파일을 어떻게 파싱하고, 변환할지, 그리고 변환된 데이터를 어떻게 내놓을지를 제어하기 위해 XML 구성 파일을 사용한다. 이 구성 파일은 하나 이상의 컨텍스트(context)로 구성되어 있으며, 각각의 컨텍스트는 하나의 로그 파일을 어떻게 변환하는지를 정의한다. 구성 파일에 있는 컨텍스트들이 동시에 실행되는 경우도 있다.

어댑터 구성 파일

daemon.log라는 리눅스 로그 파일을 처리하는 어댑터 구성 파일을 작성해보자. 테스트 시스템은 데비안 리눅스로 운영하며, daemon.log는 POP3(이메일), THTTPD("trivial" HTTP 서버 - 정적 파일만 전송할 수 있는 작고, 빠른 웹 서버), MyDNS(설정하기 쉬운 소형 DNS 서버) 데몬에서 획득한 메시지다. daemon.log는 MySQL 데몬이 시작하고, 종료되는 것도 기록한다.

Listing 12는 POP3와 THTTPD 서버에 의해 생성된 로그 파일의 일부를 보여준다.


Listing 12. 리눅스 daemon.log 파일의 일부 내용
                    
Mar  2 07:24:54 db popa3d[8861]: Session from 66.27.187.89
Mar  2 07:24:55 db popa3d[8861]: \
Authentication passed for joan
Mar  2 07:24:55 db popa3d[8861]: \
1422 messages (11773432 bytes) loaded
Mar  2 07:24:57 db popa3d[8861]: \
0 (0) deleted, 1422 (11773432) left
Mar  2 07:26:28 db thttpd[7784]: \
up 3600 seconds, stats for 3600 seconds:
Mar  2 07:26:28 db thttpd[7784]:   \
thttpd - 0 connections (0/sec), 0 max simultaneous
Mar  2 07:26:28 db thttpd[7784]:   \
map cache - 0 allocated, 0 active (0 bytes)... 
Mar  2 07:26:28 db thttpd[7784]:   \
fdwatch - 1589 selects (0.441389/sec)
Mar  2 07:26:28 db thttpd[7784]:   \
timers - 3 allocated, 3 active, 0 free
Mar  2 07:27:35 db popa3d[8911]: \
Session from 71.65.224.25
Mar  2 07:27:35 db popa3d[8911]: \
Authentication passed for martin
Mar  2 07:27:35 db popa3d[8911]: \
1350 messages (10880072 bytes) loaded
Mar  2 07:27:36 db popa3d[8911]: \
4 (11356) deleted, 1346 (10868716) left
Mar  2 07:29:54 db popa3d[8963]: \
Session from 66.27.187.89

어댑터 구성 파일에 있는 각 컨텍스트는 context instance, sensor, extractor, parser, formatter, outputter 여섯 개의 컴포넌트를 정의한다. 컨텍스트 인스턴스는 로그가 계속 추가될 것인지, 얼마나 자주 갱신될 것인지에 대한 내용을 포함해 일반적인 변환 오퍼레이션을 위한 매개변수를 정한다. 남은 다섯 개의 컴포넌트는 순서, 입력 읽기, 작업 수행, 결과 전달 등 일련의 작업을 수행한다(콘솔이나 파일에 결과값을 단순히 출력하는 outputter 제외).

  • 센서는 파일의 끝에 도달하거나 일시 중지할 때까지 로그 파일을 읽어 들인다. 그리고 나서 센서는 로그 파일에서 증가된 부분을 찾아 추가 데이터를 읽어 들인다. 센서는 이 데이터를 다음 단계인 extractor에 전달한다.
  • extractor는 데이터를 읽고, 개별적인 레코드로 분리한다. 하나의 정규 표현식은 레코드의 시작을 정의하고, 또 다른 정규 표현식은 레코드의 마지막을 정의한다. 정의할 때 개별적인 레코드는 추가적인 작업을 위해 파서에 전달된다.
  • 파서는 extractor에서 받은 레코드를 한 번에 하나씩 읽는 동시에, 이 레코드를 필드(field)와 값(value)으로 분해한다. 더 나아가 파서는 레코드 내용을 기반으로 결정을 하고 필드와 값을 내놓기 위한 하나 이상의 규칙 집합을 적용한다. 예를 들어 로그 파일이 이벤트 시작, 중간, 종료를 가리킨다면, 파서는 각 레코드를 이벤트에 대한 유일한 필드와 값의 집합으로 분해한다. 파서의 목적은 받은 log 파일에 있는 각각의 필드와 값을 CBE XML 레코드에 있는 요소, 속성, 값으로 매핑하는 것이다. 포매터는 파서의 출력을 읽어들인다.
  • 포매터의 일은 간단하다. 파서에서 만든 요소, 속성, 값을 읽고 컨텍스트의 마지막 단계인 outputter에서 쓰기 적절한 객체를 만든다.
  • outputter는 포매터에서 받은 객체를 사용해 객체를 반환한다. outputter는 파일이나 콘솔에 XML을 출력할 수 있다. 또한 데몬jc 데이터를 전달하거나, 새로운 로그 파일을 만들 수도 있다.

다음 다섯 개 절에서는 컨텍스트의 여섯 가지 컴포넌트를 정의하는 법을 살펴볼 것이다.




위로


어댑터 구성 파일 만들기

시작하기 위해, 어댑터 구성 파일을 포함하는 간단한 이클립스 프로젝트를 만들자.

  1. File > New를 클릭하고, Simple을 확장하자. Project를 선택하고, Next를 클릭하자.
  2. 프로젝트 이름은 MyAdapter라 하고, Finish를 클릭하자.
  3. File > New > Other를 클릭하고, Generic Log Adapter를 확장하자. Generic Log Adapter File을 선택하고, Next를 클릭하자.
  4. My Adapter를 선택하고, 어댑터 파일 이름은 my.adapter로 한다. Next를 클릭하자.
  5. 이 어댑터로 처리하기 원하는 로그 파일의 템플릿을 선택하자(그림 2).

    처리하기 위한 실제 로그 파일 일부나 정확하게 로그 파일의 설명을 사용할 수 있다. Browse를 클릭하고, 파일 시스템에서 찾아 들어가, 템플릿을 열자. 그 다음 선택 사항을 체크하고, Finish를 클릭하자. Perspective를 변경할 건지를 묻는 창이 뜨면 Yes를 클릭하자.

그림 2. 변환을 위한 로그 파일을 나타내는 템플릿 선택하기
변환을 위한 로그 파일을 나타내는 템플릿 선택하기

그림 3은 Generic Log Adapter perspective를 보여준다. 보는 것처럼, UI는 방금 선택한 로그 파일템플릿을 위한 센서의 속성인 컨텍스트 인스턴스를 보여준다. 또한 컨텍스트 인스턴스는 더 상세히 정의해야만 하는 extractor, parser, formatter, outputter를 포함한다.


그림 3. Generic Log Adapter perspective
The Generic Log Adapter perspective



위로


컨텍스트 구성

각 컨텍스트 인스턴스는 어떻게 로그 파일을 처리하는지 기술하고 있다. 컨텍스트 인스턴스에 몇 가지 옵션을 설정할 수 있다. 이 옵션을 확인하려면, Configuration 밑에 있는 Context Instance를 클릭하자. 그림 4와 비슷한 창을 볼 수 있다.


그림 4. 컨텍스트 인스턴스 옵션
컨텍스트 인스턴스 옵션

특정 컨텍스트임을 나타내기 위해 Description을 수정할 수 있다. 추가로 다음 사항을 수정할 수 있다.

  • daemon.log의 경우처럼, 로그 파일을 지속적으로 업데이트하고 싶다면, Continuous operation 체크 박스를 선택하자.
  • Maximum idle time은 컨텍스트 인스턴스가 종료되기 전에 로그 파일을 변경하기 위해 컨텍스트를 기다리는 시간을 밀리 초로 나타낸 것이다.
  • Pause interval은 로그 파일의 마지막에 도달한 후 얼마나 오랫동안 컨텍스트가 대기할 것인지를 조정한다.
  • 로그 파일이 ASCII 텍스트만은 아니므로, (두 개의 대문자를 사용해) ISO language code, 파일의 Encoding(IANA 문자 세트에 등록된 값을 사용해)과 (두 개의 소문자를 사용해) ISO language code를 설정할 수 있다. 기본값으로는 en, US, 그리고 JVM의 기본 인코딩이 적용된다.
  • 마지막으로 로그 파일은 시간대(time zone), 년, 월, 일을 표현할 수 없는데 CBE는 이 네 가지 값을 반드시 필요로 하기 때문에, Timezone GMT offsetLog file creation date 필드에 있는 값을 대용으로 제공해야 한다.

daemon.log는 지속적으로 증가하기 때문에, Continuous operation 체크 박스를 선택했다. 메일은 일반적으로 자주 폴링되기 때문에, Maximum idle timePause interval120으로 설정했다. 테스트 머신은 콜로라도에 위치해 있어므로 GMT는 -7이 된다. daemon.log는 연도를 지정할 수 없기 때문에, 2006이라는 기본값이 대신 제공되었다. 변경 사항을 모두 체크한 후, 파일을 저장하자.




위로



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