ELK Stack

ElasticSearch 2017. 10. 17. 16:16

공식사이트: elastic.co

REF


기본적으로 elasticSearch가 근간인데

elasticSearch를  DB와 비교해서 가장 큰 차이점을 생각해 보면


   1. 속도가 빠르다.. DB는 B-tree인데 elastic은 hash를 사용.
       (물론 No-SQL DB중에는 redis등과 같이 hash사용하는 애들 있죠..)


   2. Fuzzy개념이 있다.
       (DB에서는 정확하게 입력한 query에 대한 결과가 나오지만,  

        elastic은 검색엔진 기반이다 보니,   Fuzzy하게 혹은 가중치있게 검색할 수 있다.. 적당히 알아서 유사한 것들이 검색된다) 



==============================================


elasticSearch에 data를 넣고,

kibana를 통해 그래프 형태로 조회 한다.


Logstash는 elasticSearch에 data를 대용량으로 넣을때 주로 사용한다.



<ElasticSearch>

키워드 : doc1, doc2 이러한 식으로 저장이 됨.  O(1)의 HashTable이라고 생각하면 됨. 

     ==> 따라서 search가 매우 빠름. (redis와 


Index - db (RDB용어)

Type - table

document - row

Mapping -scema


(실습)

$curl -XGET http://localhost:9200/classes
                                                         +  /class/1 -d  someData

$curl -XPUT localhost:9200/classes    (Update명령이지만, index생성시에는 PUT을 사용함)

                      

$curl -XPOST localhost:9200/classes/class/1 -d  @json파일          (INSERT) 
                                                             document생성은 POST로 하면 index와 함께 생성되기도 함.


?pretty : 이쁘게 출력해 줌.


    - geo_point같은 data를 type 매핑해주면 geo data로 관리가 되서, kibana 지도에서 쉽게 표시 가능.
    - 


<Kibana>

Discover메뉴 - 필드별 조회/검색 등.

Visualize에서 x 축 y축 고르면 쉽게 그래프로 표시할 수 있으며, 해당 링크만 이용할 수 있음.



<logstash>

 - (CSV)file, mySql, mongoDB, ActiveMQ등 data들을 포맷을 바꿔 elasticSearch에 넣을 수 있음.

 - .conf 파일을 이용함.  $sudo ./logstash -f logstash.conf 
          ( input  / filter / output을 지정. output을 주로 elasticSearch로 함 -  유투브 ELK스택 강의 18강 참고.



               


 






Posted by yongary
,