Linux 下安装 Elasticsearch5.6.x 详细步骤以及踩坑解决方案

老王Plus 2018-10-31 17:06:05 ⋅ 766 阅读

简介

网上有各种ES版本的安装步骤和问题解决方案,但是在安装过程中还是遇到了许多问题,那么今天来整理一份详细的安装过程以及碰到的问题和心得;有什么不对的和问题希望大家留言一起讨论。

  • jdk至少需要在1.8.0_73以上版本。

  • linux的内核版本需要在2.6以上(我用的是centos7.x)

一、下载elasticsearch

cd /usr/localwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.7.tar.gz

下载成功日志输出

--2018-10-31 10:36:28--  
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.7.tar.gz Resolving artifacts.elastic.co... 54.235.82.130, 184.72.242.47, 54.235.171.120, ... Connecting to artifacts.elastic.co|54.235.82.130|:443... connected. HTTP request sent, awaiting response... 200 OKLength: 33789994 (32M) [binary/octet-stream] Saving to: “elasticsearch-5.6.7.tar.gz”100%[==========================================================>] 33,789,994  7.51M/s   in 4.7s    2018-10-31 10:36:35 (6.83 MB/s) - “elasticsearch-5.6.7.tar.gz” saved [33789994/33789994]

二、解压安装

解压命令

tar -zxvf elasticsearch-5.6.7.tar.gz

解压成功日志输出

[root@iZuf6fj49j7lt0ckj85qurZ ~]# tar -zxvf elasticsearch-5.6.7.tar.gzelasticsearch-5.6.7/
elasticsearch-5.6.7/lib/
elasticsearch-5.6.7/lib/elasticsearch-5.6.7.jar
elasticsearch-5.6.7/lib/lucene-core-6.6.1.jar
elasticsearch-5.6.7/lib/lucene-analyzers-common-6.6.1.jar
elasticsearch-5.6.7/lib/lucene-backward-codecs-6.6.1.jar
省略..................
elasticsearch-5.6.7/modules/percolator/plugin-descriptor.properties
elasticsearch-5.6.7/modules/percolator/percolator-5.6.7.jar
elasticsearch-5.6.7/modules/aggs-matrix-stats/
elasticsearch-5.6.7/modules/aggs-matrix-stats/plugin-descriptor.properties
elasticsearch-5.6.7/modules/aggs-matrix-stats/aggs-matrix-stats-5.6.7.jar
elasticsearch-5.6.7/plugins/

修改文件夹(方便寻找)

mv elasticsearch-5.6.7 elasticsearch

三、配置文件

1、配置文件说明

 jvm.options         虚拟机参数配置文件
                      配置heap内存一样
    elasticsearch.yml   主配置文件
                      cluster.name  集群名称,同一个网段自动加入
                      node.name        节点名称
                      http.port     http端口
默认情况下,Elastic 只允许本机访问,如果需要远程访问,可以修改 Elastic 安装目录的config/elasticsearch.yml文件,去掉network.host的注释,将它的值改成0.0.0.0,然后重新启动 Elastic。

2、进入配置文件目录
在memory下添加如下

bootstrap.memory_lock: falsebootstrap.system_call_filter: false

退出保存后执行如下命令:

sysctl -p

3、修改如下文件

vi /etc/security/limits.conf

在文件末尾添加如下代码

# testes为登录服务器的用户名testes soft nofile 65536
testes hard nofile 65536
testes soft nproc  4096
testes hard nproc  4096

4、创建testes 用户(root用户不能启动elasticsearch)

useradd testes
passwd 你的密码

按提示输入两次密码:你的密码

5、授权

cd /root
sudo chown -R python elasticsearch
sudo chgrp -R python elasticsearch

6、切换用户

su - python

四、启动elasticsearch

1:控制台启动(ctrl+c 后停止):

./bin/elasticsearch

1:控制台启动(ctrl+c 后停止):

./bin/elasticsearch -d

五、访问elasticsearch

http://101.132.243.207:9200/

结果


elasticsearch访问结果.png

六、踩坑

1、root 权限下启动elasticsearch 错误

错误信息

[root@iZuf6fj49j7lt0ckj85qurZ elasticsearch]# ./bin/elasticsearch
[2018-10-31T16:06:43,042][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.7.jar:5.6.7] Caused by: java.lang.RuntimeException: can not run elasticsearch as root    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.7.jar:5.6.7]    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.7.jar:5.6.7]    ... 6 more

由于ElasticSearch可以接收用户的脚本并执行,处于安全性考虑,建议创建一个单独的用户来运行ElasticSearch。当然,可以通过配置来实现root用户启动。

修改bin目录elasticsearch.in.sh文件中追加(不过不建议):

JAVA_OPTS="$JAVA_OPTS -Des.insecure.allow.root=true"
2、max virutal memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

max_map_count-error.png

原因:主要是因为ES使用的虚拟内存大小跟linux默认的大小不一样,默认的太小,需要配置更大一点

解决办法:

1、切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

然后,重新启动elasticsearch,即可启动成功。

3、外网访问失败

修改配置elasticsearch.yml
network.host: 0.0.0.0

# Set the bind address to a specific IP (IPv4 or IPv6):
##network.host: 192.168.0.1
 network.host: 0.0.0.0#
# Set a custom port for HTTP:
##http.port: 9200
4、unknown setting [vm.max_map_count] please check that any required plugins a

报错信息

java.lang.IllegalArgumentException: unknown setting [vm.max_map_count] please check that any required plugins are installed, or check the breaking changes documentation for removed settings
    at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:293) ~[elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:256) ~[elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.common.settings.SettingsModule.<init>(SettingsModule.java:139) ~[elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.node.Node.<init>(Node.java:344) ~[elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.node.Node.<init>(Node.java:245) ~[elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:233) ~[elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:233) ~[elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) [elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.7.jar:5.6.7]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.7.jar:5.6.7]
[2018-10-31T15:23:15,809][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown setting [vm.max_map_count] please check that any required plugins are installed, or check the breaking changes documentation for removed settings
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.7.jar:省略。。。。。

原因:在elasticsearch.yml 文件配置了 vm.max_map_count=262144

---------------END----------------

后续的内容同样精彩

长按关注“IT实战联盟”哦



全部评论: 0

    我有话说:

    Elasticsearch 7.9.3 发布

    Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决越来越多的用例。Elasticsearch 7.9.3 已经发布,本次更新信息如下: BUG 修复

    Lutris 0.5.8.2 发布,Linux 的游戏平台

    Lutris 0.5.8.2 已经发布。Lutris  是 Linux 环境的游戏平台,可通过游戏管理、安装以及为游戏提供最佳配置来提高 Linux 环境的游戏体验。 版本更新内容

    Linux 上可以用Windows 计算器啦

    Uno Platform 方面表示,其已经成功地将 Windows 计算器(Windows Calculator)应用移植到了 Ubuntu Linux 上,名为 Uno Calculator。他们

    VirtualBox 6.1.20 发布,支持 Linux 5.11 & 5.12

    近日,VirtualBox 发布了 6.1.20 版本,也是该软件 6.1 版本系列的第十次更新。该版本增加了对 Linux Kernel 5.11 和 5.12 的支持。而且,对于 Linux

    密码管理工具:1Password for Linux Beta发布

    1Password for Linux 首个 Beta 测试版已发布,正式版计划在明年初推出。1Password 是一款流行的密码管理软件,兼容 macOS、iOS、Windows 和

    推荐一款功能强大,开源免费的H5可视化编辑器

    H5-Dooring 是一款功能强大,开源免费的H5可视化页面配置解决方案,致力于提供一套简单方便、专业可靠、无限可能的H5落地页最佳实践。技术栈以react为主, 后台采用nodejs开发. 预览

    纯JS实现复制功能的三种方式,有

    业余时间写了一个在WX里面分享X宝优惠券的小工具,里面有用到复制T口令的功能,当时以为实现起来很....

    Linux 5.10.8 发布,最终解决了 Btrfs 的性能问题

    Linux 内核 5.10.8 已经发布。作为 Linux LTS 5.10 系列的最新版本,此次更新解决了 Btrfs 文件系统的性能问题。 Btrfs 是一种支持写入时复制

    Apache Traffic Control 5.1.2 发布,高可扩分布式 CDN 解决方案

    Apache Traffic Control 5.1.2 现已发布。Apache Traffic Control 是一个分布式、可扩展的冗余解决方案,实现了现代 CDN 的所有核心功能,可

    微软桌面开发团队成员称:不会将Windows迁移到Linux

    Canonical 桌面团队成员 Hayden Barnes 发表个人观点称,他认为微软不会将 Windows 迁移到 Linux。   近段时间以来,微软积极融合 Linux 的举措

    「传世之作」Linux命令速查手册出炉!

    查看Linux系统信息 arch      #显示机器的处理器架构(1)uname -m  #显示机器的

    高并发分布式事务的解决方案-MQ消息事务+最终一致性

    分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上

    安全攻防系列一 安全基础概念

      该系列记录学习极客时间–安全攻防技能30讲相关内容 安全的本质 安全的本质就是保护数据被合法地使用。 数据:应用最核心的东西;如用户信息、订单信息等等 合法:大到法律法规、业务

    Spring Cloud快速搭建开放平台解决方案

    基于Spring Cloud开放平台解决方案 SOP

    Alpine Linux 3.13.2 发布,面向安全的轻量级 Linux 发行版

    Alpine Linux 是一个面向安全的轻量级 Linux 发行版,该发行版以安全为理念,面向 x86 路由器、防火墙、虚拟专用网、IP 电话盒及服务器而设计。另外,不同于常见的

    Linux Kernel 5.12 rc1 发布

    Linux Kernel 5.12 rc1 已经发布。在邮件中,Linus Torvalds 表示由于美国严寒天气,其在合并窗口开始后的 6 天里是没有电的,所以曾考虑过延长合并窗口,不过他最终没有

    Debian 10.6 发布

    Debian 10.6 已发布,这是 Debian 10 "Buster" 的第六个稳定版更新,修复了部分安全问题和 bug。 除了安全方面的更新,还有针对 OpenJDK, Firefox ESR

    Redis 5.0.11、6.0.11、6.2 发布,修复 32 位系统上的整数溢出

    Redis 同时发布了 5.0.11、6.0.11 和 6.2 版本。对于使用 32 位 Redis 的用户来说,此次更新解决了一个重要的安全问题,即 32 位系统上的整数溢出((CVE-2021