首页 > 其他分享 >elasticsearch8单机/集群部署

elasticsearch8单机/集群部署

时间:2024-07-29 10:51:08浏览次数:14  
标签:node02 node01 单机 es8 集群 elasticsearch path elasticsearch8

目录

一、ES8单节点部署

集群架构

主机名 ip 版本
node01 10.0.0.14 8.10.4
node02 10.0.0.15 8.10.4
node03 10.0.0.16 8.10.4

1.环境准备

1.系统优化
略

2.es依赖配置
#修改文件打开数量上线,修改后需要断开会话
cat >> /etc/security/limits.d/es7.conf <<EOF
*	soft	nofile	65535
*	hard	nofile	131070
*	hard	nproc	8192
EOF

[root@node01 ~]# ulimit -Sn
65535

[root@node01 ~]# ulimit -Hn
131070

#调大内核虚拟内存映射值
cat >> /etc/sysctl.d/es.conf <<EOF
vm.swappiness=1
vm.max_map_count=524288
EOF

sysctl -q vm.max_map_count
sysctl -f  /etc/sysctl.d/es.conf
sysctl -q vm.max_map_count

2.创建用户和目录

useradd -u 2024  es8
mkdir /es8/soft #安装目录
mkdir /es8/data #数据目录
mkdir /es8/logs #日志目录

3.下载解压安装包

3.1 下载es8

wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.10.4-linux-x86_64.tar.gz

3.2 解压安装

tar -xf elasticsearch-8.10.4-linux-x86_64.tar.gz -C /es8/soft

3.3 授权目录

chown  -R  es8.es8  /es8

4.修改配置文件

cluster.name: my-elk
node.name: node02
path.data: /es8/data
path.logs: /es8/logs
network.host: 0.0.0.0
http.port: 9200

注意:关于ssl等其他的配置,会默认开启。

5.使用system启动es

cat >> /usr/lib/systemd/system/es8.service << EOF
# /usr/lib/systemd/system/es8.service
[Unit]
Description=es2023
After=network.target

[Service]
Type=simple
ExecStart=/es8/soft/elasticsearch-8.10.4/bin/elasticsearch
User=elasticsearch
LimitNOFILE=131070

[Install]
WantedBy=multi-user.target
EOF

5.1 使用oracle-jdk启动(二选一)

5.1.1 部署jdk

tar -xf jdk-8u291-linux-x64.tar.gz  -C /es8/soft


#添加环境变量
cat >>  /etc/profile.d/jdk.sh  << EOF
#!/bin/bash
export JAVA_HOME=/es8/soft/jdk1.8.0_291
export PATH=$PATH:$JAVA_HOME/bin
EOF

source /etc/profile.d/jdk.sh
cat >> /usr/lib/systemd/system/es8.service << EOF
[Unit]
Description=es2023
After=network.target

[Service]
Type=simple
Environment=JAVA_HOME=/es8/soft/jdk1.8.0_291 #oraclejdk
ExecStart=/es8/soft/elasticsearch-8.10.4/bin/elasticsearch
User=elasticsearch
LimitNOFILE=131070

[Install]
WantedBy=multi-user.target
EOF

6.查看日志

tail -f /es8/logs/my-elk.log

image.png

7.访问验证

image.png

8.重置elastic密码

8.1 重置随机密码

cd /es8/soft/elasticsearch-8.10.4/bin
./elasticsearch-reset-password -u elastic

image.png
登录成功
image.png

8.2 自定义密码

./elasticsearch-reset-password -u elastic -i

image.png

9.jvm内存调整

根据实际情况调整

vim  /es8/soft/elasticsearch-8.10.4/config/jvm.options

image.png

9.1 重启验证

systemctl restart es8

ps -ef | grep elastic | grep Xms256m

image.png

二、ES8集群部署

1.环境准备

所有节点执行

1.系统优化
略

2.es依赖配置
#修改文件打开数量上线,修改后需要断开会话
cat >> /etc/security/limits.d/es7.conf <<EOF
*	soft	nofile	65535
*	hard	nofile	131070
*	hard	nproc	8192
EOF

ulimit -Sn
ulimit -Hn


#调大内核虚拟内存映射值
cat >> /etc/sysctl.d/es.conf <<EOF
vm.swappiness=1
vm.max_map_count=524288
EOF

sysctl -q vm.max_map_count
sysctl -f  /etc/sysctl.d/es.conf
sysctl -q vm.max_map_count

2.创建用户和目录

useradd -u 2024  es8
mkdir /es8/soft -p #安装目录
mkdir /es8/data -p #数据目录
mkdir /es8/logs -p #日志目录

3.安装es8

3.1 解压指定目录

tar -xf elasticsearch-8.10.4-linux-x86_64.tar.gz -C /es8/soft

3.2 授权

chown  -R  es8.es8  /es8

4.集群配置文件

注意各节点的node.name和network.host不同,es-2和es-3节点无需配置discovery.seed_hosts和cluster.initial_master_nodes。network.host也可以填写0.0.0.0

4.1 node01

cluster.name: my-es8
node.name: node01
path.data: /es8/data
path.logs: /es8/logs
network.host: 0.0.0.0
http.port: 9200
action.destructive_requires_name: true

4.2 node02

ssl配置忽略

cluster.name: my-es8
node.name: node02
path.data: /es8/data
path.logs: /es8/logs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["node01", "node02" ,"node03"]
cluster.initial_master_nodes: ["node02"]

4.3 node03

cluster.name: my-es8
node.name: node03
path.data: /es8/data
path.logs: /es8/logs
network.host: 0.0.0.0
http.port: 9200

5.node02生成token

systemctl start es8
[root@node02 bin]# ./elasticsearch-create-enrollment-token -s node
warning: ignoring JAVA_HOME=/es8/soft/jdk1.8.0_291; using bundled JDK
eyJ2ZXIiOiI4LjEwLjQiLCJhZHIiOlsiMTAuMC4wLjE1OjkyMDAiXSwiZmdyIjoiMTE0OWE4ZjI1MjRlZDY2ZDU1OTk1MjA1NTBhMGYyMWY2N2UzM2UzNDA0ZjNkNTk3MTg4OTJiMTg5NThhNWQxMiIsImtleSI6ImF6azIzWThCc3lDaWZzQXAwWTJrOlpQM19oSl9lUmMybzlrTDFrQ1pHdncifQ==

image.png

6.node01、node03加入集群

6.1 node01

[root@node01 bin]# su - es8
[es8@node01 soft]$ cd /es8/soft/elasticsearch-8.10.4/bin
[es8@node01 bin]$ ./elasticsearch --enrollment-token  eyJ2ZXIiOiI4LjEwLjQiLCJhZHIiOlsiMTAuMC4wLjE1OjkyMDAiXSwiZmdyIjoiMTE0OWE4ZjI1MjRlZDY2ZDU1OTk1MjA1NTBhMGYyMWY2N2UzM2UzNDA0ZjNkNTk3MTg4OTJiMTg5NThhNWQxMiIsImtleSI6ImF6azIzWThCc3lDaWZzQXAwWTJrOlpQM19oSl9lUmMybzlrTDFrQ1pHdncifQ==

image.png

6.2 node03

[root@node03 bin]# su - es8
[es8@node03 soft]$ cd /es8/soft/elasticsearch-8.10.4/bin
[es8@node03 bin]$ ./elasticsearch --enrollment-token  eyJ2ZXIiOiI4LjEwLjQiLCJhZHIiOlsiMTAuMC4wLjE1OjkyMDAiXSwiZmdyIjoiMTE0OWE4ZjI1MjRlZDY2ZDU1OTk1MjA1NTBhMGYyMWY2N2UzM2UzNDA0ZjNkNTk3MTg4OTJiMTg5NThhNWQxMiIsImtleSI6ImF6azIzWThCc3lDaWZzQXAwWTJrOlpQM19oSl9lUmMybzlrTDFrQ1pHdncifQ==

6.3 修改es集群配置

使用elasticsearch --enrollment-token命令加入集群后,默认配置文件discovery.seed_hosts: [“10.0.0.15:9300”],本案例中使用3节点组成es集群,3个节点即是master节点也是数据节点,接下来改为集群所有节点配置。集群初始化完成后取消cluster.initial_master_nodes配置

node01

[root@node01 ~]# egrep -v '^$|#'  /es8/soft/elasticsearch-8.10.4/config/elasticsearch.yml 
cluster.name: my-es8
node.name: node01
path.data: /es8/data
path.logs: /es8/logs
network.host: 0.0.0.0
http.port: 9200
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
discovery.seed_hosts: ["node01","node02","node03"]

node02

[root@node02 bin]# egrep -v '^$|#' ../config/elasticsearch.yml
cluster.name: my-es8
node.name: node02
path.data: /es8/data
path.logs: /es8/logs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["node01", "node02" ,"node03"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
#cluster.initial_master_nodes: ["node02"] 注释初始化配置

node03

[root@node03 bin]#  egrep -v '^$|#'   /es8/soft/elasticsearch-8.10.4/config/elasticsearch.yml 
cluster.name: my-es8
node.name: node03
path.data: /es8/data
path.logs: /es8/logs
network.host: 0.0.0.0
http.port: 9200
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
discovery.seed_hosts: ["node01","node02","node03"]

7.重启es集群

注:分别重启node01和node03

7.1 node01

cat >> /usr/lib/systemd/system/es8.service << EOF
# /usr/lib/systemd/system/es8.service
[Unit]
Description=es2024
After=network.target

[Service]
Type=simple
ExecStart=/es8/soft/elasticsearch-8.10.4/bin/elasticsearch
User=es8
LimitNOFILE=131070

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable  --now es8

7.2 node02

cat >> /usr/lib/systemd/system/es8.service << EOF
# /usr/lib/systemd/system/es8.service
[Unit]
Description=es2024
After=network.target

[Service]
Type=simple
ExecStart=/es8/soft/elasticsearch-8.10.4/bin/elasticsearch
User=es8
LimitNOFILE=131070

[Install]
WantedBy=multi-user.target
EOF

7.3 node03

cat >> /usr/lib/systemd/system/es8.service << EOF
# /usr/lib/systemd/system/es8.service
[Unit]
Description=es2024
After=network.target

[Service]
Type=simple
ExecStart=/es8/soft/elasticsearch-8.10.4/bin/elasticsearch
User=es8
LimitNOFILE=131070

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable  --now es8

7.4 查看集群日志

tail -f /es8/logs/my-es8.log

image.png

8.集群验证

8.1 查看集群状态

 curl -X GET -u elastic:123456  -k https://10.0.0.15:9200/_cat/nodes?v
 curl -X GET -u elastic:123456  -k https://10.0.0.15:9200/_cluster/health

image.png
image.png

8.2 创建索引分片

curl -XPUT -u elastic:123456  -k https://10.222.64.47:9200/test01
{
    "settings":{
        "number_of_shards": 5,
        "number_of_replicas":2
    }
}

image.png

可以看到五个分区两个副本
image.png

8.3 高可用验证

  • 当前node-3为master节点,node-1、node-2为data节点
  • 将node02关机
  • 说明:当前集群状态为黄色,表示主节点可用,副本节点不完全可用

image.png

  • 过一段时间观察,发现节点列表中看不到node-2,副本节点分配到了node-1和node-3,集群状态恢复到绿色。

重启node01节点

  • image.png

标签:node02,node01,单机,es8,集群,elasticsearch,path,elasticsearch8
From: https://www.cnblogs.com/Unstoppable9527/p/18329622

相关文章

  • Kubernetes 集群中 Pod 使用镜像的批量导出脚本
    目录动机脚本使用实例获取指定命名空间获取所有命名空间生成csv文件动机最近,由于DockerHub镜像的失效,在重新启动Pod时,拉取镜像失败,导致Pod无法正常启动。因此,我需要批量检查集群中有哪些Pod使用了官方的DockerHub镜像,并将这些镜像保存到本地的Harbor仓库中。为此,......
  • 安卓单机游戏:龙之矛内置菜单,【免费分享】白嫖!
    龙之矛是一款传统的横版卷轴RPG游戏。在游戏中玩家将探索被梦魇蹂躏的世界,和朋友一起猎杀强大的BOSS,如果你杀死了boss,那么你可以制作具有boss力量的装备。游戏内所有装备都有独特的外观,你可以用各种华丽的装备打扮你的角色。英雄会通过冒险逐渐变强,当你的角色等级更高时,学习新......
  • 【王国保卫战5:联盟】安卓/ios/pc单机游戏,无限钻
    王国保卫战5:联盟是塔防策略类游戏《王国保卫战》系列的续作。继承了前作的经典玩法和特色,并在此基础上进行了创新和拓展。玩家需要布置手中的单位来对抗汹涌攻击过来的敌人。通过召唤援军、指挥等方式,让防守方的战力得到最大程度发挥。游戏特点1、游戏设计了16个挑战性关卡......
  • 2、K8S集群监控
    目录一、KubeStateMetrics简介二、集群组件2.0、部署KubeStateMetrics2.0.1部署RBAC2.0.2部署deploy、svc2.0.3确认验证null2.1、集群组件监控2.1.1、kube-apiserver更新配置导入grafana模板2.1.2、controller-manager2.1.3、scheduler2.1.4、kube-state-metrics2.1.5、coredn......
  • 生产环境CDH集群主机加内存导致系统无法启动,重装系统后CDH数据修复的过程
    原因:因为主机扩容内存重启以后发现有七台服务器无法进入系统,重启之前Centos7的启动项被修改过导致无法重启,只能重新安装操作系统,但是HDFS的数据是保存到data盘中.系统OS:CentOSLinuxrelease7.6.1810(Core)CDH版本:6.2.1重新安装操作系统的服务器10.170.12.43db-p......
  • [AI]在家中使用日常设备运行您自己的 AI 集群.适用于移动、桌面和服务器的分布式 LLM
    创作不易只因热爱!!热衷分享,一起成长!“你的鼓励就是我努力付出的动力”AI发展不可谓不快,从ollama个人电脑CPU运行到现在,日常设备AI集群.下面对比一下,两款开源AI大模型的分布式推理应用,exo和cake.1.AI集群推理应用exo和cake的简单对比......
  • 分布式集群与多线程高并发
     后台数据的处理语言有很多,Java是对前端采集的数据的一种比较常见的开发语言。互联网移动客户端的用户量特别大,大量的数据处理需求应运而生。可移动嵌入式设备的表现形式很多,如PC端,手机移动端,智能手表,Google眼镜等。Server2client的互联网开发模式比较常见,有一种新的数......
  • k8s集群部署prometheus
    目录一、Prometheus简介1.1、前言1.2、prometheus架构1.3、prometheus时间序列数据1.3.1、什么是序列数据?1.3.2、时间序列数据特点1.3.3、Promethues适合场景二、部署配置2.1、Prometheus部署2.1.1、创建命名空间2.1.2、创建RBAC规则2.1.3、创建ConfigMap类型的Prometheus配置文件......
  • KingbaseES 集群运维典型案例 03 --“双主” sys_rewind恢复机制
    案例说明:主库主机系统重启,触发failover切换,原主库系统启动后,数据库服务被启动,出现“双主”,使用“repmgrnoderejoin--force-rewind”恢复集群。通过本案例了解,集群“双主”产生的原因及解决方案,并熟悉sys_rewind在集群恢复中的应用。数据库版本:KingbaseESV8R6一、集群架构......
  • 在K8S中,集群可以做哪些优化?
    在Kubernetes(K8S)集群中进行优化是一个多方面的任务,涉及从硬件层面到软件层面的诸多考虑。以下是一些常见的优化领域和技术:1.硬件优化选择合适的节点类型:根据工作负载的特点选择合适的计算、内存和存储资源。使用具有高I/O性能的SSD存储,对于I/O密集型工作负载尤......