반응형

안만져본 툴들에서 기본적으로 데이터를 내가 원하는 방식으로 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) 키바나(Kibana)


데이터를 다루는 사람이라면 한번쯤은 ELK(ElasticSeach + LogStash + Kibana) 들어봤거나 다루고 있을 것이다.


내가 지금 만지고 있는 시스템에서는 nginx, fluentd, kafka, cassandra 데이터를 처리하고 있다보니 ELK 다룰 기회가 없었다. 


최근 nginx 통해 유입되는 데이터량과 카프카 + 카뮈(camus, 카프카에서 hdfs 데이터를 배치로 옮겨주는 역할) 데이터량에 대한 


모니터링이 필요할 같다는 생각이 들었다. 



금방하겠지 생각하고 로컬에 엘라스틱서치(ElasticSearch), Kibana설치하고 데이터 놓고 그래프 그리려는데 생각보다는 쉽지 않았다.


엘라스틱서치(ElasticSearch) 키바나(Kibana) 설치 실행까지는 굉장히 쉬웠고 단조롭게 진행되었다.


curl 엘라스틱서치(ElasticSearch) 데이터를 넣고 키바나로 그래프를 그리는 부분에서 많은 시간을 소모하게 되었다.



아무래도 누군가의 설명과 도움없이 진행하다보니 시행착오를 많이 겪었다.


결국 내가 원하는대로 데이터를 넣고 그래프를 넣는데 까지는 성공을 했지만 


효율적으로 엘라스틱서치(ElasticSearch) 키바나를 사용하기 위해서는 학습이 필요하겠다라는 생각이 들었다.



앞으로 엘라스틱서치(ElasticSearch) 가까워 같다는 느낌이 들었고 


짧게 만져봤지만 앞으로 새로 구축하는 시스템에는 검색 데이터스토리지로도 활용하는 것도 굉장히 좋을 같다는 생각이 들었다.


일단 책부터 지르자~gogo!!!



반응형
반응형


엘라스틱서치(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