DEV/ElasticSearch & Lucene

ElasticSearch Tutorial | 04. Logstash 연결하기

행운개발자 2023. 10. 30. 13:09
728x90

Logstash 다운로드

프로젝트 루트로 이동해서 tar 파일을 다운로드 받습니다.

지금은 ES를 standalone으로도 구성해보고, 뒤에서 cluster로도 구성해볼겠습니다

cd {YOUR_PROJECT_ROOT}/logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.15.0-darwin-x86_64.tar.gz

압축을 해제합니다

tar -xvf logstash-7.15.0-darwin-x86_64.tar.gz

Logstash 실행 : stdin/stdout

가장 기본적으로 Logstash를 시작하려면 아래와 같이 실행할 수 있습니다. stdin으로 입력을 받아서 stdout으로 출력합니다.

bin/logstash -e 'input { stdin { } } output { stdout {} }'

실행한 뒤 ENTER, "hello" 등을 쳐보면 그대로 출력되는 것을 볼 수 있습니다.

Logstash 실행 : ES의 로그 파일을 읽어서 ES로 전송하기

이번에는 ES의 로그 파일을 읽어서 (input) ES로 전송하는 (output) 설정을 해보겠습니다.

// cat logstash-eslog.conf
input {
  file {
    path => "/Users/hwanseok/lucky-developer/study/es/standalone/elasticsearch-7.15.0/logs/elasticsearch_server.json"
    start_position => "beginning"
    codec => "json"
  }
}

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

Kibana에서 ES로 전송된 로그 확인하기

kibana 디렉토리로 이동해서 kibana를 실행합니다.

docker-compose -f docker-compose-kibana.yml up

아래 링크에 접속합니다.

http://127.0.0.1:5601/app/home#/

왼쪽 메뉴의 Anaytics > Discover를 선택합니다. 

logstash-es로 수집되는 데이터에 대해서 인덱스를 생성합니다. json 포멧으로 수집되고 있기 때문에 timestamp 필드만 지정해주면 됩니다.

다시 메뉴 > Anaytics > Discover를 선택해서 로그를 확인합니다.

 

728x90