ES部署三主集群详细教程

集群安装教程

安装模式为:三主

1、所需文件:

文件名 作用
elasticsearch-6.8.5.tar.gz es安装包
jdk-8u291-linux-x64.tar.gz jdk8
elasticsearch-analysis-ik-6.8.5.zip ik分词
certificates.tar 证书文件
search-guard-6-6.8.5-25.5.zip 安全认证

2、命令解读:

命令 作用
tar -zxvf elasticsearch-6.5.4.tar.gz 解压.gz文件
tar -xvf certificates.tar 解压.tar文件
curl 10.250.10.133:9200/_cluster/stats?pretty 查看10.250.10.133集群状态
curl -XGET 'http://10.250.10.133:9200/_cat/nodes 查看10.250.10.133集群节点
./elasticsearch-plugin install -b file:///search-guard-6-6.2.3-23.0.zip 使用es安装插件
./hash.sh -p pansoft20 生成hash密码
sh ./sgadmin.sh -cd /data/ELK/elasticsearch-6.8.5/plugins/search-guard-6/sgconfig/ -nhnv -icl -cacert /data/ELK/elasticsearch-6.8.5/config/certificates/root-ca.pem -cert /data/ELK/elasticsearch-6.8.5/config/certificates/kirk.pem -key /data/ELK/elasticsearch-6.8.5/config/certificates/kirk-key.pem 启动集群后,对集群修改密码
exit 退出

3、安装

1、集群部署

1、解压

以下所有操作都需要在三台机器执行,不过配置会有细微差别,安全认证位置会有操作上的出入,具体看描述,一下配置家目录为/data/ELK

# 三台机器:安装jdk,这里要安装8以上的版本
tar -zxf jdk-8u291-linux-x64.tar.gz -C /data/ELK
# 三台机器:解压文件
tar -zxf elasticsearch-6.5.4.tar.gz -C /data/ELK

# 三台机器:修改环境变量
vim /etc/profile

# JAVA
export JAVA_HOME=/data/ELK/jdk1.8.0_291
export PATH=${JAVA_HOME}/bin:$PATH
# ES
export ES_HOME=/data/ELK/elasticsearch-6.8.5
export PATH=${ES_HOME}/bin:$PATH

# 三台机器:更新环境变量
source /etc/profile
2、修改基础配置
# 三台机器:
vim /etc/security/limits.conf
# 在limits.conf文件中添加如下配置
* soft core 0
* hard core 0
* soft nproc 655350
* hard nproc 655350
* soft nofile 655350
* hard nofile 655350
* soft memlock unlimited
* hard memlock unlimited

# 三台机器:
vim  /etc/sysctl.conf

# 添加如下配置:
vm.max_map_count=262144


# 三台机器:执行sudo sysctl -p 将sysctl配置文件载入
sudo sysctl -p 

3、修改es配置
# 三台机器:修改jvm内存
vim /data/ELK/elasticsearch-6.8.5/config/jvm.options
# 根据实际情况修改jvm使用内存大小
-Xms8g
-Xmx8g

# 三台机器:修改es核心配置文件
vim /data/ELK/elasticsearch-6.8.5/config/elasticsearch.yml
# 核心文件的配置如下:

ES核心配置文件

#集群的名称  
cluster.name: soft
#节点名称,其余两个节点分别为soft-node-134 和soft-node-135
node.name: soft-node-133
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master  
node.master: true
#允许该节点存储数据(默认开启)  
node.data: true
#索引数据的存储路径  
path.data: /data/ELK/elasticsearch-6.8.5/data
#日志文件的存储路径  
path.logs: /data/ELK/elasticsearch-6.8.5/logs
#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap  
bootstrap.memory_lock: true
#绑定的ip地址  
network.host: 0.0.0.0
#设置对外服务的http端口,默认为9200  
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300   
transport.tcp.port: 9300
#Elasticsearch将绑定到可用的环回地址,并将扫描端口9300到9305以尝试连接到运行在同一台服务器上的其他节点。  
#这提供了自动集群体验,而无需进行任何配置。数组设置或逗号分隔的设置。每个值的形式应该是host:port或host  
#(如果没有设置,port默认设置会transport.profiles.default.port 回落到transport.tcp.port)。  
#请注意,IPv6主机必须放在括号内。默认为127.0.0.1, [::1]  
discovery.zen.ping.unicast.hosts: ["10.250.60.133", "10.250.60.134", "10.250.60.135"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失  
discovery.zen.minimum_master_nodes: 2

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,Content-Type

#------------有了这个设置,最久未使用(LRU)的 fielddata 会被回收为新数据腾出空间   
indices.fielddata.cache.size: 40%
4、更改es权限

因为es不能使用root用户进行启动,所以这里需要创建新用户,并把所属主和组分给新用户

# 三台机器:创建用户 es  这里就不给他添加密码了
useradd es

# 三台机器:将es整个文件的权限分给es用户
chowm -R es:es /data/ELK   # 为了方便直接把/data/ELK目录给了es
5、启动es
# 进入es用户
su es
# 三台机器:启动es
# 1、前台启动:这种情况一般都是第一次启动,然后看看会不会报错
/data/ELK/elasticsearch-6.8.5/bin/./elasticsearch
# 2、后台启动:集群启动正常运行就可以使用后台启动了
6、查看集群状态
# 三台机器:针对一个节点进行查看
curl -XGET 'http://20.20.60.135:9200/_cat/nodes?v&pretty'

# 三台机器:查看当前节点的状态
curl -u admin http://20.20.60.133:9200

2、安装分词器

安装分词器要把集群停掉

# 杀死集群
ps -ef | grep elast

# 杀死
kill -9 pid
# 安装ki分词
/data/ELK/elasticsearch-6.8.5/bin/./elasticsearch-plugin install -b file:///data/ELK/elasticsearch-analysis-ik-6.8.5.zip

3、认证

1、安全认证
# 三台机器:安装证书
/data/ELK/elasticsearch-6.8.5/bin/./elasticsearch-plugin install -b file:///data/ELK/search-guard-6-6.8.5-25.5.zip

# 三台机器:解压证书文件
tar -xvf certificates.tar -C /data/ELK/elasticsearch-6.8.5/config/


# 注意以下命令只能在一台机器上执行

# 一台机器:生成hash密码
/data/ELK/elasticsearch-6.8.5/plugins/search-guard-6/tools/./hash.sh -p admin

# 这里会生生成一串密码一定要切记保存下来,下个密码是你访问es的密码

# 三台机器:修改密码
vim /data/ELK/elasticsearch-6.8.5/plugins/search-guard-6/sgconfig/sg_internal_users.yml

# 修改第一个admin用户,修改内容是把admin的密码改成你的上一步生成的hash密码
admin:
#readonly: true
hash: $2y$12$M2CtRsFdoWQa4LNNt9Nxf		 # 这里是你要改的密码
roles:
    - admin
  attributes:
    #no dots allowed in attribute names
    attribute1: value1
    attribute2: value2
    attribute3: value3
searchguard.ssl.transport.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.transport.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.transport.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.http.enabled: false
searchguard.ssl.http.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.http.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.http.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.allow_unsafe_democertificates: true
searchguard.allow_default_init_sgindex: true
searchguard.authcz.admin_dn:
  - CN=kirk,OU=client,O=client,L=test,C=de
searchguard.enable_snapshot_restore_privilege: true
searchguard.check_snapshot_restore_write_privileges: true
searchguard.restapi.roles_enabled: ["sg_all_access"]
xpack.security.enabled: false
2、修改密码
# 1、启动集群;修改密码必须要启动集群
/data/ELK/elasticsearch-6.8.5/bin/./elasticsearch -d
# 2、修改密码
sh ./sgadmin.sh  -cd /data/ELK/elasticsearch-6.8.5/plugins/search-guard-6/ -nhnv -icl -cacert /data/ELK/elasticsearch-6.8.5/config/certificates/root-ca.pem -cert  /data/ELK/elasticsearch-6.8.5/config/certificates/kirk.pem -key /data/ELK/elasticsearch-6.8.5/config/certificates/kirk-key.pem

4、访问集群

curl -u admin http://ip:9200

猜你喜欢

转载自blog.csdn.net/qq_47291265/article/details/119353583
今日推荐