Ubuntu 16.04를 새로 설치하고 Elasticsearch 5를 설치했습니다. 이제 다음을 사용하여 Elasticsearch를 시작하려고 하면
/etc/init.d/elasticsearch start
몇 초 후에 로그 파일을 읽었습니다.
[2016-11-19T08:47:31,442][ERROR][o.e.b.Bootstrap ] [shooter-1] node validation exception
bootstrap checks failed
max number of threads [1891] for user [elasticsearch] likely too low, increase to at least [2048]
인터넷 검색 끝에 다음 줄을 추가해야 한다는 결론에 도달했습니다 /etc/security/limits.conf
.
elasticsearch - nproc 2048
그러나 이렇게 변경한 후에도 여전히 동일한 오류가 발생합니다.
해당 줄의 주석 처리를 해제하라는 제안을 찾았습니다.
session required pam_limits.so
, /etc/pam.d/su
그러나 해당 줄은 주석 처리되지 않았습니다.
내가 무엇을 놓치고 있나요?
답변1
자, 드디어 찾았습니다. 핵심은 이 블로그 게시물에 있습니다.https://fredrikaverpil.github.io/2016/04/27/systemd-and-resource-limits/
해결책은 파일을 편집 /usr/lib/systemd/system/elasticsearch.service
하고 다음 줄을 추가하는 것 입니다.
LimitNPROC=2048
답변2
우리도 이 문제에 직면했고, 이는 우리가 처음 Elasticsearch를 설정할 때 생성한 시스템 서비스 오버레이 파일인 것으로 밝혀졌습니다.
적용 범위 파일은 문서에서 참조됩니다.https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html#systemd
/etc/systemd/system/elasticsearch.service.d/에서 conf 파일을 확인한 다음 해당 파일을 삭제하거나 해당 Elasticsearch 버전에 맞는 LimitNPROC=로 업데이트하세요.
답변3
ES 노드에서 elasticsearch 서비스를 확인할 때 다음 오류가 발생합니다.
[root@h ~]# /etc/init.d/elasticsearch status
elasticsearch는 죽었지만 subsys는 잠겨 있습니다.
로그를 자세히 조사한 결과 다음 오류가 발견되었습니다. [2020-03-26T07:41:03,281][ERROR][oebBootstrap] [h2-es-data-0] 노드 확인 예외[1] 부팅 확인 실패[1]: 최대 수 사용자 수[ elasticsearch] 스레드 [1024]가 너무 낮습니다. [2048] [2020-03-26T07:41:03,284][INFO][oenNode] [h2-es-data-0] 중지... [2020-03 -26T07:41:03,322][INFO][oenNode][h2-es-data-0] 중지됨
모든 6개 es 노드에서 스레드 풀을 늘리기 위해 /etc/security/limits.conf에 다음 줄을 추가했습니다.
elasticsearch - nproc 2048
모든 ES 노드의 서비스를 다시 시작합니다.
/etc/init.d/elasticsearch restart