首页 > 其他分享 >全网最详细elasticsearch7.10.2安装手册

全网最详细elasticsearch7.10.2安装手册

时间:2022-12-07 20:05:43浏览次数:64  
标签:esuser jdk 配置 全网 手册 262144 elasticsearch security elasticsearch7.10


前言

网上关于elasticsearch的安全教程很多,但是只是局限在最基础的启动就成功就完了。今天给大家分享elasticsearch7.10.2最全安装手册,记录自己踩过的一些坑。


一、环境说明

服务器环境:CentOS 7.9
JDK环境:JDK1.8
ES版本:Elasticsearch7.10.2

说明:
大家如果是搭建ELK平台,一定要保证Elasticsearch、filebeat、kibana这些elastic体系中间件版本的一致性,不然安装过程可能会出现各种版本依赖问题。

推荐下载地址:
Elastic下载中心:​​​https://elasticsearch.cn/download/​

这里我直接下载的最新版本7.10.2。

官方文档:
​​​https://www.elastic.co/guide/en/elasticsearch/reference/7.x/targz.html​

选择对应的版本和安装的环境:

全网最详细elasticsearch7.10.2安装手册_Elastic


全网最详细elasticsearch7.10.2安装手册_elastic_02


最简步骤:

1、下载、解压elasticsearch

2、执行./bin/elasticsearch

3、执行请求curl http://localhost:9200

PS:
一般直接启动都会报错,启动失败。

二、安装步骤

1.下载、上传、解压

#由于我是重新安装,所以新建test目录,用于测试安装
mkdir /usr/local/test
cd /usr/local/test
cp /usr/local/src/elasticsearch-7.10.2-linux-x86_64.tar.gz /usr/local/test/
#如果没有执行权限,先执行赋权
#chmod a+x elasticsearch-7.10.2-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.10.2-linux-x86_64.tar.gz
cd elasticsearch-7.10.2/
cd bin
./elasticsearch

如果解压后直接启动,一般会出现一下问题:

问题一:future versions of Elasticsearch will require Java 11;

全网最详细elasticsearch7.10.2安装手册_elastic_03


当前ES版本的特性需要java11才能支持。问题二:java.lang.RuntimeException: can not run elasticsearch as root

全网最详细elasticsearch7.10.2安装手册_elasticsearch_04


ES进程不能在root用户下启动

2、Elasticsearch配置修改

Elasticsearch 主要有三个配置文件:

  • elasticsearch.yml Elasticsearch配置文件
  • jvm.options JVM配置文件
  • log4j2.properties 日志配置文件

2.1 采用内置JDK

首先根据下面的网址,查看需要安装的ES的JDK版本依赖。
​​​https://www.elastic.co/cn/support/matrix#matrix_jvm​

全网最详细elasticsearch7.10.2安装手册_elasticsearch_05


全网最详细elasticsearch7.10.2安装手册_Elastic_06


在执行./bin/elasticsearch启动命令的时候,也会主动提示我们需要什么版本的jdk才能支持当前ES版本的所有特性。

另外,ES安装包内部也包含了jdk。
有时候我们本机已经安装了jdk1.8,不希望升级太新的jdk版本,就可以直接使用ES内置的jdk。

进入es的bin目录:

vi elasticsearch-env

添加如下内容:

#使用ES内置的jdk,注意制定出自己的es安装目录
export JAVA_HOME=/usr/local/test/elasticsearch-7.10.2/jdk/
export PATH=$JAVA_HOME/bin:$PATH

#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/test/elasticsearch-7.10.2/jdk/bin/java"
else
JAVA=`which java`
fi

具体位置参考:

全网最详细elasticsearch7.10.2安装手册_elastic_07

2.2 新建用户esuser

由于es不能使用root用户启动,我们新增esuser用户。
创建esuser用户组及esuser用户:

groupadd esuser
useradd esuser -g esuser

更改elasticsearch文件夹及内部文件的所属用户及组为esuser:esuser

chown -R esuser:esuser ./elasticsearch-7.10.2

2.3 启动

#切换成esuser用户

su esuser
#启动,
cd bin
./elasticsearch
#后台启动,只需要添加-d参数
#./elasticsearch -d

2.4 测试

执行请求 curl localhost:9200

curl localhost:9200
{
"name" : "Mobile",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "M5EGtEmzRQG5ri3Yy_Wpxg",
"version" : {
"number" : "7.10.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
"build_date" : "2021-01-13T00:42:12.435326Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

2.5 停用

通过命令查看进程号:

ps -ef|grep elasticsearch
kill -9 pid

2.6 修改elasticsearch.yml

vim elasticsearch.yml

#使用一个名称描述你的集群,这里我们设置为mobile
cluster.name: mobile
# 本节点名词
node.name: node-1
# 服务ip,0表示所有本地ip,放开为允许所有网段访问es
network.host: 0.0.0.0
# 服务端口号
http.port: 9200
# es节点列表,集群时配置多个,数组
discovery.seed_hosts: ["127.0.0.1"]
# es启动时,参数选主的node列表,集群时配置多个
cluster.initial_master_nodes: ["node-1"]

#配置数据存储目录,必需保证目录存在,目录挂载的磁盘存储空间足够,且启动es进程的用户esuser具有目录的读写权限
path.data: /home/es/data
#配置日志存储目录
path.logs: /home/es/logs

2.7 修改JVM参数

一般主要是调整堆内存的大小,默认堆内存只有1g。

cd config
vi jvm.options
-Xms4g
-Xmx4g

说明:
Xmx 和 Xms不能超过物理内存的50% ;
Xmx 和 Xms不能超过32g;

官方建议:把内存的一半给Lucene+不要超过32G+关闭swap

jvm.options中的默认配置就已经对GC机制进行了优化。JDK8~13使用CMS垃圾回收器,JDK14-使用G1垃圾回收器。

全网最详细elasticsearch7.10.2安装手册_Elastic_08

2.8 其他参数配置

Elasticsearch只需要修改少量的配置就能启动,但是如果是上生产环境,还需要考虑如下配置:

​重要的Elasticsearch配置:链接​

全网最详细elasticsearch7.10.2安装手册_elastic_09

3、服务器参数优化

生产环境一定要注意下面这些系统配置

​重要的系统配置:链接​

全网最详细elasticsearch7.10.2安装手册_elasticsearch_10


下面摘取一些核心配置做下说明:

4.1关闭swapping

临时禁用:

swapoff -a

永久禁用swap:

用vi修改/etc/fstab文件,在swap分区这行前加 # 禁用掉,保存退出后重启。

全网最详细elasticsearch7.10.2安装手册_elastic_11


说明:

ES建议要关闭 swap 内存交换空间,禁用swapping。频繁的swapping 对服务器来说是致命的。

当内存交换到磁盘上,一个100微秒的操作可能变成 10毫秒,然后10 微秒的操作时延累加起来,可以看出 swapping 对于性能的影响是多么致命。

4.2配置ulimit

临时配置:

#临时设置打开的最大文件数
ulimit -n 262144
#临时设置打开的最大进程数
ulimit -u 262144

永久配置:
修改/etc/security/limits.conf文件
在文件末尾添加

* soft nofile 262144  
* hard nofile 262144
* soft nproc 262144
* hard nproc 262144

说明:
nofile打开的文件句柄数量
nproc打开的进程数量

4.3配置vm.max_map_count

切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置(如果没修改过会是一个空文件,直接添加就行):
vm.max_map_count=655360
并执行命令:
sysctl -p

三、问题记录

问题一:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

原因:文件描述符的值太小
解决:
切换到root用户
临时配置:

#临时设置打开的最大文件数
ulimit -n 262144
#临时设置打开的最大进程数
ulimit -u 262144

持久配置:
编辑limits.conf添加类似如下内容

修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效。也可以在shell上断开重连,检查修改是否生效。

*               soft    nofile          262144
* hard nofile 262144

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

解决:
切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置(如果没修改过会是一个空文件,直接添加就行):
vm.max_map_count=655360
并执行命令:
sysctl -p

问题三:
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

原因:至少要配置discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes属性中的一个。
解决:

# es节点列表,集群时配置多个,数组
discovery.seed_hosts: ["127.0.0.1"]
# es启动时,参数选主的node列表,集群时配置多个
cluster.initial_master_nodes: ["node-1"]

问题四:
Transport SSL must be enabled if security is enabled on a [basic] license. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]

原因:
如果开启了xpack安全认证配置,transport.ssl认证也需要开启。

解决:
添加xpack安排配置。具体操作后面会讲到怎么开启xpack安全配置。

在elasticsearch.yml配置文件中,添加如下配置

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

总结

elasticsearch整个安装过程其实相对简单,主要需要注意的有如下几点:
1、安装elastic体系中间件需要注意版本的一致性问题。
2、采用elasticsearch内置的jdk可以避免修改jdk的环境变量,又可以兼容elasticsearch的jdk版本依赖
3、生产环境一定要注意服务器相关参数的优化,关闭swapping,增大ulimit和max_map_count
4、查看官方文档时注意版本的匹配。


标签:esuser,jdk,配置,全网,手册,262144,elasticsearch,security,elasticsearch7.10
From: https://blog.51cto.com/u_15905482/5919990

相关文章

  • 全网首发:Seata Saga状态机设计器实战
    前言目前业界公认Saga是作为长事务的解决方案。而seata作为目前最流行的分布式事物解决方案也提供了Saga的支持。而采用Seata的Saga模式进行事物控制,核心就是通过状态机来......
  • 全网最牛最全面的全栈Jmeter性能测试之生成测试报告
    什么是JMeterjmeter是100%的java语⾔开发的,它是免费开源的软件,是⾮常优秀的性能测试⼯具和接⼝测试⼯具,⽀持主流协议的测试ps【文章末尾给大家留下了大量的福利】结构测试......
  • PowerScript语法参考手册之数据类型
    前言:本文用于PowerBuilder12.6程序员,PowerBuilder最初由Sybase发布,能很快捷开发C/S程序或者多层应用系统。SAP以58亿美元现金收购Sybase以抗衡甲骨文,PowerBuilder12.6是SAP......
  • 5702开发板用户手册
    一、底板简介1.1产品简介在这里,对这款MP5702开发板底板进行简单的功能介绍。本公司相关核心板都可与其对接,型号如MP5652(请详见用户手册)。底板+核心板的模式来设计组成......
  • 终于来了!下载神器,喜马拉雅全网音频专辑下载,支持Win/Mac!
    喜马拉雅下载助手是一款音频专辑下载神器,目前全网也就此款软件还可以下载VIP音频了,值得推荐。喜马拉雅会员FM专辑下载器它可以根据专辑ID批量解析音频列表,并且可以实现免登......
  • 电子工程师芯片手册Datasheet获取途径
    1.最直接的方法就是去原厂官网上下载。这方面各大芯片厂商为用户考虑的都比较周到,一般常用器件在各个公司的官网上都能够按照器件型号查找并方便的下载到。如​​ti​​​,NX......
  • 最好的HTML 5编码教程和参考手册分享
    有志于在泰泽上大展拳脚的同学们一点要收藏一下关于HTML5的一些好教材好文章了,这里为大家转载了一篇,方便大家记录今天我们介绍相关HTML5的参考手册,演讲稿,电子书和教程。......
  • JavaScript入门⑤-欲罢不能的对象原型与继承-全网一般图文版
    JavaScript入门系列目录JavaScript入门①-基础知识筑基JavaScript入门②-函数(1)基础{浅出}JavaScript入门③-函数(2)原理{深入}执行上下文JavaScript入门④-万物皆......
  • RHEL8关于创建Service服务的帮助手册
    Systemd手册主页Systemd服务关于搜索路径顺序和部分配置项手册Systemd服务配置语法如果想通过man查看手册的话,那么使用mansystemd.<unit|syntax|...>格式进行查看帮......
  • Kubernetes监控手册04-监控Kube-Proxy
    简介首先,请阅读文章《​​Kubernetes监控手册01-体系介绍​​》,回顾一下Kubernetes架构,Kube-Proxy是在所有工作负载节点上的。Kube-Proxy默认暴露两个端口,10249用于暴露......