컬렉터 (Collector)
마크베이스 Collector 는 로그 데이터를 추출하여 변환 후 마크베이스 데이터베이스에 실시간으로 입력하는 도구다.
마크베이스 서버와 분리된 장비에 설치하여 실시간으로 로그 데이터를 수집해서 네트워크를 통해 입력할 수 있는 것이 마크베이스 Collector 다. 이는, 마크베이스 서버와 분리된 프로세스로 동작하며 동시에 여러 Collector 를 실행할 수 있다. 각 Collector 프로세스가 데이터 소스 하나를 처리한다.
개념
목차
- 1 개념
- 2 특징
- 2.1 일관성 있는 인터페이스
- 2.2 데이터 수집 성능 향상
- 2.3 수집 방법
- 2.4 로그 데이터 종류
- 2.5 사용자 정의 로그를 쉽게 지원
- 2.6 장애 발생시에도 데이터 유실 방지
- 2.7 고가용성 보장
- 2.8 MWA를 통한 통합 모니터링
- 2.9 Python 스크립트를 이용한 로그 전처리
위 그림은 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.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 가 데이터를 처리하기 전에 조작할 수 있다.
입력한 데이터를 처리하여 필요 없는 데이터는 입력하지 않도록 설정할 수도 있고 파싱한 데이터를 변경하도록 할 수도 있다.