ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ELK Stack] ELK활용하여 검색엔진 만들기-intro
    Dahum Library/ELK Stack 2019. 12. 28. 19:44

    ELK Stack을 이용하여 검색엔진을 만드는 작업을 했다. 경험도 없고 하나도 모르는 상태에서 시작한 일이라

    혼자서 너무너무 삽질을 많이했다. (기본적으로 내 실력도 너무 보잘것 없었고...) 

    작업이 끝난 지금, 버전이 너무나도 빨리 바뀌고 수많은 기능들이 생기고 사라지는 이새끼를 가지고

    나처럼 삽질하고 있을 초보들 그리고 미래의 나를 위해서 공부했던 것들을 좀 정리할까한다.

     

    우선 내가 사용했던 ELK 제품을 포함한 개발 환경은

    Elasticsearch 7.3.0 | 7.3.2

    Logstash 7.3.0 | 7.3.2

    Java 1.8.0_212

    InjelliJ Ultimate 2019.3

    CentOS 7

    Spring Boot 2.1.7

    Groovy 2.3.11

    Tomcat 8.0.53

    Postgresql 9.2

     

    나름 자세하게 정리하자면 이정도다. Elasticsearch(이하 es)와 Logstash(이하 lt)는 착오가 생겨서 개발단에서는 7.3.0을 썼는데

    배포환경에서 7.3.2를 써야해서 테스트를 거치고 썼던 코드 그대로 썼다. 처음 개발을 시작했을 때 Latest가 7.3.0이었는데, 현재 7.5.x까지

    나왔다(3개월만에.. -_-;;) 게다가 대부분의 레퍼런스가 5.x, 6.x 였고(3.x 이하도 많았다) 그 사이 중요한 변경사항이 있었기 때문에 애를 많이 먹었다.

     

    정리할 내용의 목차를 적어본다면 대략 이렇다. (계속 수정예정 // 현재 - 2019.12.28)

     

    1. 검색엔진 개발에 쓰이는 ELK의 특성

      • Elasticsearch

      • Logstash

    2. 검색엔진 구현

      1. Logstash 

        • Logstash와 Datasource(Postgresql) JDBC로 연동하기

        • Logstash 설정

        • 원본 Datasource와 NRT(Near Real Time)으로 Sync 맞추기

      2. Elasticsearch

        • Java HighLevelRestClient로 es연동하기

        • Index Setting, Mapping 템플릿 사용하기

        • Analyzer에 대하여

        • CRUD 구현하기

        • Query DSL사용하여 검색하기

    3. 잡 팁(Tip)

    정도가 될 것 같다. (너무 자세한가..)

     

    솔직히 말하면 틀린 내용도 있을 수 있고 중요한데 빼먹는 내용도 있을 수도 있다. 그런건 추후에 공부하면서 수정해나갈 것이다.

    혹시 보시는 분들 중에서도 지적사항이 있다면 언제든지 지적해주셔도 됩니다

     

     

     

    댓글

Designed by Tistory.