컬렉터 (Collector)

마크베이스 Collector 는 로그 데이터를 추출하여 변환 후 마크베이스 데이터베이스에 실시간으로 입력하는 도구다.

마크베이스 서버와 분리된 장비에 설치하여 실시간으로 로그 데이터를 수집해서 네트워크를 통해 입력할 수 있는 것이 마크베이스 Collector 다. 이는, 마크베이스 서버와 분리된 프로세스로 동작하며 동시에 여러 Collector 를 실행할 수 있다. 각 Collector 프로세스가 데이터 소스 하나를 처리한다.

개념


 

위 그림은 Node-2 와 Node-3 의 Collector 가 데이터를 수집하여 데이터베이스 서버가 설치된 Node-1에 입력하는 것을 나타낸다.

  • Node-2와 Node-3에서 Collector 는 특정 로그 파일에 대하여 별개의 프로세스로 실행되어 데이터를 전송하는 것을 볼 수 있다. 

  • 각 Collector 프로세스는 로그 데이터에 대한 상세 정보를 주어진 tpl 파일을 이용하여 얻는 것을 알 수 있다.

  • Collector manager 는 각 Node에 설치되어 해당 노드에서 동작 중인 Collector 프로세스를 관리하고 모니터링한다.



특징


아래에 마크베이스 Collector 의 주요 기능을 설명한다.

일관성 있는 인터페이스

마크베이스는 Collector 를 실행하기 위해 SQL기반의 명령어 외에 추가 프로그램을 요구하지 않는다. 간단히 다음 명령어로 Collector 를 관리 및 모니터링 할 수 있다.

1 2 3 CREATE Collector MANAGER LOCALHOST AT '127.0.0.1:9999'; CREATE Collector LOCALHOST.MYADP FROM 'syslog.tpl'; ALTER Collector LOCALHOST.MYADP START;



데이터 수집 성능 향상

마크베이스 Collector 는 로그 데이터 타입 마다 별개의 Collector 가 데이터를 수집하도록 설계되었다. 그래서 각 프로세스가 고속으로 각각의 로그 파일을 처리할 수 있다.

별개의 프로세스들이 각각 로그 데이터를 처리하므로, 다른 로그 파일 처리에 영향을 받지 않는다. 

Collector 는 각 로그 타입에 대해 최적화된 코드로 실행되고, 자원 사용량을 최소화한 전용 프로토콜로 데이터를 입력하므로 최고의 성능을 얻을 수 있다.

수집 방법

Collector 를 이용하여 다양한 방법으로 로그 데이터를 수집할 수 있다. 데이터 수집 방법은 tpl 파일을 수정하여 설정할 수 있다. 지원되는 수집 방법은 아래와 같다.

방식 이름

설명

방식 이름

설명

FILE

로컬 호스트의 파일을 수집한다.

SFTP

리모트 호스트의 파일을 수집한다.

SOCKET

포트로 들어오는 데이터를 수집한다.

ODBC

타 데이터 베이스로부터 데이터를 수집한다.

로그 데이터 종류

마크베이스 Collector 는 다양한 타입의 로그 데이터를 위해서 정규 표현식을 지원한다.
사용자는 기존에 제공되는 정규 표현식을 간단히 수정하여 다양한 로그 파일을 분석할 수 있다. 현재 지원하는 로그 타입은 다음과 같다.

정규 표현식 파일 이름

지원하는 타입

데이터의 기본 위치 (수정 가능)

정규 표현식 파일 이름

지원하는 타입

데이터의 기본 위치 (수정 가능)

machbase.rgx

Machbase의 트레이스 로그

$MACHBASE_HOME/trc/machbase.trc

apache_access.rgx

Apache web server의 Access 파일

/var/log/apache2/access.log

apache_error.rgx

Apache web server의 Error 파일

/var/log/apache2/access.log

syslog.rgx

sysglog 파일

/var/log/syslog

custom.rgx

유저 정의 타입

유저 정의 파일

사용자 정의 로그를 쉽게 지원

마크베이스 Collector 는 정규 표현식으로 표현될 수 있는 다양한 종류의 로그파일을 처리할 수 있다.

로그 파일이 없더라도 machregex를 이용하여 샘플 로그 메시지와 정규 표현식을 테스트 해 볼 수 있다. 

장애 발생시에도 데이터 유실 방지

마크베이스 Collector 는 장애 발생 시 전송하지 못한 데이터를 장애 해결 후에 정확하게 재전송하는 기능을 제공한다.

장애가 발생하면 Collector 는 서버에 전송한 마지막 위치를 기록하고, 장애를 해결한 다음은 그 위치부터 데이터를 재 전송한다.

그래서 장애 극복을 위한 추가 조작이나 코드를 작성하지 않더라도, 모든 데이터의 유실없이 서버에 전송할 수 있다.

고가용성 보장

서비스의 고가용성을 보장하기 위해서 여러 Collector 들을 동일한 데이터 소스에 대해서 동시에 동작 시킬 수 있으며 이 Collector 들은 서로 다른 마크베이스 서버에 데이터를 전송한다.

이렇게 하면 마크베이스 서버에 오류가 발생하더라도 다른 서버에 동일 데이터를 지속적으로 저장하고 있으므로 서비스를 지속시킬 수 있으며,

오류를 해결하고 나서 서버를 재기동하면 Collector 는 미전송 로그 데이터를 정확히 재전송하므로 자동으로 데이터를 복제하여 고가용성을 제공할 수 있다.

MWA를 통한 통합 모니터링

마크베이스 Collector manager는 Collector 의 실행 정보를 마크베이스 서버에 동기화 한다.

이를 이용하여 MWA (Machbase Web Admin) 를 통한 통합 모니터링을 수행할 수 있다.

MWA를 이용하면, 실행 중인 Collector 의 다양한 상태 정보와 Collector 를 수행 중인 서버의 상태 정보를 실시간으로 모니터링할 수 있다.



Python 스크립트를 이용한 로그 전처리

Python 스크립트를 작성하여 Collector 가 데이터를 처리하기 전에 조작할 수 있다.

입력한 데이터를 처리하여 필요 없는 데이터는 입력하지 않도록 설정할 수도 있고 파싱한 데이터를 변경하도록 할 수도 있다.