10 Easticsearch集群搭建

10 Easticsearch集群搭建

10.1 企业集群部署

常规企业ES架构图:

image-20210930141933074

10.2 角色介绍

服务器IP服务器配置安装服务担任角色
192.168.5.3 1C2G Kibana、Elasticsearch 协调节点
192.168.5.4 1C2G Kibana、Elasticsearch 主节点
192.168.5.5 1C2G Elasticsearch 数据节点
192.168.5.6 1C2G Nginx 调度Kibana

主结点:master节点主要用于集群的管理及索引 比如新增结点、分片分配、索引的新增和删除等。 数据结点:data 节点上保存了数据分片,它负责索引和搜索操作。 客户端结点:client 节点仅作为请求客户端存在,client的作用也作为负载均衡器,client 节点不存数据,只是将请求均衡转发到其它结点。

通过下边两项参数来配置结点的功能:

node.master: #是否允许为主结点
node.data: #允许存储数据作为数据结点
node.ingest: #是否允许成为协调节点

四种组合方式:

master=true,data=true:即是主结点又是数据结点
master=false,data=true:仅是数据结点
master=true,data=false:仅是主结点,不存储数据
master=false,data=false:即不是主结点也不是数据结点,此时可设置ingest为true表示它是一个客户端。

10.3 安装Elasticsearch集群

10.3.1 关闭防火墙及selinux(所有集群节点)

systemctl stop firewalld && systemctl disable firewalld

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

10.3.2 安装 java 环境(所有集群节点)

yum -y install java vim

java -version

10.3.3 安装Elasticsearch(所有集群节点)

elasticsearch的安装非常简单,首先从官网https://www.elastic.co/下载页面找到适合的版本,可选择zip、tar、rpm等格式的安装包下载

mkdir /usr/local/elk

tar zxvf elasticsearch-7.15.0-linux-x86_64.tar.gz -C /usr/local/elk/

由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,需要创建一个单独的用户用来运行elasticSearch,这里创建的普通用户是es,操作如下:

groupadd es 
useradd es -g es

然后将elasticsearch的安装目录都授权给es用户,操作如下:

chown -R es:es /usr/local/elk/elasticsearch-7.15.0

10.3.4 操作系统调优(所有集群节点)

操作系统以及JVM调优主要是针对安装elasticsearch的机器。对于操作系统,需要调整几个内核参数,fs.file-max主要是配置系统最大打开文件描述符数,建议修改为655360或者更高,vm.max_map_count影响Java线程数量,用于限制一个进程可以拥有的VMA(虚拟内存区域)的大小,系统默认是65530,建议修改成262144或者更高。将下面内容添加到/etc/sysctl.conf文件中:

cat <<EOF>>/etc/sysctl.conf
fs.file-max=655360
vm.max_map_count = 262144
EOF

另外,还需要调整进程最大打开文件描述符(nofile)、最大用户进程数(nproc)和最大锁定内存地址空间(memlock),添加如下内容到/etc/security/limits.conf文件中:

cat <<EOF>>/etc/security/limits.conf
* soft nproc 204800
* hard nproc 204800
* soft nofile 655360
* hard nofile 655360
* soft memlock unlimited
* hard memlock unlimited
EOF

最后,还需要修改/etc/security/limits.d/20-nproc.conf文件(centos7.x系统),将:

*          soft    nproc     4096
# 修改为:
* soft nproc 20480

或者直接删除/etc/security/limits.d/20-nproc.conf文件也行。

sed -i 's/4096/20480/g'  /etc/security/limits.d/20-nproc.conf 

使配置文件生效

sysctl -p

image-20211007224937462

重新连接对话框

image-20211007225011689

10.3.5 修改配置文件(所有集群节点)

cat <<EOF>>/usr/local/elk/elasticsearch-7.15.0/config/elasticsearch.yml 
# 集群名称
cluster.name: cluster-es
#节点名称, 每个节点的名称不能重复
node.name: node-1
# ip 地址, 每个节点的地址不能重复
network.host: 0.0.0.0
# 是不是有资格主节点
node.master: true
node.data: true
node.ingest: true
http.port: 9200
# head 插件需要这打开这两个配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["node-1"]
# es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.5.3:9300","192.168.5.4:9300","192.168.5.5:9300"]
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
# 数据存储地址以及日志保存位置
path.data: /data1/elasticsearch,/data2/elasticsearch
path.logs: /usr/local/elk/elasticsearch-7.15.0/logs
# 集群内同时启动的数据任务个数,默认是 2 个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
# 添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
cluster.routing.allocation.node_concurrent_recoveries: 16
# 初始化数据恢复时,并发恢复线程的个数,默认 4 个
cluster.routing.allocation.node_initial_primaries_recoveries: 16
EOF

创建存储目录并赋予启动用户权限

mkdir -p /data{1,2}/elasticsearch/
chown es:es -R /data{1,2}/

10.3.6 启动Elasticsearch(所有集群节点)

切换到es用户下启动elasticsearch集群即可。分别登录到server1、server2和server3三台主机上,执行如下操作:

su - es

sh /usr/local/elk/elasticsearch-7.15.0/bin/elasticsearch -d

其中,“-d”参数的意思是将elasticsearch放到后台运行。

10.3.7 验证elasticsearch集群的可用性

http://192.168.5.3:9200/_cat/nodes

image-20211008135823981

10.4 安装Kibana及负载调度

10.4.1 安装kibana(部分集群节点)

 tar zxvf kibana-7.15.0-linux-x86_64.tar.gz -C /usr/local/elk/

10.4.2 修改配置文件(部分集群节点)

cat <<EOF>>/usr/local/elk/kibana-7.15.0-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
EOF

10.4.3 启动kibana(部分集群节点)

nohup /usr/local/elk/kibana-7.15.0-linux-x86_64/bin/kibana --allow-root

image-20211008160723366

image-20211008160732118

10.4.4 安装Nginx(部分集群节点)

yum -y install gcc* gcc-* pcre openssl zlib pcre-devel openssl-devel mkae 

wget http://nginx.org/download/nginx-1.20.1.tar.gz

tar zxvf nginx-1.20.1.tar.gz -C /opt

cd /opt/nginx-1.20.1

./configure --prefix=/usr/local/nginx && make && make install

10.4.5 添加负载调度(部分集群节点)

vim /usr/local/nginx/conf/nginx.conf

http {

# ... 省略其它配置

upstream kibana {
server 192.168.5.3:5601;
server 192.168.5.4:5601;
}

server {
listen 80;

location / {
proxy_pass http://kibana;
}
}

# ... 省略其它配置
}

sh /usr/local/nginx/sbin/nginx

10.4.4 验证负载均衡

 

posted @ 2021-10-08 16:25  孤独的小人物  阅读(139)  评论(0编辑  收藏  举报