Elasticsearch集群和Kibana部署流程

搭建Elasticsearch集群

1. 进入Elasticsearch官网下载页面,下载Elasticsearch

在如下页面选择Elasticsearch版本,点击download按钮,进入下载页面
在这里插入图片描述
右键选择自己操作系统对应的版本,复制下载链接
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后通过wget命令下载Elasticsearch安装包,并通过tar解压

#进入根目录
cd /
#下载压缩包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.25-linux-aarch64.tar.gz
#解压
tar -xf /elasticsearch-7.17.25-linux-aarch64.tar.gz
#更改文件夹名称
mv elasticsearch-7.17.25 elasticsearch

进入解压后的/elasticsearch目录下,通过 ll 命令可以看到如下内容:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2. 修改配置文件

修改配置文件为如下内容(我是用的是虚拟机环境,只需要配置一份,并复制虚拟机,在逐一修改配置即可,如果不是虚拟机环境,则需要一一配置)。

# 集群名称
cluster.name: my-es-cluster# 节点名称(每个节点需唯一)
node.name: node-1  # 其他节点分别命名为 node-2、node-3# 数据和日志路径
path.data: /elasticsearch/data
path.logs: /elasticsearch/logs# 网络设置
network.host: 192.168.166.40 #配置为当前elasticsearch节点主机的ip# 端口
http.port: 9200# 集群节点发现(9300为默认的集群通信端口)
discovery.seed_hosts: ["192.168.166.40:9300", "192.168.166.41:9300", "192.168.166.42:9300"]# 初始主节点(第一次启动指定)
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

注意:

节点名称为集群节点的唯一标识,不能重复,可以不配置,elasticsearch也可以自动生成;

初始化主节点配置的节点,则是可以参与选举并任选主节点的节点,和Kafka的controller类似;

数据目录和日志路径默认是在elasticsearch的安装目录下;

3. 修改虚拟内存

虚拟内存是提高内存使用空间,让一个固定的内存,保存远大于他的容量的内容,其实现方式有多种,其中常见的包括交换区(具体可以看我的另一片帖子操作系统的内存管理策略)以及磁盘映射,其中es所使用的就是后者磁盘映射。

扩展内存的本质实际上就是划分一块磁盘区域给操作系统管理。如交换区就是划分一块磁盘区域作为交换区,对于不常用的内存页(操作系统对于内存的管理是基于分页存储,也就是说在操作系统的眼里,内存是一个一个的内存页),操作系统会将其存入磁盘,待使用时,在进行读取。而磁盘映射则是划分一块硬盘区域交给操作系统管理,并将普通磁盘区域中的文件或设备映射到操作系统管理的特殊区域,这样操作系统就能知道整个文件或设备全部的地址,不需要读取到内存中在进行使用,而是直接根据地址寻找到自己需要的内容。

elasticsearch要求能够进行映射数量最小需要达到262144(页),所以我们需要执行如下命令:

#将vm.max_map_count=262144,通过tee -a命令,追加到/etc/sysctl.conf文件结尾,持久化配置
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
#修改内核参数,修改当前启动状态,不执行重启也可以
sudo sysctl -w vm.max_map_count=262144

4. 修改jvm内存

根据情况而定,我的虚拟机环境,调整为2g。修改/elasticsearch/config/jvm.options配置文件中追加如下内容:

-Xms2g
-Xmx2g

5. 修改文件描述符数量

文件描述符是已打开文件的唯一表示,当进程对文件进行操作时,操作系统会分配给这个文件唯一的文件描述符。

由于Elasticsearch不允许root用户启动,而新建用户默认可以分配的文件描述符只有4096(也就是只能同时读取4096个资源),这对于Elasticsearch是完全不够用的,所以我们需要给新建的用户修改文件描述符数量(Elasticsearch要求最小的文件描述符数量为65535)。

#创建目录,用于存储用户数据
mkdir /elasticsearch/run-user
#创建运行用户elasticsearch,用于运行elasticsearch,elasticsearch不允许root用户运行
sudo useradd -r -d /elasticsearch/run-user/ -s /sbin/nologin elasticsearch
#赋予用户目录权限
sudo chown -R elasticsearch:elasticsearch /elasticsearch
#通过命令向/etc/security/limits.conf文件中追加文件描述符的软硬限制
echo "elasticsearch soft nofile 65535" | sudo tee -a /etc/security/limits.conf
echo "elasticsearch hard nofile 65535" | sudo tee -a /etc/security/limits.conf

如果是systemd启动Elasticsearch,还需要修改systemd的配置文件,这里就不细说了。

6. 启动Elasticsearch集群

完成了以上的准备工作,就可以通过如下命令启动所有节点,开启集群了

#zhi定用户启动elasticsearch
sudo -u elasticsearch /elasticsearch/bin/elasticsearch
#后台启动命令,第一次学习的话推荐前台启动,可以更直观的看见日志信息
nohup sudo -u elasticsearch /elasticsearch/bin/elasticsearch &

通过浏览器访问 任意node_ip:9200/_cluster/health?pretty,可以看到如下集群信息,证明集群启动成功:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Kibana(Elasticsearch可视化界面)部署

1. 进入Kinbana官网下载页面,下载Kinbana

选择和部署的Elasticsearch一样的版本,然后点击DownLoad

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

右键对应版本,复制下载链接
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进入服务器,执行如下命令

cd /
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.25-linux-aarch64.tar.gz
tar -xf /kibana-7.17.25-linux-aarch64.tar.gz
mv ./kibana-7.17.25-linux-aarch64 kibana

2. 修改配置文件

修改kibana.yml文件内容

vim /kibana/config/kibana.yml
#在文件末尾添加如下内容#设置Kibana监听的主机名/IP地址
server.host: "0.0.0.0"   # 0.0.0.0 表示允许所有IP地址访问,生产环境可指定特定IP
#Kibana服务端口(默认5601)
server.port: 5601
#elasticsearch集群地址
elasticsearch.hosts: ["http://192.168.166.40:9200","http://192.168.166.41:9200","http://192.168.166.42:9200"]

3. 启动Kibana

Kinbana同样不允许以root用户启动,所以我们要将Kibana的相关文件所属用户和用户组,交给elasticsearch,并由这个用户来启动Kibana,在确保elasticsearch集群启动的前提下,执行如下命令

#更改所属用户用户组
sudo chown -R elasticsearch:elasticsearch /kibana
#启动Kinbana
sudo -u elasticsearch /kibana/bin/kibana
#后台启动命令,第一次学习的话推荐前台启动,可以更直观的看见日志信息
nohup sudo -u elasticsearch /kibana/bin/kibana &

访问ip:5601,看到如下页面证明Kibana启动成功

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我可以在Kibana提供的DevTool中执行相关指令

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

执行 GET /_cluster/health 可以看到如图所示,集群连接成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 之 provide 和 inject:组件间通信的神奇利器

provide和inject 1.概述 在 Vue 3 中,provide和inject是用于组件之间进行深层次数据传递的一对组合。它们可以跨越多个组件层级来共享数据,而不需要通过层层传递props的方式。 2.provide 的使用 基本语法:在组件的setup函数或者Compositi…

CatBoost中的预测偏移和排序提升

在 CatBoost 中,预测偏移(Prediction Shift) 和 排序提升(Ordered Boosting) 是其关键概念和创新点。CatBoost 通过引入 排序提升 解决了梯度提升决策树(GBDT)算法中常见的 预测偏移问题&#x…

阿里云aliyun gradle安装包下载地址

阿里云 查找你要下载的安装包 macports-distfiles-gradle安装包下载_开源镜像站-阿里云 https://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.9-bin.zip 腾讯 https://mirrors.cloud.tencent.com/gradle/ https://mirrors.cloud.tencent.com/gradle/ https…

《揭秘观察者模式:作用与使用场景全解析》

在软件开发的世界中,设计模式就像是建筑师手中的蓝图,指导着软件系统的构建。其中,观察者模式是一种极为重要且广泛应用的设计模式。今天,我们就来深入探讨一下观察者模式的作用和使用场景。 一、观察者模式是什么? …

SpringBoot(九)使用Jsoup解析html字符串

目前在做博客相关的功能,在显示文章详情的时候,我看到那些大的博客社区,文章中的图片都是可以点击放大的,我感觉这个功能非常好,我也想做,在PHP版本的博客中已经实现了。 实现原理其实很简单,使用PHP的simple_html_dom库解析HTML字符串,找到其中的img标签,在img标签上…

Spring——容器:IoC

容器:IoC IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容器来…

uniapp—android原生插件开发(4uniapp引用aar插件)

本篇文章从实战角度出发,将UniApp集成新大陆PDA设备RFID的全过程分为四部曲,涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程,轻松应对安卓原生插件开发与打包需求! 一、将android程序打包成aar插件包 直接使…

RedisTemplate序列化设置

前言 在使用 Redis 作为缓存数据库时,我们通常会使用 RedisTemplate 来简化与 Redis 进行交互的操作。而其中一个重要的配置项就是序列化设置,它决定了数据在存储到 Redis 中时的格式。本文将介绍如何进行 RedisTemplate 的序列化设置,以及一…

如何优化Elasticsearch的查询性能?

优化Elasticsearch查询性能可以从以下几个方面进行: 合理设计索引和分片: 确保设置合理的分片和副本数,考虑数据量、节点数和集群大小。根据数据量和节点数量调整分片数量,避免使用过多分片,因为每个分片都需要额外的…

使用R语言survminer获取生存分析高风险和低风险的最佳截断值cut-off

使用R语言进行Cox比例风险模型分析和最佳截断值寻找 引言 在生存分析中,Cox比例风险模型是一种常用的统计方法,用于评估多个变量对生存时间的影响。在临床研究中,我们经常需要根据某些连续变量的预测值来对患者进行分组,以便更好…

ORU——ORAN 无线电单元参考架构

ORU ORU-开放无线电单元ORU 类型O-RU“A类”O-RU“B类” 参考相关文章 ORU-开放无线电单元 ORU(开放无线电单元)的目的是将天线发送和接收的无线电信号转换为数字信号,该数字信号可通过前传传输到分布式单元(DU)。考虑…

FFMPEG录屏(22)--- Linux 下基于X11枚举所有显示屏,并获取大小和截图等信息

众人拾柴火焰高,github给个star行不行? open-traa/traa traa is a versatile project aimed at recording anything, anywhere. The primary focus is to provide robust solutions for various recording scenarios, making it a highly adaptable tool…

卷积核里面的数字表示什么意思?

卷积核里面的数字表示的是一种权重,这些权重在与输入数据进行卷积操作时起着至关重要的作用。简单来说,卷积核是一个小型矩阵,它里面的每个数字都对应着输入数据中某个位置的数值在特征提取过程中的一个系数。 当卷积核在输入数据上滑动时&am…

多线程和线程同步复习

多线程和线程同步复习 进程线程区别创建线程线程退出线程回收全局写法传参写法 线程分离线程同步同步方式 互斥锁互斥锁进行线程同步 死锁读写锁api细说读写锁进行线程同步 条件变量生产者消费者案例问题解答加强版生产者消费者 总结信号量信号量实现生产者消费者同步-->一个…

FlinkPipelineComposer 详解

FlinkPipelineComposer 详解 原文 背景 在flink-cdc 3.0中引入了pipeline机制,提供了除Datastream api/flink sql以外的一种方式定义flink 任务 通过提供一个yaml文件,描述source sink transform等主要信息 由FlinkPipelineComposer解析&#xff0c…

Zustand浅学习

道阻且长,行而不辍,未来可期 之前只是会使用zustand,也没仔细看过zustand的文档,前段时间一个合约朋友问我前端的zustand怎么用,啊,这,是那个笑起来明媚的不像话的帅哥问我问题诶,那我得认真一下…

海量数据迁移:Elasticsearch到OpenSearch的无缝迁移策略与实践

文章目录 一.迁移背景二.迁移分析三.方案制定3.1 使用工具迁移3.2 脚本迁移 四.方案建议 一.迁移背景 目前有两个es集群,版本为5.2.2和7.16.0,总数据量为700T。迁移过程需要不停服务迁移&#…

TypeScript:现代 JavaScript 的超级集

目录 为什么使用 TypeScript? TypeScript 的基本特性 TypeScript 的优势 TypeScript项目实战 简单的命令行任务管理系统 TypeScript 是由微软开发的一个开源编程语言,它是 JavaScript 的一个严格超集。TypeScript 的核心特性是静态类型检查,使得开发者可以在编写代码时…

‌MySQL 5.7和8.0版本在多个方面存在显著区别,主要包括性能优化、新特性引入以及安全性提升

性能优化‌ ‌编码器和解码器‌:MySQL 8.0引入了更快和更高效的编码器和解码器,支持压缩、加密、并发等方面的优化,而MySQL 5.7的编码器和解码器相对较慢。‌认证方式‌:MySQL 8.0默认使用caching_sha2_password作为登录认证插件&…

【贪心算法】贪心算法三

贪心算法三 1.买卖股票的最佳时机2.买卖股票的最佳时机 II3.K 次取反后最大化的数组和4.按身高排序5.优势洗牌(田忌赛马) 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励&#…