全网最详细elasticsearch7.10.2安装手册
前言
网上关于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
选择对应的版本和安装的环境:
最简步骤:
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;
当前ES版本的特性需要java11才能支持。
问题二:java.lang.RuntimeException: can not run elasticsearch as root
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
在执行./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" ]; thenJAVA="/usr/local/test/elasticsearch-7.10.2/jdk/bin/java"
elseJAVA=`which java`
fi
具体位置参考:
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垃圾回收器。
2.8 其他参数配置
Elasticsearch只需要修改少量的配置就能启动,但是如果是上生产环境,还需要考虑如下配置:
重要的Elasticsearch配置:链接
3、服务器参数优化
生产环境一定要注意下面这些系统配置
重要的系统配置:链接
下面摘取一些核心配置做下说明:
4.1关闭swapping
临时禁用:
swapoff -a
永久禁用swap:
用vi修改/etc/fstab文件,在swap分区这行前加 # 禁用掉,保存退出后重启。
说明:
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、查看官方文档时注意版本的匹配。
全网最详细elasticsearch7.10.2安装手册相关推荐
- 全网超详细的VMware虚拟机安装Kali Linux系统以及首次启动Kali Linux系统的注意事项
文章目录 1. 简述Kali Linux 2. 下载Kali Linux的镜像文件 3. 安装Kali Linux 4. 首次启动Kali Linux 5. 其他方法安装Kali Linux 1. 简 ...
- 【 linux 从入门到放弃(全网最详细虚拟机及c7安装)】
linux 从入门到放弃(全网最详细虚拟机及c7安装) 文章目录 linux 从入门到放弃(全网最详细虚拟机及c7安装) 一.初识linux 二.linux 发展 二.linux 组成 三.linux ...
- 全网最详细的Linux下载安装教程,Windows11 Windows10安装Linux详细教程
特殊提醒: 如果操作系统为Windows 11,请使用VMware WorkStation 16.1及以上版本,否则容易出现蓝屏,系统重启等情况. Windows 10 .Windows 11 安装有 ...
- 全网最详细泛微Ecology9安装教程及安装包
一.Ecology9 安装包 E9百度网盘地址 提取码:Wang 另外附上Ecology8的安装包地址 E8百度网盘地址 提取码:Wang 二.安装步骤 2.1 选择安装路径 2.2 选择JDK安装的 ...
- texlive2020 安装_TeXLive2020 Windows 10 简要安装手册
首先从清华大学下载安装镜像.地址如下: https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/texlive2020-202 ...
- 全网超详细的下载与安装VMware虚拟机以及为什么要安装VMware虚拟机
文章目录 1. 文章引言 2. 下载VMware 3. 安装VMware 1. 文章引言 我们使用最多的系统是windows系统,因为,国内电脑厂商的操作系统(os)基本是windows系统,比如华为 ...
- cd linux 新增分区,目前国内最完整详细的 CDlinux 硬盘安装手册
最近几天在研究 cdlinux 这个小家伙,感觉不错,很好用.可以放在U盘和光盘上使用,但本人想放在CF卡上做下载机的系统使用,所以特意研究了一下该如何装在硬盘上.在网上搜了N多文章,看完后更是一头雾 ...
- win10怎么安装kali双系统 Windows下安装kali双系统安装教程 全网最详细最有效 win10安装kali linux
未经博主授权禁止转载 安装前的准备 笔记本电脑一个(本文是联想拯救者R720) 首先准备一个U盘(U盘要清空) kali的iso镜像包文件 win32diskimager系统刻录工具 DiskGeni ...
- 熬10天夜,肝出了这个PDF版“软件安装手册”(附下载)
来源:CodeSheep 全文约1100字,建议阅读18分钟 您可阅读至文末安装~ 标签:编程开发 嗯 ? woc,这个学期过了就要找工作了,之前看羊子发的那个"Java后端开发学习路线图& ...
- 易智瑞地理信息系统桌面软件10.7安装及单机版许可授权操作手册
易智瑞桌面软件10.7安装及单机版许可授权操作手册 1. 安装前注意事项 2. 软件安装 3. 软件许可授权 3.1. 在线授权 3.2. 离线授权 4. 软件解除授权 4.1. 在线解除授权 4.2 ...
最新文章
- win7网络中能看到计算机但无法连接,win7局域网内可以看到对方计算机但无法连接怎么办...
- 如何获取html页面上的按钮列表,如何从一个html页面获取单选按钮的值到另一个?...
- 翻译:如何用Cocos2d来开发简单的IPhone游戏教程
- mybatis分页查询
- 反转!奥斯卡般演技的果小云水果店耍了全世界!
- 强制浏览器使用兼容模式,Web.config,httpProtocol
- Mongoose Schemas定义中timestamps选项的妙用
- android抽奖动画,Android App中实现简单的刮刮卡抽奖效果的实例详解
- 《Access 2007开发指南(修订版)》一一1.5 什么是数据库对象
- android studio点击图片,如何在Android Studio中的模拟器图库中添加图像?
- Java面向对象编程篇5——枚举
- table表头多选框禁用 vue_Vue踩坑小记(四)
- JavaWeb07-HTML篇笔记(三)
- 谷歌浏览器用的是什么内核
- vue验证码图片显示不出来,将图片转换为base64格式显示
- 12306中前端验证身份证件(及其他证件号)的方法
- 在kile中使用Astyle插件使代码自动对齐
- 教你解决“邮件”应用不断提示输入密码的方法!
- python金融量化风险_利用 Python 进行量化投资分析 - 利率及风险资产的超额收益...
- 鲸探发布点评:7月22日发售观德亭、全家福、龙凤呈祥熏数字藏品
热门文章
- 热血江湖网通一服务器不稳定,《热血江湖》网通新服 千呼万唤始出来
- Android全面解析之Window机制
- Activity跳转并传递
- 在积分系统中可以设置哪些获取积分方式
- linux终端ppt,[转]TPP:linux终端下的ppt
- Windows Server 2012 之NIC组合(NIC Teaming)介绍
- DiskLruCache 源码分析
- 测试一拳多少公斤的软件,李小龙一拳能打出400公斤,手里双节棍有多少力量,测试后难以置信...
- 计量单位报错:消息号BM302 “未使用语言 ZH 创建单位 XXX”
- html2d缩放代码,HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述