安装ELK一定要版本一致!,不然会出现各种意想不到的问题,我已经踩过坑了!大坑!
问题一: 启动内存不足 解决: 编辑安装目录/elasticsearch-5.1.1/config下的jvm.options #-Xms2g(默认是2g) #-Xmx2g(默认是2g) -Xms128m -Xmx128m
问题二: 不能用root启动,需新建用户
# 添加一个用户组 [root@localhost root]# groupadd XXX # 添加一个用户,-g是在用户组下 -p是密码 [root@localhost local]# useradd elk -g XXX -p XXX # 进入es的安装目录 [root@localhost local]# cd /usr/local/elasticsearch # 给用户XXX授权 [root@localhost local]# chown -R XXX:XXX elasticsearch-5.1.1/ # 切换到XXX用户 [root@localhost elasticsearch]# su XXX # 再次启动 [XXX@localhost elasticsearch]$ ./bin/elasticsearch问题三:
Exception in thread "main" ElasticsearchParseException[malformed, expected settings to start with 'object', instead was [VALUE_STRING]] at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:70) at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:50) at org.elasticsearch.common.settings.loader.YamlSettingsLoader.load(YamlSettingsLoader.java:50) at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:938) at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:927) at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:102) at org.elasticsearch.bootstrap.Bootstrap.initialEnvironment(Bootstrap.java:230) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) at org.elasticsearch.cli.Command.main(Command.java:62) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82)注意yml配置文件里的任意配置 :后一定要加空格否则启动失败
问题四:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]elasticsearch进程的最大文件描述符[4096]太低,请至少增加到[65536] 解决: 编辑 /etc/security/limits.conf,添加: soft nofile 65536 hard nofile 65536 添加完后重启服务器
limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。 limits.conf的格式如下: username|@groupname type resource limit username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。 type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。 resource: core - 限制内核文件的大小 date - 最大数据大小 fsize - 最大文件大小 memlock - 最大锁定内存地址空间 nofile - 打开文件的最大数目 rss - 最大持久设置大小 stack - 最大栈大小 cpu - 以分钟为单位的最多 CPU 时间 noproc - 进程的最大数目 as - 地址空间限制 maxlogins - 此用户允许登录的最大数目 要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有: session required /lib/security/pam_limits.so
问题五:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]最大虚拟内存区域vm.max_map_计数[65530]太低,至少增加到[262144] 解决: 编辑 /etc/sysctl.conf文件最后添加一行 vm.max_map_count=262144 然后重启服务器
最后浏览器访问测试成功(记得防火墙开启9200端口) 问题六:
别忘了关闭防火墙,或者放开所需端口
节点发现不了,我安装的时候看了某视频教程,给主节点设为了1,
discovery.zen.minimum_master_nodes: 1结果运行的时候就给了提示
value for setting “discovery.zen.minimum_master_nodes” is too low. This can result in data loss! Please set it to at least a quorum of master-eligible nodes (current value: [1], total number of master-eligible nodes used for publishing in this round: [2])
设定值“discovery.zen.minimum_master_节点“太低了。这会导致数据丢失!请将其至少设置为符合主机条件节点的仲裁(当前值:[1],此轮用于发布的符合主机条件的节点总数:[2])
果不其然,运行后一直只能发现子节点中的一个,然后我修改了nodes为3,重启成功(记得等一会给他们自动发现彼此的时间) 问题七: ik中文分词器要跟elasticsearch一致,不然启动失败
问题八 集成到springboot时注意版本兼容,我都用的2.0.4,我的es版本5.*