从头开始搭建一套Elasticsearch集群

news2024/9/9 1:13:52

前言

刚开始使用ES接触的就是rpm或者是云上提供的ES服务,基本上开箱即用。特别是云上的ES服务,开局就是集群版本,提供的是优化后的参数配置、开箱即匹配访问鉴权及常用插件,如无特殊需要基本上屏蔽了所有细节,直接可投入生产使用。

现在遇到一个问题,验证一下远程集群的配置和使用,在没有多套集群的情况下,想在本地模拟两套ES集群,不得不从头走一遍ES集群从下载、自定义配置到启动kibana可使用的这一套流程。简单记录一下ES维护最原始的状态。

task:

  1. 启动一个单节点的ES服务
  2. ES开启鉴权
  3. 创建用户
  4. 配置kibana

环境介绍

操作系统: macOS 12.1

硬件架构: ARM

ES: 8.12.2

Jdk: 22.0.1

下载es包

本次部署使用8.12.2版本的ES,不是最新版本,需要到https://www.elastic.co/cn/downloads/past-releases#elasticsearch页面查找所需要的版本并下载。

下载地址如下:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-8-12-2

选择对应原版本: MACOS AARCH64 : https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.2-darwin-aarch64.tar.gz

配置jdk

mac上使用brew安装jdk

brew install java    #默认会安装最新版的jdk

因为使用的ES基本也是最近的版本,最新版本的jdk可以支持ES运行。

手动安装指定jdk版本

下载所需要的jdk版本后,解压到指定的目录

编辑{userhome}/.zshrc

export JAVA_HOME=/Users/abc-test/data/jdk1.8.0_411.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin

重新加载.zshrc

source .zshrc

配置ES

运行ES

解压es包

tar -xzf elasticsearch-8.12.2-darwin-x86_64.tar.gz

修改端口号(同一台机器上要运行多个ES进程,修改端口号避免冲突)

vim elasticsearch-8.12.2/config/elasticsearch.yml
#
cluster.name: remote-test                      #修改集群名称
node.name: node-101                             #指定节点名称
network.host: 0.0.0.0															#绑定的地址,如不打开端口只监听127.0.0.1
http.port: 19200																				#指定http端口
cluster.initial_master_nodes: ["node-101"]            #master节点 单节点集群填本身就可以,多节点集群需要填上master节点的列表
transport.port: 19300                                #tcp的监听端口

修改完成启动ES进程

#后台执行
bin/elasticsearch  -d 

用户

ES进程启动后,会在第一次启动时打印出内置用户elastic的密码。 日志类似这样:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.

ℹ️ Password for the elastic user (reset with bin/elasticsearch-reset-password -u elastic):
XQZ2EWK3LG8SaB*AYrdM

ℹ️ HTTP CA certificate SHA-256 fingerprint:
79f5240be4f0a02af881d7c73a626741d6e8df9ff130e52603f668635ab746c6

ℹ️ Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjEyLjIiLCJhZHIiOlsiMTAuMjUzLjMuMTU5OjE5MjAwIl0sImZnciI6Ijc5ZjUyNDBiZTRmMGEwMmFmODgxZDdjNzNhNjI2NzQxZDZlOGRmOWZmMTMwZTUyNjAzZjY2ODYzNWFiNzQ2YzYiLCJrZXkiOiJzd3hlbTVBQnRqajNYdHpDUFdHZzpZTnEtOGRTcFI0bVQ1c3phZjMtWVh3In0=

ℹ️ Configure other nodes to join this cluster:
• Copy the following enrollment token and start new Elasticsearch nodes with bin/elasticsearch --enrollment-token <token> (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjEyLjIiLCJhZHIiOlsiMTAuMjUzLjMuMTU5OjE5MjAwIl0sImZnciI6Ijc5ZjUyNDBiZTRmMGEwMmFmODgxZDdjNzNhNjI2NzQxZDZlOGRmOWZmMTMwZTUyNjAzZjY2ODYzNWFiNzQ2YzYiLCJrZXkiOiJzZ3hlbTVBQnRqajNYdHpDUFdHZzpYdmMyc0NQN1EzMlIzODJYbVExNHdnIn0=

If you’re running in Docker, copy the enrollment token and run:
docker run -e "ENROLLMENT_TOKEN=<token>" docker.elastic.co/elasticsearch/elasticsearch:8.12.2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

可自行重置默认密码

bin/elasticsearch-reset-password -u elastic

验证ES启动是否成功

curl localhost:19200/_cat/health -u "elastic:XQZ2EWK3LG8SaB*AYrdM"

正常返回

1720593690 06:41:30 remote-test green 1 1 1 1 0 0 0 0 - 100.0%

ES启动成功。

配置kibana

使用了一段时间kibana作为ES的命令行和管理工具后,发现有界面的系统是真的香,索引管理,数据展示,dev tools 作常用功能模块已基本上满足日常管理需求,且不论更进一步的数据分析等模块。紧跟ES也跑一个kibana的实例出来。 这里注意kibana要跟ES的版本保持一致。

下载包

匹配ES版本的kibana: https://artifacts.elastic.co/downloads/kibana/kibana-8.12.2-darwin-aarch64.tar.gz

修改配置

下载到本地后,解压,修改配置

vim config/kibana.yml

server.port: 5602
server.ssl.enabled: false     #本地使用,禁用https协议
elasticsearch.hosts: ["http://localhost:19200"]          #配置ES的地址
elasticsearch.username: "kibana_system"           #连接ES的用户名
elasticsearch.password: "As4fpYOfz-ufMr7zI8dt"                     #连接ES的密码

这里需要到ES中重置kibana_system的密码,kibana_system是ES系统内置的用户。

 bin/elasticsearch-reset-password -u kibana_system

过程如下:

➜ elasticsearch-8.12.2 bin/elasticsearch-reset-password -u kibana_system
This tool will reset the password of the [kibana_system] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y

Password for the [kibana_system] user successfully reset.
New value: As4fpYOfz-ufMr7zI8dt

启动

bin/kibana

在这里插入图片描述

附录

知其所以然

内置用户

es提供了一系列的内置用户来运行和管理ES进程,这些用户设置了固定的权限。但是这些用户在没有设置密码前是不能使用的。elastic是内置的超级用户,可以用来设置其他用户的密码。elastic用户自己的密码在ES启动的时候会由进程自动设置,并在启动日志中打印出来。

es的内置用户:

  • elastic #超级管理员用户
  • kibana_system #kibana用户用于kibana连接elasticsearch
  • logstash_system #logstash使用
  • Beats_system #beats 程序使用
  • apm_system #apm功能
  • Remote_monitoring_user #远程监控功能用户

内置用户存储在.security这个特殊的索引中,当用户的密码改变时,会同步这些变更内容到各个节点。一旦这个特殊的索引被删除或者被快照等其他数据所覆盖,之前针对用户所做的所有操作都会丢失。

针对内置用户可以使用bin/elasticsearch-reset-password修改用户密码

bin/elasticsearch-reset-password -u kibana_system

初次启动的集群只有重置密码后才能使用。

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

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

相关文章

视频压缩电脑软件,视频压缩电脑怎么操作

在数字媒体时代&#xff0c;视频文件的大小往往让人头疼。如何在不损失画质的情况下压缩视频&#xff0c;成为了许多创作者和普通用户的需求。本文将为你详细介绍电脑压缩软件&#xff0c;让你轻松应对视频压缩任务。 1.下载并安装视频压缩软件。 2.打开软件&#xff0c;选择视…

HTML集成优雅的实时输入清除功能

引言 你好呀&#xff0c;我是小邹。 点击访问 我的个人博客 在现代网页设计中&#xff0c;用户体验是至关重要的。一个流畅、直观且反应迅速的界面能够显著提升用户满意度。本文将介绍如何在网页表单中集成实时输入清除功能&#xff0c;即在输入框中显示一个“x”图标&#…

华为手机联系人不见了怎么恢复?3个解决方案

华为手机联系人列表就像是我们精心编织的社交网络之网。然而&#xff0c;有时&#xff0c;这张网可能会因为各种原因而意外破损&#xff0c;联系人信息消失得无影无踪&#xff0c;让我们陷入“人脉孤岛”的困境。华为手机联系人不见了怎么恢复&#xff1f;别担心&#xff0c;我…

3.js - 灯光与阴影 - 聚光灯

// ts-nocheckimport * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入hdr加载器 import { RGBELoader } from three/examples/jsm/loaders/RGBELoader.js // 导入lil.gui import { GUI } from thre…

关于 Qt在国产麒麟系统上设置的setFixedSize、setMinimumFixed、setMaxmumFixed设置无效 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140242881 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

万物皆可嵌入--embedding在GPU中的实现

摘要 Embedding技术自从谷歌推出word2vec的工作后得到迅速的应用&#xff0c;典型应用之一是在广告推荐场景中&#xff0c;从word2vec演进到item2vec&#xff0c;embedding技术的出现也使深度学习进入广告推荐的场景成为可能。广告推荐模型动辄几十GB甚至TB的模型大小&#xf…

MVC 控制器 中Action 不能同名,参数不一样,路由器寻找不到对应的,要加特性

//1 方法不可能完全相同&#xff0c;参数不同//2 那还需要特性吗&#xff1f;需要的&#xff0c;因为MVC选择方法时&#xff0c;不是按参数选择&#xff1a;http请求发送很多数据&#xff0c;其实没法识别&#xff0c;//因为mvc找方法是通过反射来的&#xff0c;GetMethods(nam…

C#(asp.net)房屋租赁管理系统-计算机毕业设计源码64421

目 录 摘要 1 绪论 1.1 研究背景与意义 1.2开发现状 1.3论文结构与章节安排 2 房屋租赁管理系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 …

vue3+springboot+mybatis+mysql项目实践--简单登录注册功能实现

这里是一次对vue3springbootmybatismysql的项目实现&#xff0c;简单实现前后端分离的登录注册功能&#xff0c;主要工具&#xff1a;idea,navicat 目录 一、创建vue3项目并初始配置 创建vue3项目 2.修改项目结构 1&#xff09;原始目录结构 2&#xff09;修改后目录结构 …

5G RedCap调查报告

一、5G RedCap技术背景 5G RedCap(Reduced Capability缩写,轻量化5G),是3GPP标准化组织定义下的5G裁剪版本,是5G面向中高速率连接场景的物联网技术,它的能力介于5G NR(含eMBB和uRLLC)和LPWA(如LTE-M和NR-IoT)之间,如图1所示,是5G-A(5G Advanced)的关键技术之一。…

用网络编程完成windows和linux跨平台之间的通信(服务器)

服务器代码逻辑&#xff1a; 服务器功能 创建 Socket&#xff1a; 服务器首先创建一个 Socket 对象&#xff0c;用于进行网络通信。通常使用 socket() 函数创建。 绑定&#xff08;Bind&#xff09;&#xff1a; 服务器将 Socket 绑定到一个特定的 IP 地址和端口号上。这是通过…

51单片机STC89C52RC——16.1 五线四相步进电机

目录 目的/效果 一&#xff0c;STC单片机模块 二&#xff0c;步进电机 2.2 什么是步进电机&#xff1f; 2.2.1 步进电机驱动板 静态参数 动态参数 2.2.2 五线四相 单相激励步进 双相激励步进 混合激励驱动 2.3 细分驱动 2.4 通过数字信号控制旋转位置和转速。 2…

JavaScript-map方法

map可以遍历数组处理数据&#xff0c;并返回新的数组 语法&#xff1a; ​const arr[元素1&#xff0c;元素2&#xff0c;元素3] const newarrarr.map(function(数组的元素,数组的索引)){return 新元素 } const arr[blue,red,green]const newarrarr.map(function(ele,index){co…

物业系统自主研发接口测试框架

1、自主研发框架整体设计 1.1、什么是测试框架? 在了解什么是自动化测试框架之前&#xff0c;先了解一下什么叫框架?框架是整个或部分系统的可重用设计&#xff0c;表现为一组抽象构件及构件实例间交互的方法;另一种定义认为&#xff0c;框架是可被应用开发者定制的应用骨架…

【小白也能看的懂】想要玩转AI大模型,这4招你得知道

前言 对于大部分人来说&#xff0c;能够灵活使用AI工具&#xff0c;并对自己每个常用的AI工具优劣势很清楚&#xff0c;就已经足够了。不过&#xff0c;毕竟AI发展实在太快&#xff0c;多了解一些相关的知识点&#xff0c;以全局的视角去看AI&#xff0c;可以避免管中窥豹&…

用SmartEDA点亮电路教学:传统课堂的革新之道

在数字化浪潮的推动下&#xff0c;教育领域也迎来了前所未有的变革。特别是在电路教学这一专业领域&#xff0c;传统的黑板加课本的教学模式已难以满足现代学生的需求。今天&#xff0c;我们就来探讨一下&#xff0c;如何利用SmartEDA电路仿真软件来补充传统教学&#xff0c;为…

Oracle 23ai 中的重要新特性 VECTOR 数据类型

Oracle 23ai 中的 VECTOR 数据类型是 Oracle 数据库在 AI 领域的一个重要新特性&#xff0c;它允许用户以向量的形式存储数据&#xff0c;并在这些向量的基础上进行高效的搜索和分析。以下是对 Oracle 23ai VECTOR 数据类型的详细解析&#xff1a; 参考官方文档地址 https://d…

Python机器学习推理工程化落地步骤指南

目录 一、引言 二、数据准备 2.1 数据收集 2.2 数据清洗 2.3 特征工程 2.4 数据分割 三、模型训练 3.1 选择算法 3.2 训练模型 3.3 模型评估 3.4 模型调优 四、模型部署 4.1 模型序列化 4.2 构建推理服务 4.3 部署与监控 五、总结 在当今科技飞速发展的时代…

【SVN的使用-通过xCode使用SVN-SVN的目录结构 Objective-C语言】

一、接下来,我们来通过xcode使用SVN啊 1.我先把小明这个目录下,wechat这个文件夹都删了, 我现在小明新入职了,但是呢,我现在不喜欢用命令行,我也不喜欢用Corner Stone,我要用xcode, 作为小明,我入职以后,第一件事儿,要把代码checkout下来, 那首先呢,打开你的xc…

从3D扫描到CAD模型【逆向工程】

有时&#xff0c;你无法访问零件原始生产中的原始设计文档。逆向工程&#xff08;reverse engineering&#xff09;使你能够分析物理零件并探索其最初的制造方式&#xff0c;以复制、创建变体或改进设计。目标是最终创建一个用于制造的新 CAD 模型。 虽然逆向工程的概念非常简…