본문 바로가기
BIG-DATA/FILEBEAT

[FILEBEAT] 무작정 시작하기 (1) - 설치 및 실행

by 허도치 2019. 11. 25.

  이번 포스트는 Elastic Stack 중 하나인 Filebeat에 대해서 간략하게 알아보면서 실행까지 해보도록 하겠다. Filebeat를 실행하려면 output을 설정해야 하는데

 

 

1. Filebeat란?

   1-1. 실시간 경량 로그 수집기.

   1-2. 분산되어 있는 여러 시스템에서 발생하는 로그들( System.log, WebServer.log, Engine.log, Error.log 등)을 수집하여 경량화된 하나의 로그(Beat)로 만들고, 이를 Elasticsearch, Logstash, Kafka, Redis 등 다양한 Output으로 Push해주는 Producer임.

 

 

2. 설치방법.

   2-1. 로그를 publishing할 대상의 OS를 확인 하고 다운로드.

         - 포스트에서는 Windows를 사용.

         - 다운로드 - https://www.elastic.co/kr/downloads/past-releases/filebeat-7-3-1

 

Filebeat 7.3.1 | Elastic

View the detailed release notes here.

www.elastic.co

   2-2. 압축해제.

         - C:\work\C:\work\filebeat-7.3.1 에 압축해제.

 

   2-3. 살펴보기.

         - [ kibana ]: 데이터 시각화 툴로 수집된 데이터를 웹으로 확인할 수 있게 도와줌.

         - [ filebeat.yml ]: Filebeat Configuration 파일.

         - [ filebeat.reference.yml ]: filebeat 설정들을 참조할 수 있는 파일, 필요한 설정을 filebeat.yml으로 복사.

         - [ fields.yml ]: Beat를 내보낼 때 덧붙일 Field를 정의.

         - [ filebeat.exe ]: 실행파일.

 

 

3. filebeat.yml 설정.

   - yml 파일들은 conf.d 폴더에서 관리하도록 하겠음.

 

    3-1. [ ./conf.d/example.yml ] 작성.

1
2
3
4
5
6
7
8
9
10
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - C:\work\kafka_2.12-2.1.0\logs\server.log
 
output.console:
  enabled: true
  codec.json:
   pretty: true
cs

          - 1~5 ln: 수집할 로그 파일.

          - 7~10 ln: 수집한 로그를 경량화하여 내보낼 대상. Console 창에 출력되도록 설정.

 

 

4. 실행

    4-1. [ filebeat_start.bat ] 실행 스크립트 작성.

1
2
3
4
5
6
7
8
9
rem filebeat_start.bat
@echo off
 
rem 현재 디렉토리 설정
pushd %~dp0
set FILEBEAT_HOME=%cd%
popd
 
%FILEBEAT_HOME%\filebeat run -c %FILEBEAT_HOME%\conf.d\chrome_logstash.yml -e -d publish
cs

          - [ -c ]: Configuration 파일 지정.

          - [ -e ]: 로그를 파일에 저장하지 않고 Console에 출력.

          - [ -d ]: Debug 모드.

 

   4-2. 실행확인.

         - Beat에 대한 정보 Field들이 출력됨. ( 로그 파일 정보, 수집된 시간, 버전 등 )

         - 수집된 로그는 라인별로 수집되어 message Field에 담겨 있음.

 

 

 

  지금까지 filebeat에 대해 알아보고 설치와 실행까지 해보았다. 지금보면 문제가 없어보이지만 Multiline을 처리하지 못하고 무조건 Line단위로 수집해서 처리하고 있는것으로 보여진다.

  다음포스트에서는 Multiline으로 로그를 수집하는 방법을 다루어보도록 하겠다.

댓글