Elasticsearch介绍与应用

news2024/12/30 1:02:54

Elasticsearch介绍与应用

在这里插入图片描述

Elasticsearch的官方文档。

Elasticsearch官网参考文档:https://www.elastic.co/guide/index.html

Elasticsearch官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch

mvnrepository依赖库地址:https://mvnrepository.com/

image-20230625204312287

Elasticsearch是做什么的

Elasticsearch是一种开源分布式搜索和分析引擎,它可以帮助用户快速地存储、搜索、分析和可视化大量的数据。Elasticsearch使用Lucene作为其基础搜索引擎,可以处理海量的结构化和非结构化数据,并提供实时搜索和分析功能。它可以跨多个服务器构建集群,并自动处理数据分片、负载均衡和故障转移,从而保证了高可用性和可扩展性。Elasticsearch还提供了灵活的RESTful API,使得开发人员可以很容易地与之交互。Elasticsearch被广泛应用于各种领域,如搜索、数据分析、电子商务、日志分析、安全信息和业务智能等领域。

Elasticsearch有哪些重要场景

Elasticsearch在以下场景中非常有用:

  1. 搜索场景:Elasticsearch可以帮助构建实时搜索引擎,支持全文搜索、自动补全、分类搜索等功能。这使得Elasticsearch经常被应用在文本搜索、电子商务、新闻门户等领域。

  2. 数据分析场景:Elasticsearch可以帮助处理海量数据,并支持实时的数据聚合、统计和分析。这使得Elasticsearch经常被应用在数据分析、监控、报表等领域。

  3. 日志分析场景:Elasticsearch可以非常高效地处理大量日志数据,并支持实时的、可视化的日志分析和搜索等功能。这使得Elasticsearch经常被应用在日志分析、系统监控等领域。

  4. 安全信息场景:Elasticsearch可以帮助存储和分析访问日志、安全日志等安全信息,并提供实时告警和分析等功能。这使得Elasticsearch经常被应用在网络安全、信息安全等领域。

  5. 业务智能场景:Elasticsearch可以帮助构建实时的业务智能服务,支持数据挖掘、机器学习和预测等功能。这使得Elasticsearch经常被应用在业务智能、营销分析等领域。

Elasticsearch适用于那些语言开发

Elasticsearch支持多种编程语言的客户端库,这些客户端库使得开发人员可以使用自己喜欢的语言与Elasticsearch进行交互,包括:

java,python,PHP,GO,C#…

此外,Elasticsearch还提供了一个RESTful API,使得可以使用任何支持HTTP请求的编程语言与Elasticsearch进行通信。这使得开发人员可以使用自己熟悉的语言和工具与Elasticsearch集成。

Elasticsearch的安装配置

注意事项(不建议使用docker部署Elasticsearch,坑太多,大家直接下载包在win或者Linux上部署,听说哈,不允许root用户部署)

创建网络

创建一个公用网络,使得kibana和Elasticsearch可以完成互联

docker network create es-net

拉取镜像

docker pull elasticsearch:8.6.0

创建挂载点目录

mkdir -p /usr/local/src/soft/es/data /usr/local/src/soft/es/config /usr/local/src/soft/es/plugins

文件授权

chmod 777  /usr/local/src/soft/es/data
chmod 777  /usr/local/src/soft/es/config
chmod 777  /usr/local/src/soft/es/plugins

启动容器

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/src/soft/es/data:/usr/share/elasticsearch/data \
-v /usr/local/src/soft/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0

它将Elasticsearch 8.6.0映像用作容器。这里是每个参数的解释:

  • -d:将容器作为后台守护进程运行。
  • --restart=always:当容器异常退出时,自动重启容器。
  • --name es:将容器命名为 “es”。
  • --network es-net:将容器加入名为 “es-net” 的Docker网络。
  • -p 9200:9200:将容器的9200端口映射到主机的9200端口。
  • -p 9300:9300:将容器的9300端口映射到主机的9300端口。
  • --privileged:授予容器特权,允许它执行特殊功能。
  • -v /usr/local/soft/es/data:/usr/share/elasticsearch/data:将主机的/usr/local/soft/es/data目录挂载到容器的/usr/share/elasticsearch/data目录,让Elasticsearch作为节点的数据持久化存储。
  • -v /usr/local/soft/es/plugins:/usr/share/elasticsearch/plugins:将主机的/usr/local/soft/es/plugins目录挂载到容器的/usr/share/elasticsearch/plugins目录,将Elasticsearch插件安装目录挂载到容器中。
  • -e "discovery.type=single-node":将集群发现设置为通过使用单节点模式(默认情况下Elasticsearch期望与其他节点通信)。
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":将Java运行时的堆内存设置为512MB。
  • elasticsearch:8.6.0:要运行的映像的名称和标签。

这个命令的目的是使用Docker来创建一个运行Elasticsearch的容器。

编写elasticsearch.yml配置文件

docker exec -it es /bin/bash
cd config
echo 'xpack.security.enabled: false' >> elasticsearch.yml  #关闭密码安全验证

不关闭访问9200端口会有一个密码校验

image-20230626191138829

重启容器

docker restart es

访问虚拟机地址+端口号,前面配置Elasticsearch 的端口号为:9200

Kibana的安装配置

Kibana是一个开源的、基于Web的数据分析和可视化工具,主要用于Elasticsearch的数据分析和可视化。它提供了一个用户友好的界面,可以对Elasticsearch中的数据进行搜索、过滤、聚合、图表化等操作,帮助用户更好地理解和分析数据。Kibana通常与Elasticsearch一起使用,用于构建实时的数据仓库和分析平台。

要使用Docker静默安装kibana:8.6.0你可以按照以下步骤操作:

拉取镜像

docker pull kibana:8.6.0

创建挂载点目录

mkdir -p /usr/local/src/soft/kibana/config /usr/local/src/soft/kibana/data

部署kibana,创建kibana容器

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0

这是一个Docker运行命令,它将Kibana 8.6.0映像用作容器。以下是每个参数的解释:

  • -d:将容器作为后台守护进程运行。
  • --restart=always:当容器异常退出时,自动重启容器。
  • --name kibana:将容器命名为 “kibana”。
  • --network es-net:将容器加入名为 “es-net” 的Docker网络。
  • -p 5601:5601:将容器的5601端口映射到主机的5601端口。
  • -e ELASTICSEARCH_HOSTS=http://es:9200:将Elasticsearch的地址设置为“http://es:9200”,其中“es”是Elasticsearch容器的名称,而不是IP地址或主机名。这使得Kibana可以连接到内部的Elasticsearch容器。
  • kibana:8.6.0:要运行的映像的名称和标签。

此命令的目的是在Docker中创建一个运行Kibana的容器。

访问虚拟机地址+端口号,前面配置Kibana 的端口号为:5601

端口放行

在CentOS系统上,您可以使用Firewalld来管理防火墙设置。为使Kibana和Elasticsearch在5601和9200,9300端口上可以正常工作,您需要放行这两个端口,可以按照以下步骤来完成设置:

  1. 开启防火墙服务:

    sudo systemctl start firewalld
    
  2. 检查防火墙状态:

    sudo firewall-cmd --state
    
  3. 开放端口,运行以下命令:

    sudo firewall-cmd --add-port=5601/tcp --permanent
    

    这将允许TCP流量在5601端口上传输。

  4. 开放9200,9300端口,运行以下命令:

    sudo firewall-cmd --add-port=9200/tcp --permanent
    sudo firewall-cmd --add-port=9300/tcp --permanent
    

    这将允许TCP流量在9200端口上传输。

  5. 禁用SELinux保护:

    sudo setsebool -P httpd_can_network_connect on
    

    如果不禁用SELinux,可能会出现无法从Kibana页面访问Elasticsearch的情况。

  6. 重新加载防火墙规则:

    sudo firewall-cmd --reload
    

现在,防火墙已经配置好了,端口5601和9200现在应该可以用于Kibana和Elasticsearch了。

访问测试

image-20230626191242638

image-20230626191321391

最后,向Acloasia致敬,文章精彩,细致!

https://blog.csdn.net/Acloasia/article/details/130683934

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

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

相关文章

你对工作队列了解多少?Linux中断处理中的workqueue介绍

Linux中断处理中的workqueue介绍 一、workqueue的作用及在Linux中断处理中的应用1.1、workqueue的概述1.2、workqueue在Linux中断处理中的作用 二、workqueue的实现原理2.1、工作队列和工作者线程的关系2.2、工作队列的创建和销毁2.3、工作者线程的创建和销毁2.4、扩展知识&…

2023年的今天,谨慎进入网络安全行业

前言 2023年的今天,慎重进入网安行业吧,目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多,还有很多高中被挖过来的大佬。 理由很简单,目前来说,信息安全的圈子人少,985、211院校很多都才建…

低代码没前途?那是你“盲盒”没拆好

创新本质是什么?一是让昂贵的东西变得便宜,老百姓能用;二是高门槛东西变得低门槛,普通人可用。琢磨着,这不就是说低代码吗? 低代码:让人找不到工作? 低代码无疑成为开发业务的一种…

基于java springboot博客管理系统设计和实现

基于java springboot博客管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目录 …

前端技术到底是深度重要,还是广度重要?

前言 前几天跟朋友讨论“技术广度和技术深度哪个重要”,再想想自己像过山车一般的前端历程,有感而发,想给小兄弟们一些建议~ 为什么会有这个疑问? 还记得两年前,甚至是一年前,当时想要找到一份好工作&am…

API 网关 vs 负载均衡:选择适合你的网络流量管理组件

由于互联网技术的发展,网络数据的请求数节节攀升,这使得服务器承受的压力越来越大。在早期的系统架构中,通常使用负载均衡来将网络流量平摊到多个服务器中,以此减轻单台服务器的压力。但是现如今,后端服务的种类在不断…

STM32-ADC模拟数字转换器

ADC 1、简介1.2、逐次逼近型ADC1.3 ADC基本结构转换模式触发控制数据对齐转换时间(针对高转换速率)校准硬件电路 2、软件编写初始化 1、简介 1、ADC(Analog-Digital Converter)模拟-数字转换器 2、ADC可以将引脚上连续变化的模拟…

【MySQL学习笔记】(一)MySQL数据库基础

MySQL数据库基础 1 MySQL 连接服务器指令2 mysql 和mysqld的区别3 数据库存储 VS 文件存储4 初次使用数据库 理解数据库是什么4.1 使用数据库4.2 小总结 5 主流数据库6 SQL分类7 存储引擎 1 MySQL 连接服务器指令 mysql -h 127.0.0.1 -P 3306 -u root -p-h 指明登录部署了mysq…

Vue3 简介

Vue3简介 01 Vue vue 是一个前端的框架,主要负责帮助我们构建用户的界面MVVM:Model - View - View Modelvue 负责 vm 的工作(视图模型),通过 vue 可以将视图和模型相关联。 当模型发生变化时,视图会自动更…

Quartus 实例应用(1)——EDA技术概述

EDA 技术概述 一、EDA技术及其发展二、Top-down 设计与 IP 核复用2.1 Top-down 设计2.2 Bottom-up 设计2.3 IP 复用技术与 SoC 三、数字设计的流程3.1 设计输入3.2 综合3.3 布局布线3.4 仿真3.5 编程配置 我们已经进入数字化和信息化的时代,其特点是各种数字产品的广…

UM2082F08三通道低频无线唤醒ASK接收芯片

UM2082F08 是基于单周期 8051 内核的超低功耗 8 位、 具有三通道低频无线唤醒 ASK 接收功能的 SOC 芯片。芯片可检测 30KHz~300KHz 范围的 LF(低频)载波频率数据并触发唤醒信号,同时可以调节接收灵敏度,确保在各种应用环境下实现可…

Python(request)爬虫有多强大

Python 的 requests 库是一个非常强大的网络爬虫工具,可以帮助开发人员快速,高效地从各种网站获取信息并处理数据。以下是 requests 库的一些强大功能: 1. 简单易用:requests 库的 API 设计合理,易于学习和使用。使用 …

“咸粽与甜粽”之争再启,五芳斋一季度亏损6393万

又是一年端午粽叶飘香,“咸粽与甜粽”之争再启。 4月29日,浙江五芳斋实业股份有限公司(下称“五芳斋”,603237.SH)公布了2022年报及2023年一季报。 财报公布后的首个交易日(5月4日),其股价下跌…

数据库监控与调优【二】—— 测试数据准备与数据操作工具

测试数据准备与数据操作工具 导入测试数据 使用MySQL官方测试数据库——employee-data 地址&#xff1a;https://dev.mysql.com/doc/index-other.html 下载项目&#xff0c;将项目传到服务器的/opt目录下 导入employees.sql语句 mysql -uroot -pImooc123456 < employe…

软考高级系统架构设计师(九) 作文模板-企业应用集成

目录 作文模板 例子-企业应用集成 摘要 项目相关背景及主要功能 你的岗位及主要职责 论文主体内容的总概 项目最终的实施效果或你的总结和感悟等 正文 项目背景介绍 相关问题回应 主体内容 论文结论 例子-类似方向- 作文模板 例子-企业应用集成 2021系统架构设计…

【App渗透】用BurpSuite抓包安卓手机app内容(详细)

文章目录 前言一、电脑端的配置二、BurpSuite的配置三、手机端的配置四、抓包总结 前言 很多情况下&#xff0c;在电脑的手机模拟器上面做app测试会存在大大小小的bug或者各种坑&#xff0c;而且有些模拟器很不方便&#xff0c;非常不好用。网上的教程虽然多&#xff0c;但是大…

【大数据之Hive】十六、Hive-HQL函数之窗口函数(开窗函数)

1 概述 先定义了窗口的大小&#xff08;按行来算&#xff09;&#xff0c;然后对窗口内的行的数据进行计算&#xff0c;再将计算结果返回给改行。   窗口函数包括窗口和函数两部分&#xff0c;窗口用于定义计算范围&#xff0c;函数用于定义计算逻辑&#xff0c;窗口函数只会…

React通过useContext特性实现组件数据传递

我们来说一个属性 useContext 这个确实用的挺少的 不过 还是简单做一下 打开我们的react项目 在src下创建一个文件夹 components 因为他是两个 甚至多个组件之间使用的 然后在components下创建两个组件 分别叫 dom.jsx dom1.jsx 命名命的比较不规范 不过本身只是做个案例 懒得做…

0-1背包

问题概述&#xff1a; 0-1背包是在n件物品取出若干件放在空间为V的背包里&#xff0c;每件物品的体积为v[ i ]&#xff0c;与之相对应的价值为w[ i ],要求在不超过背包空间的情况下&#xff0c;得到的物品的价值总和最大&#xff0c;问这个最大值是多少&#xff1f; 问题分析…

pod 知识点 下

上一篇分享了 pod 的基本知识点&#xff0c;有 K8S 环境的小伙伴还是可以用起来的&#xff0c;还对比较简单&#xff0c;知道了 pod 的 yaml 文件结构&#xff0c;标识&#xff0c;基本的创建 pod 和删除 pod 的用法等等&#xff0c;我们继续 pod 的基本分类 前面我们说到了 p…