[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 구성 해 보기
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 구성 맛보기 였습니다.