Elasticsearch debug

새로운 것을 쏟아내는 것은 우선 기본 개념을 이해하는 것이고, 그 다음은 어떻게 debug를 하는지 배우는 것이다.그렇지 않으면 눈이 멀기 쉽다.이 두 가지를 해결하고 남은 것은 인내심과 항심의 문제다.

Log level


일반log는 서로 다른loglevel에 따라 다른 내용을 출력합니다.개발 모델이라면 일반적으로loglevel을 debug로 설정하는 것이 편리합니다.
Elasticsearch의 구성 파일은 confg/ 디렉토리에 있습니다.모두 두 개의 파일이 있는데 하나는 elasticsearch.yml Elasticsearch 자체를 설정하는 것이다. 예를 들어clustername 등이다.하나는 logging.yml 로그를 설정하는 데 사용됩니다.
우리는 logging.yml에서 es.logger.level: INFOes.logger.level: DEBUG 로 바꾸기만 하면 된다.

Logging Requests to Elasticsearch


내가 직면한 문제는 제3자 라이브러리입니다. 리퀘스트를 봉인하여 내가 필요로 하는 정보가 부족한 것을 되돌려줍니다.clojure는 라이브러리의 원본 코드를 바꾸는 데 불편합니다.그래서 Elasticsearch의 log를 과감하게 고려하겠습니다.
방법은 다음과 같습니다.

elasticsearch.yml file


변경elasticsearch.yml을 통해logrequest의 목적을 달성할 수 있습니다.다음 코드를 추가합니다.

index.search.slowlog.threshold.query.debug: 0s
index.search.slowlog.threshold.fetch.debug: 0s
index.indexing.slowlog.threshold.index.debug: 0s

기본log 출력은 logs/elasticsearch_index_indexing_slowlog.loglogs/elasticsearch_index_search_slowlog.log 에 있습니다.tail -f를 통해 확인할 수 있습니다.
덧붙여 말하자면, Elasticsearch는 자동으로 시간에 따라 분할을 했습니다. 대박입니다.
구성이 완료되면 http://localhost: 9200/_설정이 성공했는지 확인하십시오.

Runtime Settings


또한 Elasticsearch를 재부팅하지 않고도 HTTP API를 통해 설정을 변경할 수 있습니다.
curl -XPUT "http://localhost:9200/_settings"  -H 'Content-Type: application/json' -d'
{
    "index.search.slowlog.threshold.query.debug": "0s",
    "index.search.slowlog.threshold.fetch.debug": "0s",
    "index.indexing.slowlog.threshold.index.debug": "0s"
}'

작은 매듭


Elasticsearch는 문서든 API든 사용하기 편합니다.요청에'pretty'를 넣으면 예쁜 출력이 나온다.
이런 사소한 일에서 알 수 있듯이 Elasticsearch는 매우 심혈을 기울인 제품이다.

참고


http://blog.florian-hopf.de/2... https://www.elastic.co/guide/...

좋은 웹페이지 즐겨찾기