본문 바로가기

filebeat 관련 요약 및 정리 ( elasticsearch 사이트 번역 정도) Filebeat 를 봐야 할 일이 생겨서 문서 확인 및 요약하기 위함. 현재 6.0 을 쓰고 있어서 6.0 기준으로 살펴 볼려고 하며 역시 공식 사이트 번역 정도임 ( https://www.elastic.co/guide/en/beats/filebeat/6.0/index.html ) 파일비트 시작하기기본 파일 위치 : /etc/filebeat/filebeat.yml ( docker 는 /usr/share/filebeat/filebeat.yml )filebeat.prospectors: - type: log enabled: true paths: - /var/log/*.log #- c:\programdata\elasticsearch\logs\*Golang Glob 패턴을 지원한다고 함.하위 디렉토리까지 가져오기.. 더보기
sping data elasticsearch 정리 ( spring 에서 es 사용 관련) 여전히 공식 문서 ( http://projects.spring.io/spring-data-elasticsearch/ ) 를 참고하는게 가장 좋으며,기록하면서 보면 기억에 남을까 하여 정리 3.2 쿼리 메소드1. Repository 를 상속받은 Interface 를 구현하거나 subinterface 를 사용 ( interface를 구현하는게 아니라 별도 interface 를 만듦)2. 쿼리 메소드를 선언 ( findAll 등 interface 에 선언 되어 있는 것들)3. JavaConfig나 XML 설정을 통해서 proxy instance 를 설정 ( 이 부분은 추후 자세히 설명이 되어 있는듯 하지만 아래와 같이 설정 함@EnableJpaRepositories // @Enable${store}Reposi.. 더보기
elasticsearc 검색 첫 번째 지금까지 엘라스틱서치를 구성하는 부분을 알아다면 이제 실제 검색에 필요한 부분을 확인해 보자.복잡한 검색 방법보다는 검색 결과에 대한 부분을 먼저 확인해 보자. ( 참고 : ES사이트 )간단하게 검색을 해보면 (GET /_search ) 아래와 같은 응답 / 내용을 받아 볼 수 있다.{ "hits" : { //검색 결과의 내용 및 전반적인 내용을 포함하고 있음. "total" : 14, //검색 결과 수 "hits" : [ //검색 결과 내용을 배열로 가지고 있음. { "_index": "INDEX", //인덱스이름 "_type": "DOCUMNET", //다큐먼트이름 "_id": "7", //id "_score": 3, //검색 쿼리에 얼마만큼 부합되는지를 나타내는 척도 ( 추가적으로 검색 결과는 기본.. 더보기
elasticsearch indexing Performance Tips ( 엘라스틱서치) 그저 원문 번역만 가지고서는 답이 안나오는 듯하니.. 현재 ES 를 테스트 하다 보니 index reject 가 거의 100% 나는 나는 문제가 하나 있다.이래저래 모니터링을 하기 시하고 있는 와중에 인덱싱 성능 향상을 위한 팁이 있는거 같아 내용을 정리해 보고자 한다. 일단 검색을 어떻게 사용하느냐에 따라 많이 달라 질 수 있겠지만 현재 직면한 문제는 검색성능이 아닌 인덱싱 성능에 대해서 문제가 있다.예를 들어 검색횟수가 적고 어느정도 시간이 오래 걸려도 크게 문제가 없는 업무 / 사용자일 경우이다. 이런 경우에 몇 가지 팁을 공유 하고자 한다.(사이트 가이드를 보니 해당 팁은 1.3버전 이상에서만 적용하라고 한다. ) 과학적인 성능테스트1. single node, single shard, no rep.. 더보기
elasticsearch module (엘라스틱서치 모듈에 대해서) * 원문링크 엘라스틱서치에는 다양한 기능을 담당하는 모듈들이 있고 각 모듈은 아래와 같은 설정이 있다. - static : 이 설정은 node level 에서 설정이 되야 하는 부분으로 elasticsearch.yml 파일에서 설정하거나 환경변수 또는 노드를 시작할 때 command line 옵션으로 설정도 가능하다. 이 옵션은 클러스터에 묶여 있는 모든 노드에 설정이 되어야 한다. - dynamic : 이 설정은 실행중인 클러스터에 동적으로 업데이트가 가능한 것으로 cluster-update-settings API 로 변경 간능하다. 모듈들의 종류는 다양하게 있으나 그 리스트들은 위 원문 링크를 통해서 확인하기 바라며, 모듈 중 이번에 확인할 모듈은 Thread Pool 이다. Thread Pool 노.. 더보기
엘라스틱서치 ( elasticsearch ) 순차 재시작 * 원문링크 * Rolling Restarts 클러스를 온라인 상태를 유지하면서 순차적인 재시작이 필요한 순간이 있다. * 엘라스틱서치 업그레이드 * 서버( OS, hardware update) 의 유지보수를 위해 원래 엘라스틱은 데이터가 복제되어 있고 고르게 분배되어 있다. 만약 하나의 노드를 끄게 되면 클러스터는 이를 즉시 감지하고 재배치를 시작한다. 비록 다운타임이 짧다 하더라도 샤드의 크기가 클 경우 재배치 하는데 꽤나 긴 시간이 걸리게 되는데 이 부분이 상당히 번거롭다. 이와 같은 번거로운 상황을 피하기 위해 외부의 작업(재시작이 필요한) 이 완료되기 까지 엘라스틱서치의 재배치 작업을 끌 수있다. 이 단계는 아래와 같다. 1. 가능하다면 새로운 데이터의 indexing 작업을 멈춘다. 이 작업이.. 더보기
엘라스틱서치 샤드 갯수? 기본적으로 shard 를 한번 생성하고 나면 추후 변경이 안된다.데이터는 계속 쌓이고 쌓이는 양에 대해서 가늠하기도 애매할 텐데 거기다가 변경(scale out) 도 안된다니.이렇다보니 최초 인덱스 생성시 shard 설정을 어떻게 해야 할까 고민이 되는 건 당연지사. 이리저리 뒤져 보면 여러가지 얘기들이 있다. 그 중 한 두개 꼽아 보자면* 샤드는 무조건 많다고 좋은건 아니다.당연한 얘기겠지만 분산되어 있는 서버, 시스템, 플랫폼 등등 그 양이 많아지면 관리하기는 점점힘들어 지고 그에 따른 관리도 쉽지가 않다.간략한 예로 샤드자체가 리소스들(memory, file 등)을 사용하고, 검색 요청 / 연산시 나눠져 있는 각 샤드를 다 확인해 봐야 하기 때문이다.* 최초 노드의 3배 정도 설정해라.이건 왜 그런.. 더보기
엘라스틱서치 ( elasticsearch ) 메모리 관련 (공식 홈피 번역) Heap: Sizing and Swapping기본으로 1GB 로 설정 되는데 이는 일반적으로 매우 작은 값이고, 이대로 사용할 경우 문제가 있을 수 있다.힙사이즈 변경하는 방법은 크게 2가지가 있다.- 환경 변수에 ES_HEAP_SIZE 를 설정 : 서버라 실행 될 때 해당 환경 변수를 읽는다.export ES_HEAP_SIZE=10g- 커맨드 라인에 인수로 줄 수 있다../bin/elasticsearch -Xmx10g -Xms10g* xms 와 xmx 는 동일하게 설정해 주느게 좋다 : 실행중에 사이즈를 변경하는 작업은 부담이다. ( 이는 jvm 공통)Give(less than) Half Your Memory to Lucene너무 큰 메모리 사이즈는 문제가 있다.메모리 구조에 빠른 연산을 제공해 주기 .. 더보기