보통 bootstrap 에러 메세지로 서버 설정 문제인 경우가 많았는데
bootstrap 에러들 해결
출처:https://hsunnystory.tistory.com/179
여기를 참고하면 설정 관련 문제는 수정할 수 있다.
나는 위의 문제들만 해결하면 기동되었는데 이번엔 해결되지 않았다.
[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. For more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.13/bootstrap-checks.html]
bootstrap check failure [1] of [1]: system call filters failed to install; check the logs and fix your configuration; for more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.13/_system_call_filter_check.html]
7버전 es 설치땐
bootstrap.system_call_filter: false 옵션을 사용하면 해결 가능했다.
8버전 부터는 해당 옵션이 없어졌다고 하여.. 어떻게 하나 고민하던중 위에 WARN로그를 제대로 안읽고 있던게 확인!
[2024-06-04T10:35:56,700][WARN ][o.e.b.JNANatives ] [node1] unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in
at org.elasticsearch.server@8.13.0/org.elasticsearch.bootstrap.SystemCallFilter.linuxImpl(SystemCallFilter.java:315)
at org.elasticsearch.server@8.13.0/org.elasticsearch.bootstrap.SystemCallFilter.init(SystemCallFilter.java:622)
at org.elasticsearch.server@8.13.0/org.elasticsearch.bootstrap.JNANatives.tryInstallSystemCallFilter(JNANatives.java:238)
at org.elasticsearch.server@8.13.0/org.elasticsearch.bootstrap.Natives.tryInstallSystemCallFilter(Natives.java:103)
at org.elasticsearch.server@8.13.0/org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:292)
See logs for more details.
요런 로그를 7버전 까지는 bootstrap.system_call_filter: false 를 쓰면 위의 로그 무시가 가능했는데 8버전은 무시가 안되는것
로그를 좀 더 자세히 보면 requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in 구문!
리눅스 커널 버전이 3.5 보다 낮아 제대로 설치가 안됬다.
커널 버전 확인하는 방법은 다음과 같다
$uname -r
3.5 보다 낮다면 커널 업데이트를 해주면 문제를 해결 할 수 있을것이다.
** 커널 버전 확인 명령어가 uname -v라고 하여서 확인했는데 버전이 아니라 날짜로 나와서 ?? 밑에 둘의 차이점을 찾아봤다.
커널 버전 확인 명령어
1. uname -r:
출력 예시: 3.5.0-54-generic
내용: 커널의 정확한 버전 번호를 표시.
사용 목적: 사용 중인 커널의 버전 번호를 확인할 때 유용.
2. uname -v:
출력 예시: #58-Ubuntu SMP Wed Oct 23 19:46:36 UTC 2013
내용: 커널이 빌드된 날짜와 시간, 컴파일된 빌드 넘버 등의 정보를 포함.
사용 목적: 주로 커널이 언제 빌드되었는지 확인할 때 유용.