Elasticsearch 本地单机生产配置

本地安装

创建启动用户

elasticsearch不能由root用户启动
安全性:以root用户身份启动Elasticsearch会增加系统受到攻击的风险。Elasticsearch的进程可能会受到来自外部的恶意攻击,如果以root用户身份启动,攻击者可能会获取到root权限,从而对系统造成严重的损害。
最小权限原则:根据最小权限原则,任何程序都应该以最低权限来运行。以root用户身份启动Elasticsearch意味着它拥有了系统上的最高权限,这可能导致意外的权限问题和系统不稳定。

# 创建es
adduser es

# 设置密码
passwd es

# 切换到es用户
su es

下载

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz

解压安装

tar -zxf elasticsearch-7.10.2-linux-x86_64.tar.gz

基础配置

进入elasticsearch-root/config目录,进行基础配置,包括集群名、节点名、文件存储目录等。

cd /elasticsearch-root/config
vi elasticsearch.yml

# 集群名字
cluster.name: es-cluster

# 单节点
discovery.type: single-node

# 节点名字
node.name: node-1

bootstrap.memory_lock: true

# 数据文件存储目录,可以设置多个地址,逗号分隔
# 默认为/elasticsearch-root/data,可不配置
#path.data: /path/to/data

# 日志文件存储目录
# 默认为/elasticsearch-root/logs,可不配置
#path.logs: /path/to/logs

网络配置

根据实际网络环境,进行网络配置。假设现在只有一个网络接口A,IP地址为176.22.6.101,http通信端口9200,transport通信端口9300。

编辑elasticsearch.yml,新增以下配置

# 用于指定节点监听的网络接口地址。这个配置项定义了节点用于通信的网络接口地址,
# 包括HTTP REST接口、内部节点之间的通信接口、跨集群通信接口等。
# 0.0.0.0表示监听本机上所有的网络接口,可以指定为ip地址、主机名等
network.host: 0.0.0.0

# 集群与外部客户端通信端口,使用http协议
http.port: 9200

# 集群内部通信端口,使用es特定的传输协议。
# 这种内部通信是集群中各个节点之间进行数据传输、协调和协作的基础,比如复制数据、协调分片分配等
transport.port: 9300

跨域配置

如果需要跨域访问,编辑elasticsearch.yml,新增以下配置

# 允许跨域访问
http.cors.enabled: true

# 指定允许跨域请求的来源。当浏览器发起跨域请求时,会在请求头中包含Origin字段,指示请求的来源地址
# 在使用一些浏览器插件连接es时需要设置以允许访问,若没有需求则不配置
http.cors.allow-origin: "*"

# 指定允许跨域请求的自定义请求头,从而允许跨域请求中包含指定的自定义请求头
http.cors.allow-headers: "Authorization"

JVM配置

JVM有两种配置方式,一是修改config目录下面的jvm.options文件;而是在config/jvm.options.d目录下新建配置文件。这里使用第二种,只修改Xms、Xmx这两个堆内存配置。

cd elasticsearch-root/config/jvm.options.d
vi jvm.options

#​ 设置启动堆内存和最大堆内存,推荐将两个堆内存设置相同、各节点尽量一致,大小为可用物理内存的一半,但是最大不超过30GB。
# 超过30GB的堆内存可能会导致垃圾回收的停顿时间过长,因为垃圾回收需要处理更大的内存空间。
# 这可能会对es的性能和稳定性和产生负面影响。
-Xms4g
-Xmx4g

系统配置

切换到root账号,给es用户单独修改系统资源配置,elasticsearch启动时会检查系统配置,如果不符合要求无法启动。

文件打开数量限制

vi /etc/security/limits.conf

# 新增如下配置
es - nofile 65536

创建线程数限制

vi /etc/security/limits.conf

# 新增如下配置
es - nproc 4096

启用内存锁定

vi elasticsearch.yml

# 新增如下配置
bootstrap.memory_lock: true

vi /etc/security/limits.conf

# 新增如下配置
es - memlock unlimited

虚拟内存区域限制

vi /etc/sysctl.conf

# 新增如下配置
vm.max_map_count=262144

刷新配置

sysctl -p

查看虚拟内存区域数量限制

sysctl vm.max_map_count

启动实例

通过es用户启动elasticsearch

cd elasticsearch-root/bin && ./elasticsearch -d

访问实例

http://127.0.0.1:9200/

image

posted @   cd_along  阅读(233)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示