我全新安装了 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
我们也遇到了这个问题,结果发现它是一个 systemd 服务覆盖文件,可能是我们在最初设置 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] 已停止
我在 /etc/security/limits.conf 中添加了以下几行,以增加所有 6 个 es 节点上的线程池
elasticsearch - nproc 2048
重启所有ES节点的服务
/etc/init.d/elasticsearch restart