linux 安装 Elasticsearch 7.6.2 单机集群

Scroll Down

Elasticsearch单机版上手非常简单,基本零配置即可使用,比如简单改一个外网监听即可远程使用。不需要配置集群发现等。而es单机集群发现,这里有个坑,所以,在此记录安装过程。

  1. 下载Elasticsearch

从官网下载最新版本。相关脚本都在/opt目录下哦!!!
下载 Elasticsearch 下载 kibana

cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-linux-x86_64.tar.gz

# 解压缩
tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
tar -zxvf kibana-7.6.2-linux-x86_64.tar.gz

#复制节点
mkdir es-node
cp -r elasticsearch-7.6.2 es-node/es-node-1
cp -r elasticsearch-7.6.2 es-node/es-node-2
cp -r elasticsearch-7.6.2 es-node/es-node-3

#创建data存放目录
mkdir -p es-node/es-node-data/node1-data
mkdir -p es-node/es-node-data/node2-data
mkdir -p es-node/es-node-data/node3-data

必须创建data目录,测试配置单机集群必须指定data存放位置,不配置会导致不能形成集群,都会成为单节点。

  1. 用户相关配置

Elasticsearch 不支持root用户启动,所以我们新建一个用户以及用户组

useradd es-admin
passwd es-admin
groupadd es
usermod -G es es-admin
# 有其它相关文件的,记得改目录
chown -R es-admin.es /opt/*
  1. 系统相关配置

报以下错误

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

需修改一下软硬限制,配置如下
vim /etc/security/limits.conf

*  soft  nofile  65536
*  hard  nofile  65536

如单节点启动报以下错误

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

需要修改 max_map_count,配置如下
vim /etc/sysctl.conf

vm.max_map_count=262144

使配置生效

sysctl -p
  1. Elasticsearch 配置

实际上,master都是节点直接选出来的,以下配置只是做区分

  • Master配置
    vim /opt/es-node/es-node-1/config/elasticsearch.yml
# 集群名称
cluster.name: es-admin-app
# 节点名称
node.name: node-1
# 是否为master节点 (只有权限、不一定会成为master)
node.master: true
# 是否为数据节点
node.data: true
# 设置network.bind_host 和 publish_host的默认值
network.host: 0.0.0.0
# http 绑定到端口
http.port: 9200
# 客户端(集群间通信)绑定的端口
transport.tcp.port: 9300
# 集群节点
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
# 群集中符合主机要求的节点的列表
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
# 节点数据存放路径(必须设置、否则不能形成集群)
path.data: /opt/es-node/es-node-data/node1-data
# 跨域设置
http.cors.enabled: true
http.cors.allow-origin: /.*/
  • Slave1配置
    vim /opt/es-node/es-node-2/config/elasticsearch.yml
***
node.name: node-2
http.port: 9201
transport.tcp.port: 9301
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
path.data: /opt/es-node/es-node-data/node3-data
***
  • Slave2配置
    vim /opt/es-node/es-node-2/config/elasticsearch.yml
***
node.name: node-3
http.port: 9202
transport.tcp.port: 9302
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
path.data: /opt/es-node/es-node-data/node3-data
***
  1. 启动测试

/opt/es-node/es-node-1/bin/elasticsearch -d
/opt/es-node/es-node-2/bin/elasticsearch -d
/opt/es-node/es-node-3/bin/elasticsearch -d

使用 Chrome 插件 ElasticSearch Head 查看集群状态

以上,如有问题,欢迎留言沟通