首页 > 其他分享 >ELK Stack - Elasticsearch · 搜索引擎 · 部署应用 · 内部结构 · 倒排索引 · 服务接入

ELK Stack - Elasticsearch · 搜索引擎 · 部署应用 · 内部结构 · 倒排索引 · 服务接入

时间:2024-07-15 09:30:52浏览次数:13  
标签:ELK 9200 倒排 index 索引 Elasticsearch new ES

系列目录

ELK Stack - Elasticsearch · 搜索引擎 · 全文检索 · 部署应用 · 内部结构 · 倒排索引 · 服务接入 ELK Stack - Kibana (待续) ELK Stack - Logstash (待续) ELK Stack - Beats (待续) ELK Stack - Application Performance Monitoring (待续)

本章基于:RHELinux v8+,ELK Stack v8.x,Docker v23.x,VS2022,.NET6,Postman v10.x,Microsoft Edge v124.x

希望我能讲明白,有不妥,请告诉我,让我纠正更多。

一、ELK Stack 介绍

Elasticsearch、Logstash 和 Kibana。也可称为 Elastic Stack。

Elasticsearch 是一个分布式、RESTful 风格的、并且拥有极佳的 查询能力、数据分析、统计能力,每个数据都被编入索引,包括全文检索/地理位置/列存储等。能够水平扩展集群,每秒处理海量事件,自动管理索引和分布式集群中的查询,以惊叹的速度实现极其流畅的操作。

Kibana 则可以进行全面透彻的分析后,从一个 UI 中进行监督和管理,并从多个用例和团队中透视出大量信息,发现洞察/调查威胁/监测系统/评估搜索性能等。也就是将数据转变为结果,使你快速做出响应以解决。所有这些都基于Elasticsearch上完成。

Logstash 是服务器端数据处理管道,在数据传输过程中,能够解析其中的各个事件,识别已命名的字段或以重新构建结构,比如把相似的数据从新划分或组装,也可同时从多个来源采集数据,并将它们转换成通用格式,发送到(ES)存储库中,以便进行更强大的分析和实现更大价值。

ℹ️也就是说:Logstash 采集数据 >> Elasticsearch 数据分析 >> Kibana 呈现结果,不如看下官网对于ELK的架构图:

ELK

上面介绍的好像有点。。。好理解么???

ℹ️特点与应用

:这主要是针对 Elasticsearch 来说,可以做数据的搜索引擎,这比一般的关系型DB可快多了。但搜索的结果可能会有些许的偏差,因为反向索引,就像百度一样,结果中也有不一定是自己想要的信息,但它足够快。

分析:由于快,可以时时分析出一些状态数值等的变化,比如某应用的运行状况/某业务的处理能力波动/或者任何运行指标等,参考这些结果,就可以去采集/发现/预知/可能/洞察/扩展/优化等。这是 ELK Stack 套件的价值所在。

进入本章的重点,Elasticsearch,那它能做什么?

存储数据,快速搜索,一个特别的 DataBase,除 CURD 外,就是快。

我们暂且以这样的认识,往下看。

把 Elasticsearch 部署起来,完成它的 CRUD,这是本篇文章的主要任务。

作者:[Sol·wang] - 博客园,原文出处:https://www.cnblogs.com/Sol-wang/p/17490582.html

二、Elasticsearch 部署

搜索引擎 Elasticsearch,它是用JAVA写的,所以默认自带JDK,不用再部署JAVA环境。或者通过 elasticsearch-env 文件修改为指定的JAVA环境。

2.1 系统准备

1、应ES要求,在 Linux 创建用来运行ES的系统自定义用户:useradd elk

2、应ES要求,提升单进程可允许的最大内存:文件/etc/sysctl.conf追加vm.max_map_count=262144再执行命令sysctl -p后生效

3、应ES要求,为用户调整系统并发限制:vim /etc/security/limits.conf(关于Limits可参考

elk              soft    nofile          65536
elk              hard    nofile          65536

4、开放ES用到的9200/9300端口(可参考);测试环境可直接关闭防火墙:systemctl stop firewalld

2.2 部署启动

ℹ️去官网找源码下载地址:https://www.elastic.co/cn/downloads/elasticsearch

# 官网源码下载
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.7.1-linux-x86_64.tar.gz
# 源码包解压缩
tar -zxvf elasticsearch-8.7.1-linux-x86_64.tar.gz
# 为主目录赋予运行用户(els)的权限(可读可写可执行)
# - 默认情况下,Elasticsearch的data数据文件/logs日志文件 都在主目录下;
# - 倘若计划将数据文件/日志文件配置到其它目录,也要为运行用户赋予响应权限。
chown -R els {path} && chmod -R 754 {path}
# 切换到解压包下的主目录
cd elasticsearch-8.7.1

ℹ️编辑配置文件:vim config/elasticsearch.yml

# 单机基础配置项:
cluster.name: my-elasticsearch            # 自定义集群名称
node.name: node-a                         # 自定义节点名称
network.host: 0.0.0.0                     # 外部可访问的IP
http.port: 9200                           # 对外开放的端口
cluster.initial_master_nodes: ["node-a"]  # 集群初始化节点

ℹ️Linux命令行指定用户启动

# 切换至创建的系统用户
su elk
# 主目录下启动 [p:存储进程号] [d:后台启动]
bin/elasticsearch [-p /tmp/es.pid] [-d]

首次启动 Elasticsearch 时,默认情况下会启用和配置以下安全功能:

- 启用身份验证和授权,为 Elasticsearch 内置超级账号 elastic 并生成密码。
- 为传输层和HTTP层生成TLS的证书和密钥,并使用这些密钥和证书启用和配置TLS。
- 为 Kibana 生成一个注册令牌,是为需要接入 Kibana 的凭证,有效期为30分钟。

(记住以上[密码/密钥/令牌]等信息,后续会用到;当是后台方式 -d 启动时,信息存于日志文件)

ℹ️部署效果预览

浏览器SSL访问:https://{IP}:9200(8.x默认开启SSL)

输入默认账号 elastic 和生成的密码(建议及时变更密码)

重新初始化 Elasticsearch

删除 data 文件夹,删除 logs 内所有文件,再启动。

ℹ️停止运行ES

 - 摧毁进程方式

  先查找ES的进程号PIDps aux | grep elastic 再依PID毁掉进程kill -15 {PID}
  如果启动时-p指定了PID的存储,更便捷/更动态的停止方式:pkill -F /tmp/es.pid

2.3 重设密码

重新生成随机密码:bin/elasticsearch-reset-password -u {uname}

或者自定义新密码:bin/elasticsearch-reset-password -u {uname} -i

2.4 容器方式

当然,任何东西,Docker 容器方式就很便捷了;测试用的「单节点模式」如下:

# 启动 ES 容器
docker run -dit --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.10.3
# 查看启动日志〔超级用户密码/HTTP证书密钥/Kibana令牌〕等
docker logs es
# 在容器内,为 ES 的超级用户 elastic 自动重设密码,取出已生成的密码〔后续连接登录用〕
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

2.5 登录到ES

上小节操作ES启动完成后,就可以通过多种连接方式进行登录,比如浏览器,比如Postman工具,比如某开发语言,都能连到已有节点实例上。

ℹ️浏览器访问ES首页:https://{address}:9200/〔它会弹框让你输入默认超级账号elastic和启动时生成的密码〕

看呢,登录成功了,它的首页给出了ES实例的基本信息。

ℹ️浏览器查看ES所有节点的健康检测信息:https://{address}:9200/_cat/health?v

看呢,它出现了,部署的单节点,当前的健康检测信息。

关于健康检测,首要关注的,当然是每个节点实例的运行状况 status 了,这里的状态分哪几种呢?

  • green:正常,所有分片均已分配。
  • yellow:可用,主分片已分配,但副本存在隐患,当发生隐患时,可能会丢失数据。
  • red:不可用,未分配一个或多个主分片,因此某些数据不可用。

ℹ️浏览器查看所有节点信息:https://{address}:9200/_cat/nodes?v

看呢,它出现了,各节点的信息,之前单节点启动,所以只有一条节点信息了。

ℹ️用Postman工具创建一个自定义索引,https://{address}:9200/{索引名称}

看呢,它创建成功了,当输入账号密码,以 PUT 方式,创建了一个名为「myfirstindex」的索引。

ℹ️浏览器已创建的索引:

看呢,它出现了,刚创建的索引名称「myfirstindex」。

Elasticsearch 默认是开启 SSL 的,所以应该用 HTTPS 方式访问它。

2.6 管理ES的工具与插件

当我们做一些基本的操作时,尤其是在开发测试环境,比如数据的维护,比如节点运行状态,比如后续的集群管理,等等,通过命令行操作,很不方便。

通过工具就很直观了,鼠标点点,就很快捷方便,比较受欢迎的浏览器插件:

  • 老牌浏览器插件:Multi Elasticsearch Head
  • 不轻易告诉别人的后来者优秀插件:Elasticsearch Tools
  • 应该是国人开发的浏览器插件(包括不限于插件):es-client

去搜吧,Chrome 应用市场

标签:ELK,9200,倒排,index,索引,Elasticsearch,new,ES
From: https://www.cnblogs.com/Sol-wang/p/17490582.html

相关文章

  • elasticsearch性能调优方法原理与实战
    ❃博主首页:「码到三十五」,同名公众号:「码到三十五」,wx号:「liwu0213」☠博主专栏:<mysql高手><elasticsearch高手><源码解读><java核心><面试攻关>♝博主的话:搬的每块砖,皆为峰峦之基;公众号搜索「码到三十五」关注这个爱发技术干货的coder,......
  • 基于Ubuntu 24.04 LTS安装elasticsearch-8.14.3+Kibanna
    1.安装Elasticsearch1.1下载Elasticsearch#1.更新包索引sudoaptupdate#2.升级已安装的软件包sudoaptupgrade-y#3.进入/opt目录cd/opt#4.下载Elasticsearch压缩包sudowgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8......
  • 推荐一个Elasticsearch ES可视化客户端工具:ES-King,支持win、mac、linux
    ES-King:开源免费,一个现代、实用的ESGUI客户端,支持多平台。下载地址:https://github.com/Bronya0/ES-King我之前开源的kafka客户端kafka-king(https://github.com/Bronya0/Kafka-King)已经有二百多star了,2k下载,后来又花了不少精力写了一个ES客户端,不过没怎么推广,于是写个文章介绍下......
  • 麒麟V10 安装ELK详细步骤(elasticsearch + kibana + logstash)
    一、ELK介绍ELK系统是一个开源的大数据分析和搜索引擎组合,主要由以下三个部分组成:Elasticsearch:作用:一个分布式搜索和分析引擎,可以处理大规模的结构化和非结构化数据。特点:支持全文搜索、结构化搜索和分析、实时搜索和分析、分布式计算,具有高可扩展性和高可用性。Logsta......
  • ELK三件套平替——Graylog
    Graylog介绍Graylog是一个开源的日志管理和分析系统,它允许用户从各种数据源收集日志,对其进行索引和搜索,以便于实时监控和分析。Graylog提供了强大的搜索功能、灵活的告警机制和易于使用的Web界面,适用于需要对日志数据进行集中管理的场景。原理Graylog的核心工作原理包括......
  • 在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
    #在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)前言关键字:机器学习人工智能AIchatGPT学习实现使用搭建深度python事件远程dockermysql安全技术部署技术自动化代码文章目录-------------......
  • 在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)
    #在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)前言文章目录前言-聚合和分析-执行聚合操作-1.使用JavaAPI执行聚合操作-2.使用CURL命令执行聚合操作-1.使用JavaAPI执行度量操作-2.使用CURL命令执行度量操作-使用缓存-调......
  • 使用Spring Boot集成Elasticsearch
    使用SpringBoot集成Elasticsearch大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!Elasticsearch是一个分布式搜索和分析引擎,特别适用于处理海量数据。本文将详细介绍如何在SpringBoot项目中集成Elasticsearch,包括环境配置、基本CRUD操作和常见问题的解......
  • Python实战Elasticsearch的核心技巧详解
    概要Elasticsearch是一个分布式的搜索引擎,可以用于全文搜索、结构化搜索、分析等多种场景。它基于Lucene构建,提供了强大的搜索功能和数据分析能力。本文将详细介绍如何使用Python实现与Elasticsearch的交互,包括安装、配置、基本操作和实际应用示例。安装和配置安装Elast......
  • elasticsearch: 插件安装与删除
    一,安装插件1,查看已安装的插件:[lhdop@blog~]$curl-XGET"localhost:9200/_cat/plugins?v&s=component"namecomponentversion2,从命令行安装smartcn分词插件:[lhdop@blogbin]$./elasticsearch-plugininstallanalysis-smartcnwarning:ignoringJAVA_HOME=/usr/loc......