이번 포스팅은 데이터를 수집하는 도구인 비츠에 포스팅 해보겠다.
비츠는 일반적으로 로그스태시 전에 사용하는 가볍고 사용하기 쉬운 데이터 수집기이며 , 모듈을 기반으로 쉽게 데이터를 수집할 수 있다. 보통 수집한 데이터를 엘라스틱으로 실어 나르기 위해 최전방에 위차한 소프트웨어 역할을 한다. 또한 , 비츠는 데이터 가공을 위한 프로그래밍 작업이 필요하지 않으므로 일단 원하는 비트를 확보했다면 빠르게 데이터를 수집 가능하다.
기본적으로 엘라스틱 서치에서 아래왁타이 다양한 비트를 공식적으로 지원한다.
기본적으로 대부분의 비츠는 아래와 같은 동적 과정을 겪는다.
1. 비트 다운
2. 비트 설정 파일 수정
3. 모듈을 활성화 하고 모듈 설정 파일을 수정
4 엘라스틱서치와 키바나 대시보드 사용할수있게 설정
5 비트 시작
6 키바나에서 확인
파일비츠는 로그파일을 쉽게 수집하도록 도와주며 , 로그스태시처럼 간단한 필터 작업도 가능하다.
파일 비트를 다운받으면 아래와 같은 폴더 구조로 이루어져있다
파일비트의 yml파일을 아래와 같이 수정한다. 로그파일을 읽어서 엘라스틱서치로 보내는 과징이다. 참고로 마지막에 setup,kibana
를 지정하면 키바나 대시보드에서 파일비트 데이터를 확인 가능
filebeat.inputs:
- type : log
enabled : true
paths:
- C: /elasticsearch-7.10.1/logs/*.log
output.elasticsearch:
hosts: ["localhost:9200"]
setup.kibana
host: "localhost:5601"
또한 , 설정할 수 있는 파일비트의 input type과 output type은 아래와 같다.
yml파일에 아래와같이 다양한 옵션들을 추가해 더 효율적으로 로그파일을 수집할 수 있다. 특히 multiline은 여러 라인을 하나의 로그로 인식해야할때 유용하게 쓰인다.
ignore_older: 24h # 24시간안 로그만
include_lines: ['^ERR', '^WARN'] # ERR , WARN으로 시작하는 로그 라인 수집
exclude_lines: ['^DBG'] # DBG로 시작하는 로그 라인은 파일비트 내부에서 버림
exclude_files: ['\.gz$'] # 확장자가 gz파일 무시
multiline.pattern: '^[[:space:]]' # 첫번째 문자가 공백이면
multiline.negate: false # 패턴이 일치하는 연속된 라인을
multiline.match: after # 공백으로 시작하는 라인을 공백으로 시작하지않는 라인뒤에 붙임
모듈은 많이 사용되고 잘 알려진 시스템 데이터를 수집하기 위한 일반적인 설정을 사전 정의해둔것이며 예를들자면 엔진엑스의 같이 유명한 서버의 로그를 수집할때는 동일한 설정으로 수집할 수 있기 때문에 사전 설정을 제공한다.
대포적으로 aws , cef , cisco , elasticsearch , googlecloud , logstash 등이있고 그외에도 다양한 모듈들이 존재한다.
filebeat.config.modules:
path : ${path.config}/modules.d/*.yml
# 참고
path.home : 파일비트 설치경로
path.config : 파일비트 구성 파이 ㄹ경로
path.data : 파일비트 데이터 경로
path.logs : 파일비트 로그 경로
아래와 같이 명령어로 logstash kibana elasticsearch모듈을 활성화 시킬 수 있다.
modules list로 활성화 비활성화 모듈 확인가능
model.d 파일에 들어가서 자세한 설정이 가능하다. 예를들면 아래와 같이 logstash.yml 파일에서 var.paths: [C:\logstash-7.10.1\logs*.log]로 var부분 수정해 lotstash 모듈이 수집할 경로 지정이 가능
setup옵션을 먼저 실행한다. 실행이 완료되면 아래와같이 키바나 대시보드에 filebeat관련 부분이 추가된다.
.\filebeat.exe setup -e
아래와 같은 명령어로 파일 비트를 실행시킬 수 있다
.\filebeat.exe -e
또한 , 설정한 logstash비트 모듈을 통해 로그파일을 가져오려면 로그스태시를 실행해야한다. 이렇게 실행하면 기존에 만들어 놨던 logstash파이프라인에 의해 logstash에 로그가 쌓이면 파일비츠 로그스태시 모듈이 활성화되면서 logstash에 있는 로그를 가져오게 된다.
C:\logstash-7.10.1.\bin\logstash.bat
비츠가 데이터 입출력을 잘하고 있는지 , 리소스는 문제없는지 키바나를 통해 체크하는 기능 yml에 파일에서 아래와 같이 수정한다.
이후 파일비트를 실행시키면 아래와 같이 비츠에 대한 모니터링이 형성되는것을 확인 할 수있다. 이를 통해 비츠들의 개별 인스턴스들을 쉽게 확인 할 수 있다.
이번 포스팅은 다양한 데이터를 쉽게 수집할 수 있는 경량수집기 beats에 대해 포스팅해 보았다. 다음 포스팅은 본격적으로 다양한 elastice stack과 연결된 데이터를 쉽게 모니터링하고 시각화 할 수있는 kibana 다양한 기능에 대해 공부하고 , 포스팅해볼 예정이다.