下载对应的版本一般看你客户端引用的是什么版本我这里下载的是7.6.2
官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch
源码安装-环境准备:在etc/hosts文件添加3台主机
node-001 192.168.1.81
node-002 192.168.1.82
node-003 192.168.1.83
将上传的包放到一个目录底下我是放在 /data/elk
解压包 tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
系统设置
设置内核参数
#Elasticsearch mmapfs默认使用目录来存储其索引。默认的操作系统对mmap计数的限制可能太低,这可能会导致内存不足异常。
vi /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p #执行命令sysctl -p生效
当前用户每个进程最大同时打开文件数
#查看硬限制
ulimit -Hn
ulimit -Sn
#通常情况下如果值是4096启动ES时会报如下错误
#max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改配置文件
vi /etc/security/limits.conf
* hard nofile 65537
* soft nofile 65536
sysctl -p
修改es的配置文件
节点1
vi config/elasticsearch.yml
cluster.name: elk # 集群名称
node.name: node-001 # 节点名称
path.data: /opt/elk/data # 自定义数据目录
path.logs: /opt/elk/logs # 自定义logs文件目录
network.host: 0.0.0.0 # 配置那些ip可以访问
http.port: 9200 # 配置端口
discovery.seed_hosts: ["192.168.1.81:9300", "192.168.1.82:9300","192.168.1.83:9300"] # 这是配置集群访问端口的,也可以配置为node-001......之类的只要配置了hosts就行,他会自动拼接ip:9300
cluster.initial_master_nodes: ["node-001", "node-002","node-003"] # 配置节点信息。我上边节点名称用了node-001...这边就配置node-001...
节点2:
######## node-002
cluster.name: elk # 集群名称
node.name: node-002 # 节点名称
path.data: /opt/elk/data # 自定义数据目录
path.logs: /opt/elk/logs # 自定义logs文件目录
network.host: 0.0.0.0 # 配置那些ip可以访问
http.port: 9200 # 配置端口
discovery.seed_hosts: ["192.168.1.81:9300", "192.168.1.82:9300","192.168.1.83:9300"] # 这是配置集群访问端口的,也可以配置为node-001......之类的只要配置了hosts就行,他会自动拼接ip:9300
cluster.initial_master_nodes: ["node-001", "node-002","node-003"] # 配置节点信息。我上边节点名称用了node-001..
节点3:
cluster.name: elk # 集群名称
node.name: node-003 # 节点名称
path.data: /opt/elk/data # 自定义数据目录
path.logs: /opt/elk/logs # 自定义logs文件目录
network.host: 0.0.0.0 # 配置那些ip可以访问
http.port: 9200 # 配置端口
discovery.seed_hosts: ["192.168.1.81:9300", "192.168.1.82:9300","192.168.1.83:9300"] # 这是配置集群访问端口的,也可以配置为node-001......之类的只要配置了hosts就行,他会自动拼接ip:9300
cluster.initial_master_nodes: ["node-001", "node-002","node-003"] # 配置节点信息。我上边节点名称用了node-001...这边就配置node-001...
创建ES需要的用户
root权限是直接启动不了ES的,所以需要创建启动的用户
用户名是elsearch 密码是elsearch
useradd elsearch && echo "elsearch" | passwd --stdin "elsearch" # 创建一个普通用户
chown -R elsearch:elsearch /data/elk/ # 给es源码换一下所属组和主
启动es集群 启动3台机器的es
./bin/elasticsearch -d # 后台运行启动(第一次启动可以先不加-d前台运行看下有没有问题和报错
注意
7点多以后es需要jdk11版本如果是jdk1.8会报错这里是使用了es自带的jdk删除elasticsearch-env文件里面的
# now set the path to java
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi