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

ElasticSearch7.x入门教程之集群安装(一)

文章目录

  • 前言
  • 一、es7.x版本集群安装
  • 二、elasticsearch-head安装
  • 三、Kibana安装
  • 总结


前言

在工作中遇到了,便在此记录一下,以防后面会再次遇到。第一次使用是在2020年末,过了很久了,忘了些许部分了。

在工作当中,如果是小的项目需求其实可以用单机版本的ES即可(不管是Linux上面还是Windows还是WinServer上面),都可以满足需求;数据量稍微大一点点的话,也可以上ES集群;这两种情况我都遇到过,单机版本的安装,比较简单,稍微AI一下就知道;在此主要记录一下,常规操作。
基于es7.x版本的三台服务器安装,这里环境是虚拟机环境。


一、es7.x版本集群安装

首先准备三台虚拟机,IP地址为192.168.1.151、192.168.1.152、192.168.1.153;

tips:在某些情况下,在配置文件中,每次不想都输入IP地址,故配置本地域名映射:
vim /etc/hosts修改如下(每个服务器都要修改):
在这里插入图片描述

新建用户:es要求要非root用户才可以启动;所以我们要创建es用户;

groupadd esgroup
useradd elastic -g esgroup -p your_password
# 修改用户所属
chown -R elastic:esgroup /opt/elasticsearch-7.9.3/

下载es7.9.3的tar.gz包并上传至/opt目录下:
es官网:https://www.elastic.co
文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/elasticsearch-intro.html
下载地址:https://www.elastic.co/downloads/elasticsearch

我这里已经下载好并上传至/opt目录下(分别上传至node2、node3的/opt目录下):
在这里插入图片描述
配置文件修改:
node1节点修改:

vim /opt/elasticsearch-7.9.3/conifg/elasticsearch.yml# es集群的名称,三台服务器必须一致
cluster.name: my-es-app
# 当前节点的名称
node.name: node-master
# 节点的数据目录
path.data: /opt/elasticsearch-7.9.3/data
# 节点的日志目录
path.logs: /opt/elasticsearch-7.9.3/logs
# 节点端口
http.port: 9200# 配置跨域,用kibana、es-header访问时候
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"# 配置外网访问地址(node1 => 192.168.1.151)
network.host: node1
# 表示各节点通信
discovery.seed_hosts: ["node1", "node2", "node3"]
# 表示该节点为主节点,取值为node.name的值
cluster.initial_master_nodes: ["node-master"]# 配置ES的登陆认证密码
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: ./certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: ./certs/elastic-certificates.p12

node2节点修改(说明参考node1):

cluster.name: my-es-app
node.name: node-slave01
path.data: /opt/elasticsearch-7.9.3/data
path.logs: /opt/elasticsearch-7.9.3/logs
http.port: 9200http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"network.host: node2discovery.seed_hosts: ["node1", "node2", "node3"]xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: ./certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: ./certs/elastic-certificates.p12

node3节点修改(说明参考node1):

cluster.name: my-es-app
node.name: node-slave02
path.data: /opt/elasticsearch-7.9.3/data
path.logs: /opt/elasticsearch-7.9.3/logs
http.port: 9200http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"network.host: node3discovery.seed_hosts: ["node1", "node2", "node3"]xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: ./certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: ./certs/elastic-certificates.p12

配置安全认证
参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/configuring-tls.html

配置证书:es7.x自带配置证书命令工具,在bin目录下,操作如下:

  • 1、给你的es集群创建一个证书;
bin/elasticsearch-certutil ca
  • 2、给你的集群每一个节点生成证书和私钥;
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

在这一过程当中,会提示你输入密码,可以不用输入密码,直接enter,下一步即可;

  • 3、在配置文件创建一个目录certs,存放刚刚生成的证书文件;
    在这里插入图片描述
    说明:以上命令操作均是在node1节点家目录执行的;然后创建config/certs目录,将证书放在该目录下面;然后在修改elasticsearch.yml配置文件;最后把配置文件传至node2、node3节点处,各自添加安全认证配置;

  • 4、配置用户;
    参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/built-in-users.html
    elasticsearch内置了一些用户,如:elastic、kibana_system、logstash_system等。一般用elastic即可,他是超级管理员,后面也可以用来登录Kibana。

执行在任意节点,我用的是node1节点,执行以下命令:

bin/elasticsearch-setup-passwords interactive

会让你设置输入每一个用户的密码,会输入两次,我这里已经输入过了所以看不见;
在这里插入图片描述
至此,安全、用户登录便设置完成,使用es集群时候,会让你输入用户名密码;

我们也可以在es的索引中看见该用户列表:
在这里插入图片描述

系统配置
为了es的性能,官方建议设置系统参数,以此提高索引性能;
参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/configuring-security.html
在这里插入图片描述
修改系统参数(每一个节点都要修改):

  • 1、关机交换分区;
sudo swapoff -a
  • 2、修改系统资源限制符;
# 临时修改
sudo ulimit -n 65535# 永久修改
vim /etc/security/limits.conf
# 添加如下:
elasticsearch  -  nofile  65535# 刷新
sudo systemctl daemon-reload
  • 3、虚拟内存vm修改;
# 临时修改
sysctl -w vm.max_map_count=262144# 永久修改
vim /etc/sysctl.conf
添加:
vm.max_map_count=262144

配置这个三个即可。

最后分别启动:
在这里插入图片描述
注意:上面启动截图有一个小问题,需要切换到es的用户,我这里是root用户,直接启动会失败;

查看端口,看见9200、9300说明启动成功;
在这里插入图片描述

访问测试(任意一个):192.168.1.151:9200,192.168.1.152:9200,192.168.1.153:9200;
在这里插入图片描述

二、elasticsearch-head安装

Elasticsearch-head 插件,可以通过可视化的方式查看集群信息。

第一种方式:浏览器插件安装

hrome 直接在 App Store 搜索 Elasticsearch-head,点击安装即可。

第二种方式:下载插件安装

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start

在这里插入图片描述

启动成功,页面如下:
在这里插入图片描述

三、Kibana安装

Kibana 是一个 Elastic 公司推出的一个针对 es 的分析以及数据可视化平台,可以搜索、查看存放在 es 中的数据。

  • 1、下载:https://www.elastic.co/cn/downloads/kibana;然后上传解压;
    在这里插入图片描述
  • 2、修改配置文件
vim config/kibana.yml# kibana访问地址
server.host: "192.168.1.151"
# es集群地址
elasticsearch.hosts: ["http://192.168.1.151:9200","http://192.168.1.152:9200", "http://192.168.1.153:9200"]
# es集群的用户名及密码(我们上面配置的)
elasticsearch.username: "kibana_system"
elasticsearch.password: "your_kibana_password"# 可选配置,上面那些配置基本上就配置完成,启动即可访问,不影响使用;
# 但是,观看启动日志,会有些报错日志,是因为版本原因和确实没有配置一些其它东西,
# 下面一些配置可以减少报错日志,看着舒服点
monitoring.cluster_alerts.email_notifications.email_address: 123@qq.com
xpack.security.encryptionKey: encryptionKeysecurity12345678909876543210
xpack.reporting.encryptionKey: encryptionKeyreporting12345678909876543210
xpack.encryptedSavedObjects.encryptionKey: encryptedSavedObjects12345678909876543210xpack.reporting.capture.browser.chromium.disableSandbox: true
  • 3、启动:
    执行:./bin/kibana

最后访问:localhost:5601
需要输入用户名和密码。
在这里插入图片描述
Kibana 安装好之后,首次打开时,可以选择初始化 es 提供的测试数据,也可以不使用。


总结

以上就是ES基础用法常规操作,基础使用下次再记录。

相关文章:

ElasticSearch7.x入门教程之集群安装(一)

文章目录 前言一、es7.x版本集群安装二、elasticsearch-head安装三、Kibana安装总结 前言 在工作中遇到了,便在此记录一下,以防后面会再次遇到。第一次使用是在2020年末,过了很久了,忘了些许部分了。 在工作当中,如果…...

c++ 笔记

基础知识 1. 指针、引用2. 数组3. 缺省参数4. 函数重载5. 内联函数6. 宏7. auto8. const9. 类和对象10. 类的6个默认成员函数11. 初始化列表12. this指针13. C/C的区别14. C 三大特性15. 结构体内存对齐规则16. explicit17. static18. 友元类、友元函数19. 内部类20. 内存管理&…...

【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

欢迎来到《小5讲堂》 这是《腾讯云》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启…...

10 —— Webpack打包模式

开发模式:development ;场景:本地开发 生产模式:production ; 场景:打包上线 设置: 方式1.webpack.config.js 配置文件设置mode选项 module.exports { mode:production }; 方式2.在packa…...

【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰

文章目录 1. Map Viewer中打开2. 场景查看器中打开3. ArcGIS中打开4. QGIS中打开5. Globalmapper中打开6. ArcGIS Earth中打开官网地址:https://www.arcgis.com/home/item.html?id=504a23373ab84536b7760c0add1e0c1c 1. Map Viewer中打开 以下展示不同底图样式的珠穆朗玛峰壮…...

vue2 - 20.json-server

json-server 目标:基于 json-server 工具,准备后端接口服务环境 1. 安装全局工具 json-server (全局工具仅需要安装一次)【官网】 yarn global add json-server 或 npm i json-server -g yarn global add json-server npm i …...

echarts4r 教程1:Get Started

❝ 写在前面 本文为 R 语言 echarts4r 包的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。软件可能随时更新,建议配合官方文档一起阅读。 目录 1 Video & Article 2 Your first plot 3 Options 4 Navigate…...

蚁群算法(Ant Colony Optimization, ACO)

简介 蚁群算法(Ant Colony Optimization, ACO)是一种基于自然启发的优化算法,由意大利学者马可多里戈(Marco Dorigo)在1992年首次提出。它受自然界中蚂蚁觅食行为的启发,用于解决离散优化问题。 在自然界…...

使用IDEA构建springboot项目+整合Mybatis

目录 目录 1.Springboot简介 2.SpringBoot的工作流程 3.SpringBoot框架的搭建和配置 4.用Springboot实现一个基本的select操作 5.SpringBoot项目部署非常简单,springBoot内嵌了 Tomcat、Jetty、Undertow 三种容器,其默认嵌入的容器是 Tomcat,…...

苹果系统中利用活动监视器来终止进程

前言 苹果系统使用的时候总是感觉不太顺手。特别是转圈的彩虹球出现的时候,就非常令人恼火。如何找到一个像Windows那样任务管理器来终止掉进程呢? 解决办法 Commandspace 弹出搜索框吗,如下图: 输入“活动”进行搜索&#xff…...

宝塔安装雷池网站防护

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 加载镜像二、使用步骤三、如果启动不成三、 启动成功以后三、 进入雷池不知道密码 前言 提示:这里可以添加本文要记录的大概内容:…...

JavaScript完整原型链

在 JavaScript 中,每个函数都有一个prototype属性,这个属性是一个对象。当通过一个构造函数创建一个新的对象时,这个新对象会自动拥有一个内部属性[[Prototype]](在一些浏览器中可以通过__proto__访问,不过这是一个非标…...

Vue 内置组件 keep-alive 中 LRU 缓存淘汰策略和实现

LRU(Least Recently Used,最近最少使用)是通过记录缓存项的访问顺序来决定淘汰的策略:当缓存满时,移除最久未被使用的项。 核心概念: 缓存存储:使用 Map 存储键值对,用于快速访问缓…...

李宏毅机器学习课程知识点摘要(14-18集)

线性回归,逻辑回归(线性回归sigmoid),神经网络 linear regression , logistic regression , neutral network 里面的偏导的相量有几百万维,这就是neutral network的不同,他是…...

《AI大模型开发笔记》Faster-Whisper 免费开源的高性能语音识别模型

1 Whisper模型,免费开源的语音识别模型 Whisper模型是OpenAI公开的语音识别模型。这是一个免费可商用的模型。 Whisper模型根据参数量来区分,有多个不同的版本,分别是tiny,base,small medium,large&#x…...

蓝队基础,网络七杀伤链详解

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...

golang开发一个海盗王的登录更新器

前段时间,用golang配合界面库govcl开发一个海盗王的登陆更新器,实现多区注册和文件更新分离不同服务器等新功能。 由于govcl没有更换皮肤的功能,界面都是默认,不好看。 找了很多go语言的gui库,都没有符合要求的。 后来…...

李宏毅机器学习课程知识点摘要(6-13集)

pytorch简单的语法和结构 dataset就是数据集,dataloader就是分装好一堆一堆的 他们都是torch.utils.data里面常用的函数,已经封装好了 下面的步骤是把数据集读进来 这里是读进来之后,进行处理 声音信号,黑白照片,红…...

003 STM32基础、架构以及资料介绍——常识

注: 本笔记参考学习B站官方视频教程,免费公开交流,切莫商用。内容可能有误,具体以官方为准,也欢迎大家指出问题所在。 01什么是STM32(宏观) STM32属于一个微控制器,自带了各种常用通…...

【大语言模型】ACL2024论文-20 SCIMON:面向新颖性的科学启示机器优化

【大语言模型】ACL2024论文-20 SCIMON:面向新颖性的科学启示机器优化 目录 文章目录 【大语言模型】ACL2024论文-20 SCIMON:面向新颖性的科学启示机器优化目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果推荐阅读指数:★★★★☆ …...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...