1:环境
2:安装步骤
2.1 初始化操作
2.1.1 关闭防火墙与selinux
2.1.2 更改主机名
2.1.3 安装unzip和lrzsz(非必须)
2.1.4 安装java
2.1.5 安装es前置准备
2.2 安装ElasticSearch
2.2.1 单机安装
2.2.2 集群配置
2.2.3 安装ik(分词器)
2.2.4 安全配置(配置密码访问)
2.2.5 修复log4j漏洞
3:安装包
1:环境服务器系统:CentOS Linux release 7.9.2009 (Core) 服务器配置:2CPU 2G内存 服务器IP: IP:172.16.16.117,主机名:es01 IP:172.16.16.35,主机名:es02 IP:172.16.16.46,主机名:es03 ElasticSearch版本:6.8.13 Java:1.8.0_192 Kibana:6.8.13 用到的安装包: elasticsearch-6.8.13.tar.gz elasticsearch-analysis-ik-6.8.13.zip kibana-6.8.13-linux-x86_64.tar.gz java.tgz 安装包存放的路径:/tmp/install/ 程序安装目录:/data/ 备注: root# 代表在root用户下执行的命令 elastics$ 代表是在普通用户elastics下执行的命令 # 单个#号代表注释2:安装步骤 2.1 初始化操作 2.1.1 关闭防火墙与selinux
所有服务器: # 关闭防火墙 root# systemctl stop firewalld root# systemctl disable firewalld # 关闭selinux root# sed -i 's/enforcing/disabled/' /etc/selinux/config root# setenforce 02.1.2 更改主机名
# 172.16.16.117:
root# hostnamectl set-hostname es01
root# echo -e "172.16.16.117 es01n172.16.16.35 es02n172.16.16.36 es03" >> /etc/hosts
#172.16.16.35:
root# root# hostnamectl set-hostname es02
root# echo -e "172.16.16.117 es01n172.16.16.35 es02n172.16.16.36 es03" >> /etc/hosts
#172.16.16.36:
root# hostnamectl set-hostname es03
root# echo -e "172.16.16.117 es01n172.16.16.35 es02n172.16.16.36 es03" >> /etc/hosts
2.1.3 安装unzip和lrzsz(非必须)
#unzip是用来解压缩包的,lrzsz是上传包到服务器的。 root# yum install unzip lrzsz wget -y2.1.4 安装java
root # cd /tmp/install/
#创建目录
root# mkdir /data
##解压缩
root# tar -xvf java.tgz -C /data/
#添加JAVA的环境变量
root# echo -e "export JAVA_HOME=/data/javanexport PATH=$PATH:$JAVA_HOME/bin" > /etc/profile.d/java1.8.sh
#加载环境变量
root# source /etc/profile
#执行 java-version 显示下面内容就代表成功了
root# java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
2.1.5 安装es前置准备
#创建普通用户elastics,因为elasticsearch不能在root用户下运行 root# useradd elastics #禁用交换 root# swapoff -a #注释掉swap的一行 root# vi /etc/fstab #增加文件描述符,编辑limits配置文件,配置文件最后一行添加配置; #*Elasticsearch 使用了大量的文件描述符或文件句柄。文件描述符用完可能是灾难性的,并且很可能会导致数据丢失。* #增加线程数 #*Elasticsearch 使用多个线程池来执行不同类型的操作。重要的是它能够在需要时创建新线程。确保 Elasticsearch 用户可以创建的线程数至少为 4096。* root# vi /etc/security/limits.conf +$ #File Descriptors elastics soft nofile 65536 elastics hard nofile 65536 #Number of threads * hard nproc 4096 #调整虚拟内存,编辑sysctl.conf,配置文件最后一行添加配置; #*Elasticsearchmmapfs默认使用一个目录来存储它的索引。默认操作系统对 mmap 计数的限制可能太低,这可能会导致内存不足异常。* root# vi /etc/sysctl.conf +$ vm.max_map_count=655360 root# sysctl -p # 重启服务器,上面都修改完成后重启一下服务器 root# reboot2.2 安装ElasticSearch 2.2.1 单机安装(单机安装是集群安装的前提)
#下载包请查看“3:安装包”,这里就不演示了 #172.16.16.117服务器执行以下内容 #安装elasticSearch root# cd /tmp/install root# tar -zxvf elasticsearch-6.8.13.tar.gz -C /data/ root# cd /data root# mv elasticsearch-6.8.13 elasticsearch root# cd /data/elasticsearch/config root# mv elasticsearch.yml elasticsearch.yml.bak.install ##修改配置文件 root# vi elasticsearch.yml #集群名字 cluster.name: es-test #node节点的名字 node.name: es-01 #数据存放目录 path.data: /data/elasticsearch/data #日志存放目录 path.logs: /data/elasticsearch/logs #监听的ip network.host: 0.0.0.0 http.port: 9200 #启动 root# chown elastics. /data/elasticsearch -R root# su - elastics elastics$ /data/elasticsearch/bin/elasticsearch -d ##注意本次没有更改jvm参数,因为演示的服务器配置为2cpu2G内存,所以不需要调整使用es默认jvm参数就可以。如果你的配置较高或较小需要调整jvm参数,配置文件在/data/elasticsearch/config/jvm.options #本文档使用内存为1G -Xms1G -Xmx1G2.2.2 集群配置
#停止172.16.16.117上的es服务
root# ps -ef |grep ps -ef |grep elasticsearch
root# pkill {PID}
#清理数据
root# rm -rf /data/elasticsearch/data/*
root# rm -f /data/elasticsearch/logs/*
#将es拷贝到另外两台机器(es02:172.16.16.35;es03:172.16.16.36)
root# scp -r elasticsearch es02:/data/
root# scp -r elasticsearch es03:/data/
#修改配置文件
##修改es01:172.16.16.117的es配置文件
root# vi /data/elasticsearch/config/elasticsearch.yml
#
#集群名字
cluster.name: es-test
#node节点的名字
node.name: es-01
#数据存放目录
path.data: /data/elasticsearch/data
#日志存放目录
path.logs: /data/elasticsearch/logs
#监听的ip
network.host: 0.0.0.0
#端口
http.port: 9200
##集群配置##
#是不是有资格成为主节点
node.master: true
#是否存储数据,如果是生产的话建议数据节点和主节点分开。如果生产的话某个节点是主节点还是存储节点的话,压力是很大的
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#内部节点之间沟通端口
transport.tcp.port: 9300
discovery.zen.ping_timeout: 10s
discovery.zen.ping.unicast.hosts: ["172.16.16.117:9300","172.16.16.35:9300","172.16.16.36:9300"]
#es02:172.16.16.35的es配置文件
root# vi /data/elasticsearch/config/elasticsearch.yml
#集群名字
cluster.name: es-test
#node节点的名字,集群主要改这里
node.name: es-02
#数据存放目录
path.data: /data/elasticsearch/data
#日志存放目录
path.logs: /data/elasticsearch/logs
#监听的ip
network.host: 0.0.0.0
#端口
http.port: 9200
##集群配置##
#是不是有资格成为主节点
node.master: true
#是否存储数据,如果是生产的话建议数据节点和主节点分开。如果生产的话某个节点是主节点还是存储节点的话,压力是很大的
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#内部节点之间沟通端口
transport.tcp.port: 9300
discovery.zen.ping_timeout: 10s
discovery.zen.ping.unicast.hosts: ["172.16.16.117:9300","172.16.16.35:9300","172.16.16.36:9300"]
#es03:172.16.16.36的es配置文件
root# vi /data/elasticsearch/config/elasticsearch.yml
#集群名字
cluster.name: es-test
#node节点的名字,集群主要改这里
node.name: es-03
#数据存放目录
path.data: /data/elasticsearch/data
#日志存放目录
path.logs: /data/elasticsearch/logs
#监听的ip
network.host: 0.0.0.0
#端口
http.port: 9200
##集群配置##
#是不是有资格成为主节点
node.master: true
#是否存储数据,如果是生产的话建议数据节点和主节点分开。如果生产的话某个节点是主节点还是存储节点的话,压力是很大的
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#内部节点之间沟通端口
transport.tcp.port: 9300
discovery.zen.ping_timeout: 30s
discovery.zen.ping.unicast.hosts: ["172.16.16.117:9300","172.16.16.35:9300","172.16.16.36:9300"]
#启动服务
root# chown elastics. /data/elasticsearch/ -R
root# su - elastics
elastics$ /data/elasticsearch/bin/elasticsearch -d
#验证 如果是这样就代表成功了
# curl http://172.16.16.117:9200/_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1650268171 07:49:31 es-test green 3 3 0 0 0 0 0 0 - 100.0%
2.2.3 安装ik(分词器)
#es01执行
#解压analysis-ik
root# mkdir /data/elasticsearch/plugins/analysis-ik
root# unzip /tmp/es/elasticsearch-analysis-ik-6.8.13.zip -d /data/elasticsearch/plugins/analysis-ik/
root# chown elastics. /data/elasticsearch/ -R
#将这个文件传输到es02和es03
root# scp -r /data/elasticsearch/plugins/analysis-ik es02:/data/elasticsearch/plugins/
root# scp -r /data/elasticsearch/plugins/analysis-ik es03:/data/elasticsearch/plugins/
#重启服务,三台服务器都执行
root# pkill {espid}
root# chown elastics. /data/elasticsearch/ -R
root# su - elastics
elastics$ /data/elasticsearch/bin/elasticsearch -d
#查看是否有ik
elastics$ grep "analysis-ik" /data/elasticsearch/logs/es-test.log
2.2.4 (安全配置)配置密码访问
#如果开启安全的话,集群间需要证书
1、创建ca(es01执行)
root# cd /data/elasticsearch/config/
#一路回车就行
root# /data/elasticsearch/bin/elasticsearch-certutil ca
2、签发证书(es01执行)
root# cd /data/elasticsearch/config/
#一路回车就行
root# /data/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
3、配置文件添加配置
#es01、es02、es03都添加以下配置
root# vi /data/elasticsearch/config/elasticsearch.yml +$
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
4、将证书拷贝到es02和es03
root# scp /data/elasticsearch/config/elastic-* es02:/data/elasticsearch/config/
5、重启应用
root# pkill {espid}
root# chown elastics. /data/elasticsearch/ -R
root# su - elastics
elastics$ /data/elasticsearch/bin/elasticsearch -d
6、配置密码 我这里配置的密码是:QWEAqarjal@12aaa
elastics$/data/elasticsearch/bin/elasticsearch-setup-passwords interactive
#将密码复制一下,然后执行上面的命令,一路粘贴回车就行。提示下面这个就是完成了
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
#测试,任何用户下都可以,执行这个命令如果显示集群,那么就可以了。
curl --user elastic:QWEAqarjal@12aaa -XGET http://es01:9200/_cat/health?v
2.2.5 修复log4j漏洞
#解压apache-log4j-2.17.0-bin.tar.gz #替换/data/elasticsearch/lib下的包3:安装包
#elasticsearch官网包地址 #https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.13.tar.gz #analysis分词器 #https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.8.13 #log4j包 #https://archive.apache.org/dist/logging/log4j/2.17.0/apache-log4j-2.17.0-bin.tar.gz #百度网盘,pan后面自己添加baidu.com #链接:https://pan/s/1XOocHwO79SivTrBjGPaPhw #提取码:a134
觉得写的不错,加个关注呗



