集群安装教程
安装模式为:三主
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