마크베이스 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 를 관리 및 모니터링 할 수 있다.

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.rgxMachbase의 트레이스 로그$MACHBASE_HOME/trc/machbase.trc
apache_access.rgxApache web server의 Access 파일/var/log/apache2/access.log
apache_error.rgxApache web server의 Error 파일/var/log/apache2/access.log
syslog.rgxsysglog 파일/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 가 데이터를 처리하기 전에 조작할 수 있다.

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