마크베이스 collector는 로그 데이터를 수집하고, 수집하여 분석하고 마크베이스 서버에 전송한다. 데이터 수집 , 및 분석 기능 외에 추가 추가적인 데이터 처리를 위해 , 마크베이스 collector는 python을 이용한 데이터 전처리 프레임워크를 제공한다.
...
Preprocessing framework으로 python 2.6 버전을 사용한다. 이 버전의 python은 마크베이스 서버와 같이 설치된 것을 사용하는 것을 추천한다. 설치된 python은 $MACH_COLLECTOR_HOME/webadmin/flask/Python/bin 경로에 있다. Python 라이브러리 추가 설치를 위한 python 실행도 위 디렉토리에서 실행해야 기존에 설치되어 있는 다른 버전의 python과 충돌을 방지할 수 있다. 마크베이스 collector와 같이 제공된 python을 기본으로 사용하려면 path환경변수를 PATH 환경변수를 정확히 설정하고, USER_PROCESSPREPROCESS_LIB_PATH를 설정하여야 한다. USER_PROCESSPREPROCESS_LIB_PATH에 추가 경로를 등록하려면, 경로를 추가로 등록할 때 경로 값의 분리를 위해 경로들 사이에 ":" 문자를 path값의 분리를 위해서 path값 사이에 추가해야 넣어줘야 한다.
Preprocessing 순서
Log 로그 데이터를 변환 및 조작하기 위한 preprocessor 실행 순서를 기술한다. User-defined log 수집에서 사용된 것과 동일한 diagram을 이용하여 설명한다.
It describes the order of preprocessing during the process of log conversion. To explain how it works, the same concept is borrowed from the User-defined Log Collection along with the diagram.
메시지 Preprocessing
원본 로그 데이터 파일에 데이터가 입력되면 각 로그 데이터는 로그 unit단위로 단위들로 분리된다. 이 분리된 가령 로그 데이터를 origin_msg로 명명한다msg라고 하자. 각 origin_msg는 한번에 하나씩 위에 표시된 프로세스를 진행한다. 한 단계씩 처리 과정을 거친다. 예를 들어 입력된 첫번째 메시지는 메시지가 "Aug 19 15:37:12 localhost NetworkManager[1340]: (eth1): bringing up device." 라고 하면, 입력된 origin_msg는 정규 표현식에 의해 토큰으로 토큰들로 분리된다. 이를 메시지 파싱이라고 한다. 메시지 파싱 이전에 origin_msg를 전처리 할 수 있다. 만약 전처리 스크립트를 이용해 origin_msg를 전처리 스크립트를 이용하여 변경한다면, 변경된 메시지가 파싱될 수 있도록 주의하여야 msg를 변경하는 경우에는 변경된 결과 메시지가 파싱 가능한 메시지여야 한다.
Column Preprocessing
로그 메시지를 파싱한 이후, 결과 토큰값들이 생성된다. 아무런 처리과정이 처리 과정이 없다면 이 값이 데이터베이스에 저장된다. 파싱된 토큰들을 데이터베이스에 전달하기 전에 두번째 단계의 전처리 과정을 실행할 수 있다. 이때 rgx파일에 기술된 필드명을 이용하여 변경하거나 이를 이용할 수 있다. rgx파일에 기술된 데이터형과 다른 타입으로 토큰을 변경하면 에러가 발생할 수 있다.
...