ElasticSearch-安装部署全过程

本文已收录于专栏
《中间件合集》

目录

  • 概念说明
    • 什么是ElasticSearch
    • 什么是Kibana
    • 什么是RESTful API
  • 提供服务
  • 安装过程
    • 安装ElasticSearch
      • 1.下载ElasticSearch 安装包
      • 2.解压安装包
      • 3.进入解压之后的文件夹
      • 4.创建一个data文件夹用来存储数据
      • 5.进入config文件夹编辑elasticsearch.yml
      • 6.修改内存配置
      • 7.修改系统配置,编辑文件sysctl.conf,增加一行vm.max_map_count=262144,保存后退出
      • 8.创建ES专用账号
        • 8.1创建用户
        • 8.2设置密码
        • 8.3赋予权限
        • 8.4设置用户的相关先限制
        • 8.5执行sysctl -p 使配置生效
      • 9.启动ElasticSearch服务
      • 10.访问ElasticSearch服务,查看是否启动成功
    • 安装Kibana
      • 1.wget下载安装包
      • 2.解压安装包
      • 3.进入到kibana目录
      • 4.编辑配置文件
      • 5.启动Kinbana
      • 6.访问Kinbana服务,查看是否启动成功
  • 常见问题
  • 总结提升

概念说明

什么是ElasticSearch

  是一个开源的分布式搜索和分析引擎,它建立在 Apache Lucene 搜索引擎库之上。它提供了一个分布式、多租户的全文搜索引擎,具有强大的实时搜索和分析能力。Elasticsearch 是用 Java 语言编写的,并且提供了 RESTful API,使其易于集成和使用。

ElasticSearch 官网:https://www.elastic.co/cn/elasticsearch/

什么是Kibana

  Kibana 是一个用于数据可视化和分析的开源工具。它提供了一个直观的 Web 界面,可以通过图表、仪表盘和报表等方式展示 Elasticsearch 中的数据。Kibana 支持实时数据可视化,并提供了强大的查询和过滤功能。它还可以与 Elasticsearch 进行深度集成,通过搜索和聚合数据来生成交互式报表和可视化图表。

什么是RESTful API

  RESTful API 是一种设计风格和架构原则,用于构建可扩展的、可维护的网络服务。REST 是 Representational State Transfer 的缩写,它强调在网络中以资源为中心进行通信。

RESTful API 的设计原则包括:

  基于资源:将网络服务中的数据和功能抽象为资源,每个资源都有一个唯一的标识符(URI)。客户端通过 URI 访问和操作资源。

  统一接口:RESTful API 使用统一的接口定义,包括使用 HTTP 方法(GET、POST、PUT、DELETE)对资源进行操作,使用 HTTP 状态码表示操作结果,使用 MIME 类型指定数据的表示形式(如 JSON、XML)。

  无状态性:每个请求都是独立的,服务器不会保存客户端的状态信息。客户端可以在请求中包含所有必要的信息,服务器根据请求进行处理并返回响应。

  可缓存性:RESTful API 支持缓存,客户端可以缓存服务器返回的响应,减少网络传输和服务器负载。

  分层系统:RESTful API 的架构是分层的,每一层都有特定的功能和责任。客户端可以通过中间层(如代理服务器)与服务器进行通信,而不需要了解底层的实现细节。

  安全性:RESTful API 使用标准的安全机制(如 HTTPS、OAuth)来保护数据和通信的安全性。

  RESTful API 的设计目标是简单、可扩展和易于理解。它可以被不同的客户端(如 Web 应用、移动应用)使用,并且可以与不同的后端服务进行集成。RESTful API 已经成为构建 Web 服务和应用程序的常用标准。

提供服务

  • 「 实时搜索 」:Elasticsearch 提供了高性能的实时搜索功能,可以快速地从大量数据中检索相关的结果。

  • 「 分布式架构」:Elasticsearch 使用分布式架构,可以在多个节点上存储和处理数据。这使得它具有高可用性、可伸缩性和容错性。

  • 「 全文搜索 」:Elasticsearch 使用倒排索引技术,可以对文本数据进行全文搜索。它支持复杂的查询和过滤,可以根据相关性对搜索结果进行排序。

  • 「数据分析」:Elasticsearch 提供了强大的数据聚合和分析功能,可以对大规模数据进行实时分析。它支持聚合、分组、统计和可视化等功能,帮助用户发现数据中的模式和趋势。

  • 「 分布式文档存储」:Elasticsearch 使用 JSON 文档存储数据,每个文档都有一个唯一的 ID。它支持索引和搜索各种类型的数据,包括结构化、半结构化和非结构化数据。

安装过程

安装ElasticSearch

1.下载ElasticSearch 安装包

可以从官网上直接下载,然后在放到es服务器上,也可以使用wget命令的形式直接下载(下载比较慢)

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

2.解压安装包

tar -xvf elasticsearch-7.6.2-linux-x86_64.tar.gz

在这里插入图片描述

3.进入解压之后的文件夹

 cd elasticsearch-7.6.2

4.创建一个data文件夹用来存储数据

mkdir data

在这里插入图片描述

5.进入config文件夹编辑elasticsearch.yml

vi elasticsearch.yml

将以下注解解开
在这里插入图片描述
在这里插入图片描述
network.host修改为0.0.0.0,让所有的服务器都可以进行访问
在这里插入图片描述

6.修改内存配置

vim ./config/jvm.options

在这里插入图片描述

7.修改系统配置,编辑文件sysctl.conf,增加一行vm.max_map_count=262144,保存后退出

sudo vim /etc/sysctl.conf

在这里插入图片描述

:wq

8.创建ES专用账号

ElasticSearch5.0之后不能使用root账号启动,所以需要创建ES用户并设置密码。

8.1创建用户

useradd user-es

8.2设置密码

sudo passwd 用户名

系统会提示你输入新密码两次。请注意,密码输入时不会显示在终端上,这是出于安全考虑。

8.3赋予权限

# 将es和kibana目录赋权限给新建用户,/usr/local为es所在上级目录
chown admin /usr/local -R

在这里插入图片描述

8.4设置用户的相关先限制

在linux中这些限制是分为软限制(soft limit)和硬限制(hard limit)的。他们的区别就是软限制可以在程序的进程中自行改变(突破限制),而硬限制则不行(除非程序进程有root权限)
-H :hard limit ,严格的设定,必定不能超过这个设定的数值,超过会报错
-S :soft limit ,警告的设定,可以超过这个设定值,但是若超过则有警告信息

vim /etc/security/limits.conf,在末尾加上:

admin soft nofile 65536 #表示该用户的进程可以打开的最大文件描述符数,软限制
admin hard nofile 65536 #表示该用户的进程可以打开的最大文件描述符数,硬限制
admin soft nproc 4096    #单个用户可用的最大进程数量 ,软限制
admin hard nproc 4096   #单个用户可用的最大进程数量,硬限制
 
vim /etc/security/limits.d/20-nproc.conf,增加:

admin    soft    nproc     4096

8.5执行sysctl -p 使配置生效

sudo sysctl -p 

9.启动ElasticSearch服务

在ES目录中执行以下命令:

前台执行   ./bin/elasticsearch
后台执行   nohup ./bin/elasticsearch > nohup.out 2>&1 &

10.访问ElasticSearch服务,查看是否启动成功

直接访问ip+端口号,咱们之前设置的端口号为9200

在这里插入图片描述
  注:记得打开端口号,可参考博客:Linux如何打开指定端口号

安装Kibana

1.wget下载安装包

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-linux-x86_64.tar.gz

2.解压安装包

tar -xvf kibana-7.6.2-linux-x86_64.tar.gz

在这里插入图片描述

3.进入到kibana目录

cd kibana-7.6.2-linux-x86_64

4.编辑配置文件

vim config/kibana.yml

# 添加以下内容:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://es的ip地址或域名:9200"]

在这里插入图片描述

5.启动Kinbana

前台执行   ./bin/kinbana
后台执行   nohup ./bin/kinbana > nohup.out 2>&1 &

6.访问Kinbana服务,查看是否启动成功

直接访问ip+端口号,咱们之前设置的端口号为5601
在这里插入图片描述

常见问题

在启动的过程中经常会出现以下问题,基本上都是配置文件修改之后没有生效的原因
在这里插入图片描述

1.max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
  解决方案:执行sudo vim /etc/security/limits.conf查看是否加上了如图配置。加上之后在执行sysctl -p ,再启动ES,如果依然出现相同的错误,则说明配置没有生效,重启服务器使用reboot命令,再启动ES,问题应该就可以解决了。
2.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  解决方案:解决方法:回到之间的步骤,配置ElasticSearch中的步骤五,执行sudo vim /etc/sysctl.conf查看是否加上了如图配置。加上之后在执行sysctl -p ,再启动ES,如果依然出现相同的错误,则说明配置没有生效,重启服务器使用reboot命令,再启动ES,问题应该就可以解决了。

总结提升

    Elasticsearch 和 Kibana 的结合可以实现强大的搜索、分析和可视化功能。通过使用 Elasticsearch 的搜索和分析能力,可以轻松地对大量数据进行复杂的查询和聚合操作。而 Kibana 则提供了友好的界面,方便用户通过图表和仪表盘等方式直观地展示和分析数据。


🎯 此文章对你有用的话记得留言+点赞+收藏哦🎯

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法通关村第八关——轻松搞定翻转二叉树

二叉树有很多经典算法题,今天我们就来看一下二叉树里的翻转问题。 力扣226,给了一棵二叉树,要将二叉树整体翻转。 分析:观察图中翻转前后的二叉树,我们不难发现,翻转过程中,只需要把每一个节点的左右子节点…

【Unity细节】Unity中的层级LayerMask

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 😶‍🌫️收录于专栏:unity细节和bug 😶‍🌫️优质专栏 ⭐【…

1849. 将字符串拆分为递减的连续值;1024. 视频拼接;1530. 好叶子节点对的数量

1849. 将字符串拆分为递减的连续值 核心思想:递归回溯题。和842. 将数组拆分成斐波那契序列的代码是差不多的,遇到拆分题首先想的就是dfs(index)表示从index开始拆分是否可以,然后去枚举拆分的end即可,我把这种题目归纳为拆分题,…

leetcode 518. 零钱兑换 II

本题是背包问题系列的完全背包问题,和0-1背包唯一的区别就在于:物品是可以重复选取的。 经过之前背包问题的拷打,本题也是一遍AC了。 接下来将给出二维和一维两种做法。 二维dp数组做法: 本题的背包大小即为题中给出的总金额&am…

“一日之际在于晨”,欢迎莅临WAVE SUMMIT上午场:Arm 虚拟硬件早餐交流会

8月16日,盛夏的北京将迎来第九届WAVE SUMMIT深度学习开发者大会。在峰会主论坛正式开启前,让我们先用一份精美的元气早餐,和一场“Arm虚拟硬件交流会”,唤醒各位开发小伙伴的开发魂! 8月16日,WAVE SUMMIT大…

【力扣每日一题】2023.8.18 3n块披萨

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个披萨,分成了3n块,每次我们可以选择一块,而我们的两个小伙伴会拿走我们选的披萨的相邻的…

1x1 卷积:解释器

一、说明 在这篇博客中,我们将尝试深入探讨 1x1 卷积操作的概念,该概念出现在 Lin等人 (2013) 的论文“网络中的网络”和 Szegedy 等人 (2014) 的论文“Go Deep with Convolutions” 中,该论文提…

工作流自动化:提升效率、节约成本的重要工具

在现代社会中,软件和技术的运用使得我们的日常活动变得更加简单和高效。然而,这些技术也有自身的特点和独特之处。尽管我们使用这些工具来简化工作,但有时仍需要一些人工干预,比如手动数据录入。在工作场所中,手动数据…

Dockerfile概念、镜像原理、制作及案例讲解

1.Docker镜像原理 Linux文件操作系统讲解 2.镜像如何制作 3.Dockerfile概念 Docker网址:https://hub.docker.com 3.1 Dockerfile关键字 4.案例

pytest数据驱动 pandas

pytest数据驱动 pandas 主要过程:用pandas读取excel里面的数据,然后进行百度查询,并断言 pf pd.read_excel(data_py.xlsx, usecols[1,2])print(pf.values)输出:[[‘听妈妈的话’ ‘周杰伦’] [‘遇见’ ‘孙燕姿’] [‘伤心太平…

Linux 修改信号的响应方式

修改信号的响应方式 1.signal()方法介绍: 修改信号的响应方式要用到方法signal()。需要引用头文件signal.h。signal()的原型: typedef重命名了一个函数指针的类型,这个指针的类型为指向一个参数为int返回值为void的函数的指针。这个函数指针…

Vue编写表单常用操作(过滤和排序)

目录 HTML代码&#xff1a; js代码&#xff1a; 效果展示&#xff1a; 此次的编写代码可以直接使用 HTML代码&#xff1a; <body><div id"app"><div v-for"(value,key) in person">{{key}}--{{value}}</div><div>商品名…

[10min速通]STM32CubemMX配置W25Q128

[10min速通]&#x1f98f;STM32CubemMX配置W25Q128 文章目录 [10min速通]&#x1f98f;STM32CubemMX配置W25Q1281、下载源码2、配置Cube2.1 基础配置2.2 SPI配置 3、配置MDK3.1 添加源文件3.2 管理源文件3.3 完成接口配置 4、接口介绍4.1 初始化4.2 擦除4.3 写入4.4 读取 5、代…

利用logstash/filebeat/插件,将graylog日志传输到kafka中

1.graylog配置输出 在System-outputs&#xff0c;选择GELF Output&#xff0c;填写如下内容&#xff0c;其它选项默认 在要输出的Stream中&#xff0c;选择Manage Outputs 选择GELF Output&#xff0c;右边选择刚才创建好的test。 2.安装logstash&#xff0c;作为中间临时…

excel 之 VBA

1、excel和VBA 高效办公&#xff0c;把重复性的工作写成VBA代码&#xff08;VB代码的衍生物&#xff0c;语法和VBA相同&#xff09;。 首先打开开发工具模式&#xff0c;如果没有选显卡&#xff0c;需要手动打开 打开程序编辑界面 快捷键 altF11一般操作 程序调试&#xf…

如何使用ChatGPT创建个性化的健身锻炼计划

ChatGPT广泛应用于各个行业&#xff0c;健身也不例外。 ChatGPT 在健身领域的一个常用案例是创建个性化的锻炼计划。 在要求 ChatGPT 创建锻炼计划时&#xff0c;简单地输入自己的目标和当前的健身水平是一个很好的开始。完成此操作后&#xff0c;你还可以使用其他提示和措施来…

.net core发布到IIS上出现 HTTP 错误 500.19

1.检查.net core 环境运行环境是否安装完成&#xff0c;类似如下环境 2.IIS是否安装全 本次原因就是IIS未安装全导致的 按照网上说的手动重启iis&#xff08;iisreset&#xff09;也不行

Next.js - Route Groups(路由组)

路由组的作用 在应用程序目录中&#xff0c;嵌套文件夹通常会映射到 URL 路径。不过&#xff0c;您可以将文件夹标记为路由组&#xff0c;以防止该文件夹包含在路由的 URL 路径中。 这样就可以在不影响 URL 路径结构的情况下&#xff0c;将路由段和项目文件组织到逻辑组中。 …

win10下如何安装ffmpeg

安装ffmpeg之前先安装win10 绿色软件管理软件&#xff1a;scoop. Scoop的基本介绍 Scoop是一款适用于Windows平台的命令行软件&#xff08;包&#xff09;管理工具&#xff0c;这里是Github介绍页。简单来说&#xff0c;就是可以通过命令行工具&#xff08;PowerShell、CMD等…

mysql使用redis+canal实现缓存一致性

目录 一、开启binlog日志 1.首先查看是否开启了binlog 2、开启binlog日志&#xff0c;并重启mysql服务 二、授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限 三、下载配置canal 1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.0.17 版本为例 2、 …