반응형

안만져본 툴들에서 기본적으로 데이터를 내가 원하는 방식으로 select해오는 것도 쉽지 않구나...


정리가 잘되있는것 같아서 공유


1. [ 엘라스틱서치 쿼리 DSL 기초 ]

https://bakyeono.net/post/2016-08-20-elasticsearch-querydsl-basic.html



2.  [ 엘라스틱서치 검색을 해보자 ] 

https://iju707.gitbooks.io/elasticsearch/content/_executing_searches.html



! 위의 문서에서는 GET 방식으로 조회하였으나, curl에서 GET의 Body를 지원하지만 실제 REST/HTTP 스펙상 GET은


Body를 사용하지 않는 것이 많기 때문에 POST로 사용할 것을 권장한다.




반응형
반응형


엘라스틱서치(ElasticSearch)에서 제공하는 API를 통해 데이터를 조회할 때 한번쯤은 'pretty?=true'가 붙어있는 것을 보았을 것이다.


단순히 search의 결과를 보기좋게 출력해주는 파라미터이다. 



[ 'pretty?=true' 사용하지 않고 조회했을 경우 ] 


> curl -XGET http://localhost:9200/logs/_search




[ 'pretty?=true' 사용 ] 


> curl -XGET http://localhost:9200/logs/_search?pretty=true




이미지를 보면 알겠지만 'pretty?=true' 사용하여 조회하는게 훨씬 결과를 보기좋게 볼 수 있다.


콘솔화면에서 데이터 조회시 유용하게 사용할 수 있을 것 같다.

반응형
반응형


엘라스틱서치(ElasticSearch) 설치 후 /bin/elasticsearch 실행하는 과정에서 다음과 같은 에러가 발생했다.


(java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed)


java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed

        at org.elasticsearch.bootstrap.SystemCallFilter.linuxImpl(SystemCallFilter.java:364) ~[elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.SystemCallFilter.init(SystemCallFilter.java:639) ~[elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.JNANatives.tryInstallSystemCallFilter(JNANatives.java:258) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Natives.tryInstallSystemCallFilter(Natives.java:113) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:111) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.3.jar:5.6.3]

        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.3.jar:5.6.3]


로그를 보아하니 커널에서 seccomp를 지원하지 않는 것 같았고 엘라스틱서치(ElasticSearch) 버전 5.2.0 이상부터는 seccomp를 기본적으로 사용하도록 되어있다고 한다.


문제 해결은 /config/elasticsearch.yml 에 들어가서 


bootstrap.system_call_filter: false


를 기입해주면 된다. 그리고 다시 실행해보면 문제 없이 엘라스틱서치가 실행되는 것을 확인할 수 있을 것이다.


에러가 발생했을 때도 엘라스틱서치는 정상적으로 구동되는것 같긴한데...정확히 어떤 부분에 영향을 미칠지 몰라 불안하긴하다. 


Seccomp(Secure Computing Mode)의 약어로 프로세스가 호출할 수 있는 system call을 제한하는 역할을 하는 것인데


해당 역할을 true로 해주었을 떄 정확하게 어떤 부분이 좋은지에 대해서는 조사가 더 필요할 것 같다.


참고 : https://github.com/elastic/elasticsearch/issues/22899

반응형

+ Recent posts