avatar

目录
elasticsearch启动异常解决汇总

Elasticsearch 启动异常解决

以下操作都要切换到root下执行

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解决: vi /etc/security/limits.conf 修改/etc/security/limits.conf文件 在文件末尾添加如下

*       hard    nofile          65536
*       soft    nofile          65536

[2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]

解决: vi /etc/security/limits.d/20-nproc.conf

*            soft          nproc     4096
*            hard          nproc     4096    
root       soft            nproc     unlimited

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决: vi /etc/sysctl.conf 在 /etc/sysctl.conf文件末尾添加
以下内容

vm.max_map_count = 2621441 

[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

解决:修改 elasticsearch.yml, 添加配置项:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

[5]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解决:修改elasticsearch.yml,取消注释保留一个节点

cluster.initial_master_nodes: ["127.0.0.1:9300"]

[6]: org.elasticsearch.bootstrap.StartupException:BindTransportException[Failed to bind to [9300]]; nested: BindException[无法指定被请求的地址];

解决:修改elasticsearch.yml,修改NetWork节点

network.host:192.168.120.135 (当前虚拟机IP)

修改 Discovery 节点

discovery.seed_hosts: ["192.168.120.135:9300"] 

[7]: org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

解决:因为安全问题elasticsearch不让用root用户直接运行,所以要创建新用户

useradd es //创建es用户
chown -R es:es /usr/local/elasticsearch-X.X.X ///把目录权限赋予给es用户

如果在终端出现-bash: grunt: command not found

解决: 需要创建软链接

ln -s /usr/elk/node-v6.11.4-linux-x64/bin/grunt(这是grunt快捷方式的路径) /usr/local/bin/grunt

执行 ulimit -a 查看当前所有的资源限制

ulimit 是一个计算机命令,用于shell启动进程所占用的资源,可用于修改系统资源限制

  • 命令常用参数:
    • -H 设置硬资源限制.
    • -S 设置软资源限制.
    • -a 显示当前所有的资源限制.
    • -c size:设置core文件的最大值.单位:blocks
    • -d size:设置数据段的最大值.单位:kbytes
    • -f size:设置创建文件的最大值.单位:blocks
    • -l size:设置在内存中锁定进程的最大值.单位:kbytes
    • -m size:设置可以使用的常驻内存的最大值.单位:kbytes
    • -n size:设置内核可以同时打开的文件描述符的最大值.单位:n
    • -p size:设置管道缓冲区的最大值.单位:kbytes
    • -s size:设置堆栈的最大值.单位:kbytes
    • -t size:设置CPU使用时间的最大上限.单位:seconds
    • -v size:设置虚拟内存的最大值.单位:kbytes
    • -u <程序数目>  用户最多可开启的程序数目

文件: /etc/security/limits.conf

重启 linux,配置生效

shutdown -r now 立刻重启

其他参考: 《elasticsearch-.yml(中文配置详解)》

文章作者: HJY
文章链接: https://hjy-dev.github.io/2020/02/29/elasticsearch%E5%90%AF%E5%8A%A8%E5%BC%82%E5%B8%B8%E8%A7%A3%E5%86%B3%E6%B1%87%E6%80%BB/
版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明来自 Kiven Blog
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论