본문 바로가기

ELK

[ELK] Filebeat 설치 및 시작 for Mac (Elasticsearch, Kibana 연동)

환경

Filebeat - 7.15.2

Elasticsearch - 7.10.2

kibana - 7.10.2

mac - monterey 12.0.1

구조

filebeat -> elasticsearch -> kibana

위의 구조로 logstash 없이 간단한 로그 데이터를 Elasticsearch와 kibana를 통해 시각화

Elasticsearch 로 전달되는 로그 데이터는 Spring Boot Logback을 통해 json 포맷으로 변환되어 로그 데이터가 저장됨.

 

Filebeat 설치

brew install filebeat

mac에서는 brew 명령어를 통해 filebeat를 간단하게 설치할 수 있다.

* xcode의 버전이 낮은경우 설치가 안 되는 경우가 있음.

설치가 다 되면 /usr/local/etc/feilbeat 폴더가 생성되며 해당 폴더 내부에 설정 파일인 filebeat.yml 파일이 위치해 있다.

 

설정 파일 수정

sudo vi /usr/local/etc/filebeat/filebeat.yml

filebeat.yml 파일을 수정하여 input 모듈 설정 및 output 모듈(logstash, elasticsearch, kibana) 설정을 해줘야 한다.

(Filebeat 설정공식 사이트)

 

input 설정

filebeat.inputs:
- type: log
  enabled: true #true로 수정
  paths:
    - /로그가 저장되는 경로/*.log

 

output 설정

output.elasticsearch:
  hosts: ["localhost:9200"]
  #protocol: "https"
  #api_key: "id:api_key"
  #username: "elastic"
  #password: "changeme"

output 은 다른 모듈 사용 없이 elasticsearch 로 할것이기 때문에 해당 부분을 기본 설정에서 본인의 환경에 맞게 작성 및 수정하면 된다.

 

Filebeat 실행

brew services start filebeat

brew 를 통해 Filebeat를 실행

대충 연결이 되었다는 로그들

Error 없이 로그가 출력되면 Elasticsearch와 연결이 잘 된것이다.

sudo /usr/local/Cellar/filebeat/'설치 버전'/bin/filebeat -e

직접 실행할때는 위 명령어를 통해 출력 모드로 실행할수 있다.

sudo filebeat -e -d "*"

또는 위 명령어로 디버깅 모드까지 출력할수 있다.

mv /usr/local/var/lib/filebeat/registry /usr/local/var/lib/filebeat/registry.old2

*filebeat 는 자체적으로 파일 읽는 위치를 기록하는데 위 명령어를 통해 초기화하여 다시 읽도록 할 수 있다.

 

로그파일 생성(Spring Boot Logback) 및 시각화(Kibana)

spring boot logback 을 통해 생성된 json 형태의 로그파일

지정한 경로의 폴더에 로그파일이 생성된것을 먼저 확인 후 kibana 인덱스에 등록된걸 확인할 수 있다.

kibana 인덱스 패턴 등록 화면

이후 로그가 추가 및 수정이 되면 Filebeat가 모니터링을해 Elasticsearch 로 파이프라인이 연결을 통해 전달되고 연동된 Kibana에서 시각화된 모니터링이 가능하다.

 

Logstash 가 빠진 위와 같은 그림으로 구축이 되었다.