어댑터 구성 파일 구조

어댑터 구성 파일에는 일반 로그 어댑터 런타임 인스턴스가 실행할 컨텍스트 콜렉션이 들어 있습니다. 각 컨텍스트는 단일 로그 파일의 처리 방법을 설명합니다. 어댑터 구성 파일이 이러한 컨텍스트를 여러 개 포함할 수 있으므로, 어댑터는 여러 개의 로그 파일을 동시에 처리할 수 있습니다.

특정 로그 파일과 연관된 각 컨텍스트는 일련의 구성요소로 구성되어 있습니다. 각 구성요소는 로그 파일을 처리함에 있어 각기 수행하는 역할을 가지고 있습니다.

컨텍스트

컨텍스트는 로그 파일을 처리하기 위해 구성요소를 함께 체인으로 연결할 때 이들 구성요소의 순서화된 그룹화에 대해 설명합니다. 각 로그 파일에는 별도의 컨텍스트가 있으며, 여러 개의 컨텍스트를 단일 구성으로 정의할 수 있습니다. 일반 로그 어댑터는 다음과 같은 하나의 텍스트를 제공합니다.

컨텍스트는 다음과 같은 특성을 가집니다.

특성 유형 작동
설명 string 컨텍스트의 텍스트 설명. 이 값은 어댑터 구성 편집기에서만 사용됩니다.
고유 ID string 이 구성요소의 고유 ID. 컨텍스트는 사용할 구성요소를 식별하기 위해 이 문자열을 참조합니니다.
연속 연산 여부 boolean 최대 대기 시간 및 일시정지 간격 특성에 기초하여 이 로그 파일의 변경사항을 모니터해야 하는지 여부.
최대 대기 시간 integer(밀리초) 컨텍스트가 시스템 종료하기 전에 로그 파일의 변경을 대기하는 최대 시간량.
일시정지 간격 integer(밀리초) 컨텍스트가 읽기를 다시 시도하기 전에 로그 파일 끝에 도달한 후 대기하는 시간량.

센서

센서는 처리할 컨텐츠를 읽기 위한 메커니즘을 제공합니다. 일반 로그 어댑터는 다음과 같은 센서를 제공합니다.

다음 표는 센서 유형 간의 공통적인 속성을 나열합니다.

센서 속성

속성 이름 유형 작동
센서 유형 String 어댑터가 사용할 센서 유형.
설명(필수) String 센서의 텍스트 설명. 이 값은 어댑터 구성 편집기에서만 사용됩니다.
고유 ID(필수) String 이 구성요소의 고유 ID. 센서는 사용할 구성요소 인스턴스를 식별하기 위해 이 문자열을 참조합니다.
최대 블록화(필수) Integer 처리하기 위해 추출기로 전송하기 전에 센서가 읽는 최대 행 수. StaticParserSensor 유형의 경우, 이 필드는 처리하기 위해 출력기로 전송하기 전에 정적 구문 분석기가 작성한 최대 공통 기반 이벤트 오브젝트 수를 나타냅니다.
신뢰 버퍼 Integer 파일을 마지막 읽은 후 파일에 추가가 발생했는지 여부를 판별하기 위해 저장 및 사용되는 파일의 마지막 n바이트.
바닥글 크기 Integer 변수 컨텐츠를 포함하는 파일의 n바이트. 파일의 바닥글 부분은 파일을 마지막 읽은 후 추가가 발생했는지 여부를 판별할 때 사용되지 않습니다.

다음 표는 각 센서 유형에 특정한 특성을 나열합니다. 다음 특성은 구성요소 코드로 표시되며, 해당 구성요소에서 인식되고 사용되게 하려면 표에 나타난 대로 정확한 철자를 사용해야 합니다.

센서 유형 특성 응용프로그램
SingleFileSensor
directory(필수)
SinlgeFileSensor가 읽을 파일의 디렉토리 위치.
fileName(필수)
SingleFileSensor가 읽을 파일의 이름.
shell
변환기 명령을 실행할 UNIX 쉘. UNIX 플랫폼에만 사용됩니다.
converter
센서를 시작하기 전에 실행할 프리프로세스 명령어를 위한 명령행.
정규 표현식 규칙으로 로그 파일을 구문 분석하기 위한 어댑터를 작성할 때 사용됩니다.
StaticParserSensor
directory(필수)
StaticParserSensor가 읽을 파일의 디렉토리 위치.
fileName(필수)
StaticParserSensor가 읽을 파일의 이름.
parserClassName(필수)
정적 구문 분석기를 구현하는 Java 클래스의 이름. 이 클래스는 org.eclipse.hyades.logging.parsers.IParser 인터페이스를 구현해야 합니다.
정적 구문 분석기 Java 클래스로 로그 파일을 구문 분석하기 위한 어댑터를 작성할 때 사용됩니다.

추출기

추출기는 센서가 제공하는 입력 행의 콜렉션을 가져와 이들을 메시지 경계로 분리시킵니다.

일반 로그 어댑터는 다음과 같은 추출기를 제공합니다.

추출기에 대한 구성의 일부로 다음 특성이 제공됩니다.

특성 유형 작동
설명 string 추출기의 텍스트 설명. 이 값은 어댑터 구성 편집기에서만 사용됩니다.
고유 ID string 이 구성요소의 고유 ID. 이 추출기는 사용할 구성요소를 식별하기 위해 이 문자열을 참조합니다.
행 바꾸기 포함 boolean 로그 파일의 메시지가 복수행으로 되는지 여부를 표시합니다.
행 바꾸기 바꾸기 boolean 이 파일에 있는 행 바꾸기를 다른 문자열 세그먼트로 바꿉니다. 바꾸기는 추출기가 시작 패턴 또는 종료 패턴을 검색하기 전에 작성됩니다.
행 바꾸기 기호 string 행 바꾸기를 바꿀 문자열 세그먼트. 행 바꾸기 바꾸기가 참인 경우에만 사용됩니다.
시작 패턴 포함 boolean StartPattern을 다음 구성요소로 전송될 메시지의 일부로 포함하는지 여부. 값이 거짓이면 메시지의 해당 부분이 제거됩니다.
시작 패턴 string 또는 정규 표현식 메시지의 시작을 식별하는 문자열 세그먼트. RegularExpressionExtractor 클래스를 항상 사용할 수 있습니다. 단, 시작 패턴이 단순 문자열인 경우, SimpleExtractor 클래스가 오버헤드를 더 적게 일으킵니다.
종료 패턴 포함 boolean 종료 패턴을 다음 구성요소로 전송될 메시지의 일부로 포함하는지 여부. 값이 거짓이면 메시지의 해당 부분이 제거됩니다.
종료 패턴 string 또는 정규 표현식 메시지의 종료를 식별하는 문자열 세그먼트. 종료 패턴을 지정하지 않으면 메시지는 그 다음 시작 패턴에 의해 분리됩니다.

구문 분석기

구문 분석기는 추출기에 의해 분리된 메시지를 가져와 문자열 값의 데이터 구조에 대한 맵핑 세트를 빌드합니다. 일반 로그 어댑터의 경우 데이터 구조는 공통 기반 이벤트 1.0.1입니다.

일반 로그 어댑터는 다음과 같은 구문 분석기 클래스를 제공합니다.

구문 분석기에는 두 가지 실행 단계가 있습니다.

  1. 글로벌 처리 단계: 이 단계에서는 추출기에 의해 제공된 메시지에 대해 일련의 글로벌 정규 표현식을 실행합니다.
  2. 속성 처리 단계: 이 단계에서는 데이터 구조(공통 기반 이벤트 1.0.1)의 각 속성에 지정되는 값을 판별하기 위해 특정 대체 규칙 세트를 실행합니다.

두 가지 단계의 실행을 통해 글로벌 처리 단계 동안 메시지를 일련의 속성 값으로 토큰화할 수 있습니다. 그런 다음 속성 값은 속성 처리 단계 동안 속성 이름 또는 색인으로 참조될 수 있습니다.

다음 글로벌 특성은 구문 분석기의 일부로서 지정됩니다.

특성 유형 작동
설명 string 구문 분석기의 텍스트 설명. 이 값은 어댑터 구성 편집기에서만 사용됩니다.
고유 ID string 이 구성요소의 고유 ID. 구문 분석기는 사용할 구성요소 인스턴스를 식별하기 위해 이 문자열을 참조합니다.
분리자 토큰 string 또는 정규 표현식 메시지를 속성-값 쌍으로 나누는 토큰 또는 일련의 토큰을 설명하는 정규 표현식.

예를 들어, 로그 파일의 각 줄 바꾸기에 속성과 속성 값이 포함된 경우, \n의 분리자 토큰을 지정할 수 있습니다. 메시지를 나누는 이점은 속성 처리 단계에서 문자열 세그먼트를 참조할 수 있다는 점입니다.

지정 토큰 string 또는 정규 표현식 분리자 토큰에 의해 작성된 문자열 세그먼트를 속성-값 쌍으로 나누는 토큰 또는 일련의 토큰을 설명하는 정규 표현식. 예를 들어, 각 속성 및 값이 = 부호로 분리되고 지정 토큰의 값이 =인 경우, 해당 속성 및 값은 속성 처리 단계에서 참조되어질 수 있습니다. 분리자 토큰이 지정되었지만 지정 토큰이 지정되지 않은 경우, 메시지는 대체 규칙에서 색인으로 참조될 수 있는 속성 값 목록으로 나뉘어집니다.

공통 기반 이벤트의 각 속성은 다음과 같은 특성을 가집니다.

특성 유형 작동
기본값으로 이전 일치 대체 사용 boolean 이 속성에 대한 현재 대체 규칙 세트가 절대 일치를 리턴하면, 일치 값을 저장하여 절대 일치가 없는 경우 그 다음 레코드를 처리하기 위한 기본값으로 사용할 수 있도록 합니다.
기본값 String 이 속성에 대한 대체 규칙이 절대 일치를 제공하지 않거나 이 속성에 대한 대체 규칙이 없는 경우, 이 속성은 여기에 지정된 기본값이 지정됩니다. 특정 속성에 대해 모든 레코드에 동일한 값을 지정하려면, 해당 속성의 기본 대체 규칙을 작성하는 대신 이 특성을 사용할 수 있습니다. 저장된 값을 사용할 수 없는 경우 기본값으로 이전 일치 대체 사용이 우선적으로 사용된다는 점을 주지하십시오.

대체 규칙은 속성 처리 단계의 일부로서 실행됩니다. 맨 위에서 맨 아래로 순서대로 처리됩니다. 일단 규칙이 일치인 다음에는 이 특성에 대해 더 이상의 규칙이 실행되지 않습니다. 일치가 발견되지 않으면 해당 속성의 기본값으로 이전 일치 대체 사용 또는 기본값 특성이 지정된 경우를 제외하고는 속성에 값을 넣지 않습니다.

대체 규칙은 다음과 같은 특성을 포함합니다.

특성 유형 작동
일치 정규 표현식 이 대체 규칙에 의해 처리되고 있는 문자열 범위에서 일치가 발생할 경우 이 속성에 적용될 값을 식별하는 정규 표현식. 정규 표현식을 지정하지 않으면 규칙은 일치로 간주됩니다.
위치 이름-값 속성 쌍 위치는 글로벌 처리 단계 중에 작성된 이름-값 속성 쌍을 참조할 수 있도록 합니다.
  • 분리자 토큰과 지정 토큰이 모두 지정된 경우, 위치 문자열은 다음 문법을 사용하는 이름으로 여러 개의 속성을 참조할 수 있습니다. $h('Attr1')@@$h('Attr2')...
    $h('Attrn')은 이전에 작성된 속성 이름을 식별합니다.
    여기서 @@는 속성 간의 분리자입니다.
  • 분리자 토큰이 지정되었지만 지정 토큰이 지정되지 않은 경우, 위치 문자열은 다음 문법을 사용하는 이름 대신 색인으로 하나 이상의 속성을 참조할 수 있습니다. n1@@n2..
    여기서 n1과 n2는 색인을 나타내는 정수입니다. 색인은 1에서 시작합니다. 메시지 문자열이 분리자 토큰으로 시작할 경우, 색인 1에 있는 속성 값은 널(null)이 됩니다. 첫 번째 속성 값은 색인 2에서 시작합니다.

일치 특성에서 분리자를 추가하여 어느 정규 표현식이 어느 속성 값에 적용되는지를 나타낼 수 있습니다. 대체 특성은 $1, $2 등을 사용하여 이들 속성 단위를 참조할 수 있습니다.

대체 string 속성에 넣을 값. 이 값은 문자열이거나 일치 특성의 정규 표현식을 참조할 수 있습니다. 일치 특성에 의해 추출된 문자열 세그먼트는 정규 표현식의 그룹화를 사용하여 참조될 수 있습니다. $1은 첫 번째 그룹화를 나타내고 $2는 두 번째 그룹화를 나타냅니다.
내장 함수 사용 선택란 이전 대체 규칙이 있을 때 이들 규칙이 일치하지 않는 경우 속성에 대해 기본 제공 함수 사용을 선택하면, 일반 로그 어댑터 런타임이 자체 내부 함수를 사용하여 해당 속성의 값을 생성하게 됩니다. 이 기능은 다음 CBE 속성만 지원됩니다.
  • localInstanceId
  • globalInstanceId
  • componentIdentification.location
  • componentIdentification.locationType
대체 클래스 string 규칙의 위치, 일치대체 스펙에 의해 일치된 값에 대해 사용자 정의 구문 분석 논리를 수행할 수 있는 사용자 작성 Java 클래스의 이름을 지정합니다. 대체 규칙이 레코드에 있는 데이터와 일치할 경우, 이 클래스를 호출하며 그 결과를 사용하여 공통 기반 이벤트 오브젝트를 작성합니다.
스펙:
  • 이 클래스는 일반 로그 어댑터에서 실행하기 위한 인터페이스 클래스 org.eclipse.hyades.logging.adapter.parsers.ISubstitutionExtension 또는 확장 클래스 org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension를 구현해야 합니다.
  • 로그 파일 레코드 간의 상태 데이터를 저장하려면 확장 클래스를 사용하십시오. 클래스 org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension은 일반 로그 어댑터로 하여금 이 클래스의 한 인스턴스만 할당하여 로그 파일의 모든 레코드를 구문 분석하게 합니다.
  • 사용자 클래스는 일반 로그 어댑터 런타임의 클래스 경로에 포함되어야 합니다.
  • 일반 로그 어댑터가 Eclipse 환경에서 실행하는 경우, 클래스는 org.eclipse.hyades.logging.adapter 플러그인의 substitutionExtension 확장점을 사용하여 일반 로그 어댑터의 eclipse 플러그인 확장으로 작성될 수 있습니다.
시간 형식 string 이 필드는 creationTime 요소의 대체 규칙에 적용되며 날짜 시간 구문 분석을 간소화하는 데 사용됩니다. 예를 들어, 일부 로그 파일에 숫자 표시 대신 월 이름을 포함하는 시간 소인이 들어 있습니다. 이는 CBE creationTime 요소에 필요한 XML 스키마 dateTime 데이터 유형의 형식으로 문자열 값을 생성하기 위한 대체 규칙을 작성하기 어렵게 만듭니다. 이 경우, 사용자는 java.text.SimpleDateFormat에 대한 javadoc(java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html)에 문서화된 Java 단순 날짜 형식 문자열을 시간 형식 필드에 지정할 수 있습니다. 규칙의 위치, 일치 및 대체 스펙에 의해 일치된 값은 시간 형식 문자열에 기초하여 구문 분석되고 그 결과 값은 CBE creationTime 값을 생성하는 데 사용됩니다.

포맷터

포맷터는 구문 분석기가 제공한 값에 대한 속성의 맵핑을 가져와 올바른 Java 오브젝트 인스턴스를 빌드합니다. 어댑터 런타임은 공통 기반 이벤트 버전 1.0.1 스펙에 일치하는 공통 기반 이벤트 오브젝트를 작성하는 단일 포맷터를 포함합니다.

포맷터는 다음과 같은 특성을 포함합니다.

특성 유형 작동
고유 ID string 이 구성요소의 고유 ID. 포맷터는 사용할 구성요소 인스턴스를 식별하기 위해 이 문자열을 참조합니다.
설명 string 포맷터의 텍스트 설명. 이 값은 어댑터 구성 편집기에서만 사용됩니다.

출력기

출력기는 포맷터에 의해 제공된 결과 공통 기반 이벤트 레코드를 구체화합니다. 출력기는 컨텍스트의 최종 출력을 저장하기 위한 메커니즘을 제공하거나 줄 바꾸기합니다. Hyades 일반 로그 어댑터는 다음과 같은 출력기를 제공합니다.

출력기의 특성:

특성 유형 작동
고유 ID string 이 구성요소의 고유 ID. 출력기는 사용할 구성요소 인스턴스를 식별하기 위해 이 문자열을 참조합니다.
설명 string 출력기의 텍스트 설명. 이 값은 어댑터 구성 편집기에서만 사용됩니다.
출력기 유형 열거 이 출력기의 유형

출력기 유형 및 필수 특성:

출력기 유형 필수 특성
StandardOutOutputter 없음
SingleFileOutputter directory, fileName
LoggingAgentOutputter agentName - 로깅 에이전트 작성 시 지정된 이름.
waitUntilLoggingTime(선택적) - 에이전트에 쓰기 시작하기 전에 사용자가 에이전트에 첨부하여 모니터링을 시작할 때까지 출력기가 대기하는 시간. 이 특성을 지정하지 않으면 출력기는 에이전트에 쓰기 전에 에이전트가 모니터되는 것을 대기하지 하지 않습니다.
NotificationOutputter resourceURL - 이벤트를 수신할 공고 싱크의 URL.

 

관련 개념
Hyades 일반 로그 어댑터의 개요
공통 기반 이벤트 형식 스펙

관련 타스크
로그 구문 분석기 작성
규칙 기반 어댑터 작성
정적 어댑터 작성

관련 참조
어댑터 구성 파일 구조
공통 기반 이벤트 형식 스펙
어댑터 구성 편집기
정규 표현식 문법