[Elastic] Elasticsearch, Kibana, Filebeat, Logstash 8.2.0 구성하기

Elastic 2022. 5. 18. 13:05

가볍게 Elastic Stack 8.2.0 을 기준으로 설치 및 구성 하는 방법을 기술 합니다.

xpack basic 버전 이지만 security 기능은 사용 하지 않습니다.

security 사용을 적용해 보고 싶으신 분은 아래 글을 참고해 보시면 될 것 같습니다.

 

참고 글)

[Elastic] Enterprise Search 8.2 구성 해 보기

 

[Elastic] Enterprise Search 8.2 구성 해 보기

Enterprise Search (App Search) 를 사용하기 위해서는 먼저 선행 되어야 하는 것들이 있습니다. https://www.elastic.co/guide/en/app-search/current/getting-started.html App Search 이외 Workspace Search 도..

jjeong.tistory.com

 

1. Elasticsearch Setup

$ vi config/elasticsearch.yml
# xpack basic security feature disable.
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false
ingest.geoip.downloader.enabled: false

# JDK 17 ES_JAVA_HOME 설정
$ bin/elasticsearch

xpack.security 기능을 사용하지 않을 거라서 위와 같이 설정을 먼저 진행 합니다.

여기서 출가로 geoip 도 disabled 했습니다. 이유는 보안상 이유로 다운로드가 막혀 있는 경우 에러가 나는데 이게 보기 싫으신 분들은 저렇게 끄고 사용 하시면 됩니다.

 

2. Kibana Setup

$ vi config/kibana.yml
xpack.security.audit.enabled: false

$ bin/kibana

kibana 는 간단 합니다.

어차피 로컬 개발 장비에서 모두 설치 하는 거라 기본 연결 설정 정보는 모두 localhost:9200, localhost:5601 이렇게 구성 됩니다.

 

3. Filebeat Setup

가장 많이 사용 했던 것이 input type log 였는데요.

이게 filestream 으로 개선되어 추가 되었습니다.

아래 문서 참고 하세요.

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-filestream.html

# 기본 설정 예시

$ vi filebeat.yml
# 아래 설정에서 inode_marker 파일은 미리 생성이 되어 있어야 에러가 발생 하지 않습니다.
filebeat.inputs:
- type: filestream
  id: fb-filestream
  enabled: true
  paths:
    - $[PATH}/logs/*.log
  file_identity.inode_marker.path: $[PATH}/logs/.filebeat-marker
  
  encoding: utf-8

processors:
  - decode_json_fields:
      fields: [ "message" ]
      target: "json"

output.elasticsearch:
  hosts: ["localhost:9200"]

# 실행
$ ./filebeat -c filebeat.yml -e

 

4. Logstash Setup

filebeat 연동 시 filebeat.yml 의 output 에 logstash 설정을 합니다.

# filebeat 설치 경로에 가서 수정 합니다.
$ vi filebeat.yml
output.logstash:
  hosts: ["localhost:5044"]

# 이제 logstash 와 filebeat 연동을 위한 설정을 합니다.
$ vi config/logstash-sample.conf
input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
}

# 이제 logtash 와 filebeat 를 실행 해서 정상적으로 색인이 되었는지 확인 합니다.
$ bin/logstash -f config/logstash-sample.conf

# pipeline.yml 을 사용하기 위해서는 아래 설정 후 실행 하면 됩니다.
# 기본 설정이기 때문에 한번은 해야 합니다.
$ vi config/logstash.yml
node.name: ${NODE-NAME}
path.data: ${PATH}/data/logstash
path.logs: ${PATH}/logs/logstash
config.reload.automatic: true
config.reload.interval: 60s
http.port: 9600

$ vi config/pipeline.yml
- pipeline.id: filebeat-log-pipeline
  pipeline.workers: 4
  pipeline.batch.size: 20
  path.config: "${PATH}/config/logstash-sample.conf"

# 이제 실행 합니다.
$ bin/logstash

자, 여기까지 Elastic Stack 8.2.0 구성 맛보기 였습니다.

: