elasticsearch를 사용해 검색기능을 구현하다보면 자연스럽게 ELK스택에 대하여 알게 된다.
검색 기능은 다음과 같은 과정을 거친다.
1 - logstash를 활용한 실시간 파이프라인을 구성하고, elasticsearch에 인덱싱 과정
2- elasticsearch 인덱스 기반으로 데이터 검색
굉장히 심플한 과정이다.
이번 글에서 소개할 내용은 1번과정인 실시간 파이프라인을 구성하여 elasticsearch에 인덱싱 하는 과정을 소개하려고 한다.
작업하려는 방식은 logstash plugin을 사용해 mongodb의 input을 elasticsearch output에 넣어주려고 한다.
logstash-plugin install logstash-input-mongodb
logstash-plugin install logstash-output-elasticsearch
//logstash 구성파일
input {
mongodb {
uri => "mongodb://디비:비번@외부ip:27017/Source=디비"
collection => "컬렉션이름"
batch_size => 5000
placeholder_db_dir => "/usr/share/logstash/data"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "myindex이름"
document_id => "%{[_id]}"
document_type => "_doc"
}
}
하지만 여기서 문제가 발생했다.
프로젝트에서 사용하는 logstash의 버전은 7.17.0버전
https://www.elastic.co/guide/en/logstash/7.17/output-plugins.html을 확인하면 지원하는 플러그인을 볼 수 있다.
logstash-plugin install logstash-input-mongodb플러그인은 더이상 정식지원하는 플러그인이 아니다. (6버전 까지만 지원한다)
다음 포스트에서는
logstash-plugin install logstash-input-mongodb플러그인을 사용하지 않고 파이프라인을 구성하는법을 올려야겠다.