마크베이스 collector가 지원하는 다양한 데이터 수집 모드와 이를 적용하는 방법을 기술한다. Collector가 지원하는 데이터 수집 모드는 FILE, SFTP, SOCKET, ODBC이다.
아래 설명은 collector와 마크베이스 서버가 동일한 장비에 설치되어 있고, 서버의 hostname이 "localhost"이며, colletor는 127.0.0.1:9999에서 동작하는 것을 가정한다.
...
데이터 입력 모드 설정
데이터 입력 모드는 COLLECT_TYPE 변수를 조정하면 바꿀 수 있다. 현재는 FILE과 SFTP, SOCKET, ODBC등을 설정할 수 있다. 각 모드에 대해서 추가 변수를 설정해아 한다.
FILE
...
방식
파일 모드 입력을 설정하면 collector가 실행중인 서버의 파일을 읽어서 처리한다.
...
추가적인 옵션 설정
파일 모드에서는 데이터를 localhost에서 읽기 때문에, 그 파일의 경로명과 파일 읽기 권한만 체크하면 된다.
Name of value | Description | Others |
---|---|---|
LOG_SOURCE | 로그 파일이 위치한 경로 | 디렉토리명을 항상 full name으로 실행해야 한다. |
...
예제
아래의 예제는 파일 모드 입력 방법으로 "/var/log/syslog" 파일의 데이터를 수집하여 마크베이스 서버에 입력하도록 하는 것이다. 먼저 입력 파일을 collector 프로세스가 읽을 수 있는지 확인해야 한다.
...
입력 파일에 대한 권한을 확인하고 나서, 데이터를 파싱하기 위한 정규표현식 파일을 작성해야 한다. 작성한 정규표현식이 데이터 포맷과 맞는지를 확인하기 위해서 마크베이스가 제공하는 machregex툴을 이용할 수 있다.
machregex툴은 machregex 툴은 두개의 정규표현식을 매개변수로 설정하고 데이터를 입력한다. 첫번째 정규표현식(REGEX)은 입력 데이터를 파싱하기 위해서 사용되고, 두번째 정규표현식(END_REGEX)는 입력 데이터를 한건씩 분리하기 위해서 사용된다. 아래의 예제는 machregex를 정규표현식과 데이터 파일을 이용하여 실행해 본 것이다.
...
Code Block |
---|
Mach> SELECT * FROM file_syslogtable ORDER BY _arrival_time asc LIMIT 10; COLLECTOR_TYPE COLLECTOR_ADDR ----------------------------------------------------- COLLECTOR_ORIGIN COLLECTOR_OFFSET ---------------------------------------------------------------------------------------------------------- TM HOST --------------------------------------------------------------------------------------------------------------------- MSG ------------------------------------------------------------------------------------ FILE 127.0.0.1 /var/log/syslog 81 2016-06-20 04:31:43 000:000:000 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started. FILE 127.0.0.1 /var/log/syslog 217 2016-06-20 04:31:43 000:000:000 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="15062" x-info="h ttp://www.rsyslog.com"] start FILE 127.0.0.1 /var/log/syslog 256 2016-06-20 04:31:46 000:000:000 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started. FILE 127.0.0.1 /var/log/syslog 431 2016-06-20 04:35:01 000:000:000 localhost CROND[15111]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --loc k-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok) FILE 127.0.0.1 /var/log/syslog 606 2016-06-20 04:40:01 000:000:000 localhost CROND[15188]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --loc k-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok) FILE 127.0.0.1 /var/log/syslog 681 2016-06-20 04:40:01 000:000:000 localhost CROND[15187]: (root) CMD (/usr/lib64/sa/sa1 1 1) FILE 127.0.0.1 /var/log/syslog 856 2016-06-20 04:45:01 000:000:000 localhost CROND[15265]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --loc k-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok) FILE 127.0.0.1 /var/log/syslog 1031 2016-06-20 04:50:01 000:000:000 localhost CROND[15341]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --loc k-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok) FILE 127.0.0.1 /var/log/syslog 1106 2016-06-20 04:50:01 000:000:000 localhost CROND[15342]: (root) CMD (/usr/lib64/sa/sa1 1 1) FILE 127.0.0.1 /var/log/syslog 1281 2016-06-20 04:55:01 000:000:000 localhost CROND[15419]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --loc k-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok) [10] row(s) selected. |
SFTP
...
방식
원격 파일에서 데이터를 수집하기 위해서 SFTP 모드를 사용할 수 있다. 원격 파일을 SFTP를 통해서 접근할 수 있어야 한다. FILE 모드와 유사하나 파일을 SFTP를 통하여 접근하므로 SFTP 관련 변수를 설정하여야 한다.
...
추가적인 옵션 설정
SFTP모드로 데이터를 수집하려면 다음의 변수들을 추가 설정하여야 한다.
Name of variable | Description | Other Information |
---|---|---|
LOG_SOURCE | 원격 위치의 데이터 파일 경로및 파일명 | 절대경로명이 필요함 |
SFTP_HOST | SFTP 서버의 IP 주소 | |
SFTP_PORT | SFTP서버의 포트 번호 | 포트번호를 설정하지 않으면 22번이 기본으로 사용됨 |
SFTP_USER | SFTP 사용자명 | |
SFTP_PASS | SFTP 패스워드 |
...
예제
SFTP로 로그인 및 수집 파일을 읽을 수 있는지를 확인하고, 읽을 수 없다면 1) SFTP 로그인 문제 해결 2) 파일 권한 관련 문제 해결(FILE 방식을 참고)하여 regex파일을 생성하고 템플릿 파일인 tpl파일에 SFTP관련 변수값들을 설정해 둔다.
...