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 立刻重启