当前位置: 首页 > news >正文

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 可以看到如图所示,集群连接成功

相关文章:

Elasticsearch集群和Kibana部署流程

搭建Elasticsearch集群 1. 进入Elasticsearch官网下载页面,下载Elasticsearch 在如下页面选择Elasticsearch版本,点击download按钮,进入下载页面 右键选择自己操作系统对应的版本,复制下载链接 然后通过wget命令下载Elastics…...

丹摩征文活动 | 丹摩智算:大数据治理的智慧引擎与实践探索

丹摩DAMODEL|让AI开发更简单!算力租赁上丹摩! 目录 一、引言 二、大数据治理的挑战与重要性 (一)数据质量问题 (二)数据安全威胁 (三)数据管理复杂性 三、丹摩智算…...

【Django】Clickjacking点击劫持攻击实现和防御措施

Clickjacking点击劫持 1、clickjacking攻击2、clickjacking攻击场景 1、clickjacking攻击 clickjacking攻击又称为点击劫持攻击,是一种在网页中将恶意代码等隐藏在看似无害的内容(如按钮)之下,并诱使用户点击的手段。 2、clickj…...

Ansys Zemax | 手机镜头设计 - 第 4 部分:用LS-DYNA进行冲击性能分析

该系列文章将讨论智能手机镜头模组设计的挑战,从概念和设计到制造和结构变形分析。本文是四部分系列中的第四部分,它涵盖了相机镜头的显式动态模拟,以及对光学性能的影响。使用Ansys Mechanical和LS-DYNA对相机在地板上的一系列冲击和弹跳过程…...

工具收集 - java-decompiler / jd-gui

工具收集 - java-decompiler / jd-gui 参考资料 用法:拖进来就行了 参考资料 https://github.com/java-decompiler/jd-gui 脚本之家:java反编译工具jd-gui使用详解...

《无线重构世界》射频模组演进

射频前端四大金刚 射频前端由PA、LNA、滤波器、开关“四大金刚” 不同的模块有自己的工艺和性能特点 分层设计 射频前端虽然只由PA、LNA、开关、混频器4个模块构成,但不同模块之间相互连接且相互影响。如果将射频系统当成一个整体来理解,其中的细节和…...

渗透测试---docker容器

声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果 目录 一、Docker的作用与优势 二、docker的核心…...

【go从零单排】Atomic Counters原子计数

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,原子计数器(Atomic Counters)是…...

VSCode中python插件安装后无法调试

问题 VSCode中python插件安装后无法调试,如下,点击调试,VScode中不报错,也没有调试 解决方法 1、查看配置 打开所在路径 2、拷贝 将整个文件夹拷贝到vscode默认路径下 3、问题解决 再次调试,可以正常使用了…...

用react实现radio同时关联proform组件

实现&#xff1a; <ProFormRadio.GroupradioType{button}name{[bodyConfig, format]}label"请求体格式"initialValue{json}options{createTabs}fieldProps{{buttonStyle: solid,wrapperMarginInlineEnd: 20,onChange: e > {let v e.target.value;databaseMod…...

Objective-C 1.0和2.0有什么区别?

Objective-C ObjC比较小众&#xff0c;在1980年左右由Stepstone公司的Brad Cox和Tom Love发明。后来NeXT公司获得ObjC语言使用权&#xff0c;再后来到1996年NeXT被苹果公司收购也变成苹果公司使用&#xff0c;Mac市场占有率本身就不高&#xff0c;ObjC没有太多程序员。在移动互…...

TCP连接如何保障数据传输安全

TCP连接保障数据传输安全主要通过以下几个机制实现&#xff1a; 1、建立连接&#xff1a;TCP通过三次握手过程建立连接&#xff0c;确保通信双方实体真实存在&#xff0c;为后续的可靠数据传输打下基础。 2、序号机制&#xff1a;TCP为每个传输的数据包分配一个序号&#xff…...

【论文复现】ChatGPT多模态命名实体识别

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ChatGPT ChatGPT辅助细化知识增强&#xff01;1. 研究背景2. 模型结构和代码3. 任务流程第一阶段&#xff1a;辅助精炼知识启发式生成第二阶段…...

管理 Elasticsearch 变得更容易了,非常容易!

作者&#xff1a;来自 Elastic Ken Exner Elasticsearch 用户&#xff0c;我们听到了你的心声。管理 Elasticsearch 有时会变得很复杂&#xff0c;面临的挑战包括性能调整、问题检测和资源优化。我们一直致力于简化你的体验。今天&#xff0c;我们宣布了自收购 Opster 以来的一…...

SynchronousQueueworkQueue.offer() 和 poll() 方法的超时控制及线程池的讨论

2024.11.12 11:26 问&#xff1a;workQueue.offer(command) 这里 workQueue.poll(keepAlive, TimeUnit.NANOSECONDS) : 这里的 workQueue.offer(command) 没有超时时间控制&#xff1f; Claude 3.5 Haiku 非常好的问题&#xff01;我来详细解释 offer() 和 poll() 方法的区别…...

自动驾驶---“火热的”时空联合规划

1 背景 早期的不少规划算法都是横纵分离的(比如Apollo),先求解path之后,依赖path的结果再进行speed的求解。这种横纵解耦的规划方式具有以下特点: 相对较为简单,计算量通常较小,容易实现实时性要求。但是由于分别规划横向和纵向运动,可能会忽略两者之间的耦合关系,导致…...

命令行工具进阶指南

&#x1f680; 命令行工具进阶指南&#xff1a;Git、Shell与效率工具的进阶之路 掌握命令行工具&#xff0c;让你的开发效率突飞猛进。本文将深入探讨 Git 高级技巧、Shell 脚本自动化以及各种效率倍增的 CLI 工具。 &#x1f4d1; 目录 Git 高级技巧与工作流Shell 脚本自动化…...

扫雷游戏代码分享(c基础)

hi , I am 36. 代码来之不易&#x1f44d;&#x1f44d;&#x1f44d; 创建两个.c 一个.h 1&#xff1a;test.c #include"game.h"void game() {//创建数组char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };char temp[ROWS][COLS] { 0 };//初始化数…...

基于vue框架的的社区居民服务管理系统8w86o(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;居民,楼房信息,报修信息,缴费信息,维修进度 开题报告内容 基于Vue框架的社区居民服务管理系统开题报告 一、研究背景与意义 随着城市化进程的加速&#xff0c;社区居民数量激增&#xff0c;社区管理面临着前所未有的挑战。传统的社区…...

一分钟快速熟悉makedown

Markdown 是一种轻量级标记语言&#xff0c;广泛用于编写文档、撰写博客、创建 README 文件等。它的语法简单易学&#xff0c;能够快速生成格式化的文本。以下是 Markdown 的一些常用语法和示例&#xff1a; 1. 标题 Markdown 支持六级标题&#xff0c;使用 # 符号表示。 # …...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...

深入解析 ReentrantLock:原理、公平锁与非公平锁的较量

ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...