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