一、新建用户,ES必须在非root用户下部署
- 登录root用户
- 新建用户
useradd es - 设置密码
passwd es es
二、安装jdk,配置jdk环境变量
注:jdk要求大于1.8 - 上传jdk到 ~
- 赋权限 chmod -R 777 ~/jdk1.8.0
- 切换root用户,编辑文件/etc/profile
vi /etc/profile - 在文件末尾添加以下内容
export JAVA_HOME=~/jdk1.8.0
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export PATH="$JAVA_HOME/bin:$PATH"
-
使生效 source /etc/profile
-
输入java -version验证
三、部署前准备
-
切换到root用户,编辑文件vi /etc/security/limits.conf,添加以下配置(es为用户名)
es soft nofile 65536
es hard nofile 131072
es soft nproc 2048
es hard nproc 4096
- 编辑vi /etc/sysctl.conf添加下面配置:
vm.max_map_count=655360
- 编辑/etc/security/limits.d/90-nproc.conf(低版本linux适用)
修改
* soft nproc 1024
为
* soft nproc 2048
- 执行以下命令,使以上配置生效
ulimit -n 65536
sysctl -p
四、集群搭建
- 切换到es用户将elasticsearch安装包分别传到/home/es下
- 依次修改配置文件vi /home/es/elasticsearch/config/elasticsearch.yml
将默认配置全部注释
在上述位置配置文件末尾添加如下配置(*注意第一个位置要有空格*):
cluster.name: ES #集群名称
node.name: node-a #节点名称,每个节点不能一样
network.host: 服务器1ip #本机ip
http.port: 9200 #http通讯端口
transport.tcp.port: 9300 #tcp通讯端口
http.cors.enabled: true #跨域
http.cors.allow-origin: "*" #跨域
node.master: true #master候选资格,是否可以选举为master
node.data: true
discovery.zen.ping.unicast.hosts: ["服务器1ip","服务器2ip","服务器3ip"]
discovery.zen.minimum_master_nodes: 2 #设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点,默认为1。一般设置为master候选节点数量 / 2 + 1,防止脑裂问题。
#gateway.recover_after_nodes: 2 #设置集群中N个节点启动时进行数据恢复,默认为1
bootstrap.memory_lock: false #linux6版本需要添加
bootstrap.system_call_filter: false #linux6版本需要添加
- 修改启动参数和日志配置(略)
- 依次启动
cd /home/es/elasticsearch/bin
sh elasticsearch
- 校验用下面命令吧。。。
1.查询所有索引
curl 'localhost:9200/_cat/indices?v'
2.删除指定索
curl -XDELETE 'IP:9200/_index?pretty'
3.删除所有索引
curl -XDELETE http://localhost:9200/_all
curl -XDELETE http://localhost:9200/*
4.查询索引下的全部数据
curl 'localhost:9200/logs-2018-05-17/_search?q=*&pretty'
5.创建索引
curl -XPUT 'localhost:9200/logs-2018-05-18?pretty'
6.查询集群是否健康
curl 'IP:9200/_cat/health?v'
7.查看节点列表
curl 'IP:9200/_cat/nodes?v'
8.检查es版本信息
curl IP:9200