高峰只对攀登它而不是仰望它的人来说才有真正意义。

极限网关无缝集成ldap,哇哈哈

本文目的为例验证极限网关和ldap之间的集成功能:

  • 直接访问网关,走ldap验证
  • kibana连接网关,走ldap验证

最近公司对Elasticsearch集群安全抓的紧了,免费的用户名密码固然是好,但还是免不了得给不同的部门、应用创建账户,不想搞。直接LDAP不完了吗?领导说“官方ldap要买license 这么些节点得50w左右。” 我擦,难道没有别的方案了吗?一圈打听下来,还真有。

实验步骤:

  1. 既然是验证ldap,肯定要先准备个ldap 访问 https://github.com/glauth/glauth,下载对应的软件:https://github.com/glauth/glauth/releases 下载ldap的配置文件:https://github.com/glauth/glauth/raw/master/v2/sample-simple.cfg 运行ldap:./glauth64 -c sample-simple.cfg
    1.png

手工验证下ldap是否正常: ldapsearch -LLL -H ldap://localhost:3893 -D cn=serviceuser,ou=svcaccts,dc=glauth,dc=com -w mysecret -x -bdc=glauth,dc=com cn=hackers 能正常返回hackers的信息,则ldap运行正常:

2.png

  1. 配置极限网关 下载极限网关:http://release.infinilabs.com/gateway/snapshot/ 本次测试下载的最新版本:gateway-1.6.0_SNAPSHOT-643 下载完后,去sample里找下ldap的配置。

3.png

修改成自己的环境:

修改 set_basic_auth
flow:
  - name: hello_world
    filter:
      - ldap_auth:
          host: "localhost"
          port: 3893
          bind_dn: "cn=serviceuser,ou=svcaccts,dc=glauth,dc=com"
          bind_password: "mysecret"
          base_dn: "dc=glauth,dc=com"
          user_filter: "(cn=%s)"
          group_attribute: "ou"
          bypass_api_key: true
      - set_basic_auth:
          username: elastic
          password: password

修改elasticsearch资源
elasticsearch:
  - name: 717
    enabled: true
    endpoints:
      - http://192.168.56.3:7171
    basic_auth:
      username: elastic
      password: password
  - name: logging
    enabled: false
    endpoints:
      - http://192.168.3.188:9206
    basic_auth:
      username: elastic
      password: Bp2HyArQDd+5PdgEJ4QH

pipeline:
  # pipelines for logging
#  - name: consume-request_logging_index-to-backup
#    auto_start: true
#    keep_running: true
#    processor:
#      - json_indexing:
#          index_name: "test-gateway_requests"
#          elasticsearch: "logging"
#          input_queue: "request_logging"

启动网关:./gateway-linux-amd64 -config sample-configs/elasticsearch-with-ldap.yml

5.png

  1. 测试ldap是否正常
  2. 直接访问网关,使用ldap中的用户 curl localhost:8000 -u hackers:dogood

6.png

正常返回es的信息 搜索下

61.png

  1. kibana连接网关,输入ldap用户名和密码后登录到Elastic
    kibana 配置网关的地址和ldap中的用户
    elasticsearch.hosts: ["http://127.0.0.1:8000"]
    elasticsearch.username: "hackers"
    elasticsearch.password: "dogood"

    启动kibana后,用ladap用户登录

7.png

71.png

72.png

逻辑:ldap验证通过后,使用 set_basic_auth 中设置的用户名和密码登录到Elasticsearch

至此,本次测试就结束了,ldap功能集成功能正常。而且本方案对Elasticsearch集群无侵入,部署简单。顺手翻了下网站,其实网关还有很多其他高大上的功能:跨站数据查询,高可用,在线查询修改等。阔以,一举多得。 期待后续为各个ldap用户增加到Elastic用户的映射就更加完美了。 目前准备预发环境搞起来。发文冒个泡,希望有在使用的小伙伴一起多交流。

继续阅读 »

本文目的为例验证极限网关和ldap之间的集成功能:

  • 直接访问网关,走ldap验证
  • kibana连接网关,走ldap验证

最近公司对Elasticsearch集群安全抓的紧了,免费的用户名密码固然是好,但还是免不了得给不同的部门、应用创建账户,不想搞。直接LDAP不完了吗?领导说“官方ldap要买license 这么些节点得50w左右。” 我擦,难道没有别的方案了吗?一圈打听下来,还真有。

实验步骤:

  1. 既然是验证ldap,肯定要先准备个ldap 访问 https://github.com/glauth/glauth,下载对应的软件:https://github.com/glauth/glauth/releases 下载ldap的配置文件:https://github.com/glauth/glauth/raw/master/v2/sample-simple.cfg 运行ldap:./glauth64 -c sample-simple.cfg
    1.png

手工验证下ldap是否正常: ldapsearch -LLL -H ldap://localhost:3893 -D cn=serviceuser,ou=svcaccts,dc=glauth,dc=com -w mysecret -x -bdc=glauth,dc=com cn=hackers 能正常返回hackers的信息,则ldap运行正常:

2.png

  1. 配置极限网关 下载极限网关:http://release.infinilabs.com/gateway/snapshot/ 本次测试下载的最新版本:gateway-1.6.0_SNAPSHOT-643 下载完后,去sample里找下ldap的配置。

3.png

修改成自己的环境:

修改 set_basic_auth
flow:
  - name: hello_world
    filter:
      - ldap_auth:
          host: "localhost"
          port: 3893
          bind_dn: "cn=serviceuser,ou=svcaccts,dc=glauth,dc=com"
          bind_password: "mysecret"
          base_dn: "dc=glauth,dc=com"
          user_filter: "(cn=%s)"
          group_attribute: "ou"
          bypass_api_key: true
      - set_basic_auth:
          username: elastic
          password: password

修改elasticsearch资源
elasticsearch:
  - name: 717
    enabled: true
    endpoints:
      - http://192.168.56.3:7171
    basic_auth:
      username: elastic
      password: password
  - name: logging
    enabled: false
    endpoints:
      - http://192.168.3.188:9206
    basic_auth:
      username: elastic
      password: Bp2HyArQDd+5PdgEJ4QH

pipeline:
  # pipelines for logging
#  - name: consume-request_logging_index-to-backup
#    auto_start: true
#    keep_running: true
#    processor:
#      - json_indexing:
#          index_name: "test-gateway_requests"
#          elasticsearch: "logging"
#          input_queue: "request_logging"

启动网关:./gateway-linux-amd64 -config sample-configs/elasticsearch-with-ldap.yml

5.png

  1. 测试ldap是否正常
  2. 直接访问网关,使用ldap中的用户 curl localhost:8000 -u hackers:dogood

6.png

正常返回es的信息 搜索下

61.png

  1. kibana连接网关,输入ldap用户名和密码后登录到Elastic
    kibana 配置网关的地址和ldap中的用户
    elasticsearch.hosts: ["http://127.0.0.1:8000"]
    elasticsearch.username: "hackers"
    elasticsearch.password: "dogood"

    启动kibana后,用ladap用户登录

7.png

71.png

72.png

逻辑:ldap验证通过后,使用 set_basic_auth 中设置的用户名和密码登录到Elasticsearch

至此,本次测试就结束了,ldap功能集成功能正常。而且本方案对Elasticsearch集群无侵入,部署简单。顺手翻了下网站,其实网关还有很多其他高大上的功能:跨站数据查询,高可用,在线查询修改等。阔以,一举多得。 期待后续为各个ldap用户增加到Elastic用户的映射就更加完美了。 目前准备预发环境搞起来。发文冒个泡,希望有在使用的小伙伴一起多交流。

收起阅读 »

Enterprise:使用 Elastic Stack 8.2 中的 Elasticsearch API 来定位 App Search 中的文档

使用 Elastic 8.2 版,你可以轻松地将企业搜索中省时的相关性调优和分析工具与现有的 Elasticsearch 索引结合使用,而无需迁移或更新数据结构。确保从数据采集管道到数据生命周期管理策略的方方面面尽皆齐备,并使用企业搜索中的预配置工具将新的搜索体验快速推向市场。这意味着可实现更快的部署、更直接的相关性管理以及更好地了解您的应用程序、网站和企业中的最终用户搜索行为。详细阅读,请参阅 https://elasticstack.blog.csdn ... 86737
继续阅读 »
使用 Elastic 8.2 版,你可以轻松地将企业搜索中省时的相关性调优和分析工具与现有的 Elasticsearch 索引结合使用,而无需迁移或更新数据结构。确保从数据采集管道到数据生命周期管理策略的方方面面尽皆齐备,并使用企业搜索中的预配置工具将新的搜索体验快速推向市场。这意味着可实现更快的部署、更直接的相关性管理以及更好地了解您的应用程序、网站和企业中的最终用户搜索行为。详细阅读,请参阅 https://elasticstack.blog.csdn ... 86737 收起阅读 »

Elasticsearch 技术短视频分享持续更新中.......

Elasticsearch 系列技术短视频分享持续更新中......
 
https://space.bilibili.com/471049389
 
不大不小的视频试水,欢迎大家留言和拍砖!
 
 
Elasticsearch 系列技术短视频分享持续更新中......
 
https://space.bilibili.com/471049389
 
不大不小的视频试水,欢迎大家留言和拍砖!
 
 

使用 Elastic 8.2 版打造流畅的搜索驱动型客户体验

今天,我们很高兴地宣布,全球领先的搜索驱动型解决方案平台的最新版 Elastic 8.2 正式上线。

有了 Elastic 8.2 版,我们的客户和社区将能够更快地打造流畅的搜索体验。从“低代码”到“完全控制”,Elastic 8.2 版为用户提供了更大的灵活性,让他们可以用自己喜欢的方法来构建搜索驱动型解决方案。

此外,Elastic 8.2 版通过基于尾部的采样进一步扩展了对高度分布式、大容量云原生服务的可见性,再加上带有背景信息的告警、精简的主机检查、新的调查指南以及威胁情报解决方案的全面上线,安全分析师的体验也有了大幅提升。

通过采用全新的随机采样器聚合、对 Elasticsearch 矢量搜索功能进行多项改进,以及在 Kibana 中正式推出 Discover 的新数据探索工具,无论用户选择如何使用自己的数据,升级到 Elastic 8.2 版的用户都可以更快地获得搜索结果和见解。无论是将人员和团队与重要内容关联起来、优化任务关键型应用程序和基础架构,还是保护数字生态系统免受网络威胁,全新上线的 Elastic 8.2 版都可以帮助每个人成功迈上新的台阶。
更多阅读请参阅 https://elasticstack.blog.csdn ... 81433
继续阅读 »
今天,我们很高兴地宣布,全球领先的搜索驱动型解决方案平台的最新版 Elastic 8.2 正式上线。

有了 Elastic 8.2 版,我们的客户和社区将能够更快地打造流畅的搜索体验。从“低代码”到“完全控制”,Elastic 8.2 版为用户提供了更大的灵活性,让他们可以用自己喜欢的方法来构建搜索驱动型解决方案。

此外,Elastic 8.2 版通过基于尾部的采样进一步扩展了对高度分布式、大容量云原生服务的可见性,再加上带有背景信息的告警、精简的主机检查、新的调查指南以及威胁情报解决方案的全面上线,安全分析师的体验也有了大幅提升。

通过采用全新的随机采样器聚合、对 Elasticsearch 矢量搜索功能进行多项改进,以及在 Kibana 中正式推出 Discover 的新数据探索工具,无论用户选择如何使用自己的数据,升级到 Elastic 8.2 版的用户都可以更快地获得搜索结果和见解。无论是将人员和团队与重要内容关联起来、优化任务关键型应用程序和基础架构,还是保护数字生态系统免受网络威胁,全新上线的 Elastic 8.2 版都可以帮助每个人成功迈上新的台阶。
更多阅读请参阅 https://elasticstack.blog.csdn ... 81433 收起阅读 »

极限网关初探(2)配置

配置

上一篇我们先学习了极限网关的安装和启动,今天学习配置。

读写分离

现在我们遇到读写分离的需求,用网关该怎么做呢? 假设服务端现在从 http://127.0.0.1:8000 写入数据,从 http://127.0.0.1:9000 读取数据,怎么设计呢?

首先查看文档配置文档

我们在 gateway.yml 中定义两个 entry,分别绑定不同的端口,配置不同的 router

entry:
  - name: write_es
    enabled: true
    router: write_router
    network:
      binding: 0.0.0.0:8000
  - name: read_es
    enabled: true
    router: read_router
    network:
      binding: 0.0.0.0:9000

router:
  - name: write_router
    default_flow: default_flow
    tracing_flow: logging
  - name: read_router
    default_flow: default_flow
    tracing_flow: logging

为了演示效果,只配置一个 Elasticsearch

elasticsearch:
- name: dev
  enabled: true
  schema: http
  hosts:
    - 192.168.3.188:9206

启动项目

我们从 http://127.0.0.1:8000 写入一条数据,再从 http://127.0.0.1:9000 读取该条数据

添加接口

返回字符串

我们想自定义添加一个接口,怎么在不写代码的情况下通过配置实现返回字符串

flow:
  - name: hello_flow
    filter:
      - echo:
          message: "hello flow"

router:
  - name: read_router
    default_flow: hello_flow

修改配置后启动

返回 json 数据

返回字符串不符合标准的 restful 接口规范,怎么返回给调用方标准 json 数据?

filter:
  - set_response:
      content_type: application/json
      body: '{"message":"hello world"}'

修改配置后启动

修改路由

我们已经新加了接口,返回 json 数据,但是接口是直接定义在 http://127.0.0.1:9000 中,之前网关的接口就无法使用,所以我们需要单独为自定义的接口指定单独的路由

router:
  - name: read_router
    default_flow: default_flow
    tracing_flow: logging
    rules:
      - method:
          - GET
        pattern:
          - "/hello"
        flow:
          - hello_flow

default_flow: 默认的处理流,也就是业务处理的主流程,请求转发、过滤、缓存等操作都在这里面进行

tracing_flow:用于追踪请求状态的流,用于记录请求日志、统计等

如果我们有过开发经验,了解 MVC 模式,flow 就类似 MVC 中的 Controller,rules 中类似路由规则,当请求匹配到配置中的路由规则时,由配置的 flow 处理业务逻辑。

数据整体流向,从服务端发到网关,网关为每个 Elasticsearch 绑定不同的 IP 地址,每个 Elasticsearch 都有唯一一个 router 和它对应,根据请求的 method 和 path 匹配到 router 中的一个 flow,flow 中包含多个 filter 处理对数据进行流式处理

如下图所示

流式处理是什么,假设水从一个管子里面流出来,管子旁边每一段依次站了几个人,第一个人往水里放点鱼,鱼和水到了第二个人,第二个人往水里放点草,鱼、水和草到了第三人等等,每个人对水做一定的操作,水经过这些操作后最后到达水池里。

我们可以把数据当成水,filter 是管子旁边的人,水池就是 Elasticsearch

总结

在学习了router/flow/filter后,我们已经对极限网关的配置有了初步的了解,后续开发的时候直接查阅文档。

继续阅读 »

配置

上一篇我们先学习了极限网关的安装和启动,今天学习配置。

读写分离

现在我们遇到读写分离的需求,用网关该怎么做呢? 假设服务端现在从 http://127.0.0.1:8000 写入数据,从 http://127.0.0.1:9000 读取数据,怎么设计呢?

首先查看文档配置文档

我们在 gateway.yml 中定义两个 entry,分别绑定不同的端口,配置不同的 router

entry:
  - name: write_es
    enabled: true
    router: write_router
    network:
      binding: 0.0.0.0:8000
  - name: read_es
    enabled: true
    router: read_router
    network:
      binding: 0.0.0.0:9000

router:
  - name: write_router
    default_flow: default_flow
    tracing_flow: logging
  - name: read_router
    default_flow: default_flow
    tracing_flow: logging

为了演示效果,只配置一个 Elasticsearch

elasticsearch:
- name: dev
  enabled: true
  schema: http
  hosts:
    - 192.168.3.188:9206

启动项目

我们从 http://127.0.0.1:8000 写入一条数据,再从 http://127.0.0.1:9000 读取该条数据

添加接口

返回字符串

我们想自定义添加一个接口,怎么在不写代码的情况下通过配置实现返回字符串

flow:
  - name: hello_flow
    filter:
      - echo:
          message: "hello flow"

router:
  - name: read_router
    default_flow: hello_flow

修改配置后启动

返回 json 数据

返回字符串不符合标准的 restful 接口规范,怎么返回给调用方标准 json 数据?

filter:
  - set_response:
      content_type: application/json
      body: '{"message":"hello world"}'

修改配置后启动

修改路由

我们已经新加了接口,返回 json 数据,但是接口是直接定义在 http://127.0.0.1:9000 中,之前网关的接口就无法使用,所以我们需要单独为自定义的接口指定单独的路由

router:
  - name: read_router
    default_flow: default_flow
    tracing_flow: logging
    rules:
      - method:
          - GET
        pattern:
          - "/hello"
        flow:
          - hello_flow

default_flow: 默认的处理流,也就是业务处理的主流程,请求转发、过滤、缓存等操作都在这里面进行

tracing_flow:用于追踪请求状态的流,用于记录请求日志、统计等

如果我们有过开发经验,了解 MVC 模式,flow 就类似 MVC 中的 Controller,rules 中类似路由规则,当请求匹配到配置中的路由规则时,由配置的 flow 处理业务逻辑。

数据整体流向,从服务端发到网关,网关为每个 Elasticsearch 绑定不同的 IP 地址,每个 Elasticsearch 都有唯一一个 router 和它对应,根据请求的 method 和 path 匹配到 router 中的一个 flow,flow 中包含多个 filter 处理对数据进行流式处理

如下图所示

流式处理是什么,假设水从一个管子里面流出来,管子旁边每一段依次站了几个人,第一个人往水里放点鱼,鱼和水到了第二个人,第二个人往水里放点草,鱼、水和草到了第三人等等,每个人对水做一定的操作,水经过这些操作后最后到达水池里。

我们可以把数据当成水,filter 是管子旁边的人,水池就是 Elasticsearch

总结

在学习了router/flow/filter后,我们已经对极限网关的配置有了初步的了解,后续开发的时候直接查阅文档。

收起阅读 »

极限网关初探(1) 安装启动

产品介绍

极限网关(INFINI Gateway)是一个面向 Elasticsearch 的高性能应用网关。特性丰富,使用简单。

它和其他业务型网关最大的区别是业务网关把请求转发给各个底层微服务,而它把请求转发给 Elasticsearch,更多是类似 Mycat 的中间件的作用。

没有使用网关之前,服务端请求多个节点

使用网关后

下载地址

打开 下载地址,根据操作系统版本选择。

Windows 安装和启动

安装

下载 gateway-1.6.0_SNAPSHOT-597-windows-amd64.zip,解压如下。 gateway-windows-amd64.exe 是启动文件,gateway.yml 是默认配置文件。

启动失败

当 gateway.yml 的 elasticsearch 选项中的 hosts 不能正常响应请求的时候,启动界面如下。

为什么 elasticsearch 不能访问的时候,网关还要继续提供服务呢,为什么不像业务接口启动时在基础业务组件如 MySQL/Redis 不能正常响应就直接 panic?

一方面网关作为 elasticsearch 抵挡流量冲击的城墙,在 elasticsearch 不能提供服务的时候,对之前成功的请求缓存结果,继续提供有限度的服务,为 elasticsearch 修复后上线争取时间。

另一方面业务接口和基础组件是强耦合关系,没有基础组件就完全无法对外提供数据读写服务,而网关与 elasticsearch 是松耦合关系,网关在没有 elasticsearch 的情况下也能对外提供有限度的服务。

在 gateway.yml 的 elasticsearch 选项中的 hosts 改成能够正常响应的 elasticsearch 请求地址。

启动成功

双击 gateway-windows-amd64.exe 文件,启动成功界面如下

访问

API 访问

由启动后终端显示可知,网关的 API 接口地址是 http://localhost:2900

[api.go:262] api listen at: http://0.0.0.0:2900

打开浏览器输入 http://localhost:2900,显示所有可以对外提供的 API 接口

我们选择其中一个,在浏览器中输入 http://localhost:2900/_framework/api/_version 从路由上看该接口是查询产品的版本信息,显示如下

gateway.yml 中可以看到有被注释掉的一段配置,看起来应该是配置 api 地址的地方。

#api:
#  enabled: true
#  network:
#    binding: 127.0.0.1:2900

把注释去掉后尝试把端口改成 2901。

api:
  enabled: true
  network:
    binding: 127.0.0.1:2901

改完后启动 打开浏览器先输入 http://localhost:2900,无法正常响应请求,再输入 http://localhost:2901,可以正常响应,界面和修改配置前访问 http://localhost:2900 的界面一样,说明 API 请求地址成功修改

Elasticsearch 访问

启动日志中显示监听 8000 端口,猜测应该是 elasticsearch 请求地址,打开浏览器输入 http://127.0.0.1:8000/

 entry [my_es_entry] listen at: http://0.0.0.0:8000

gateway.yml 中可以看到 my_es_entry 的 network 绑定 8000 端口,显而易见的这部分就是配置代理转发给 elasticsearch 的地址,所以安装后只需要把以前请求 elasticsearch 的地址修改为该地址。

entry:
  - name: my_es_entry
    enabled: true
    router: my_router
    max_concurrency: 10000
    network:
      binding: 0.0.0.0:8000

总结

我们成功安装和启动极限网关,接下来我们学习怎么根据需求修改配置。

继续阅读 »

产品介绍

极限网关(INFINI Gateway)是一个面向 Elasticsearch 的高性能应用网关。特性丰富,使用简单。

它和其他业务型网关最大的区别是业务网关把请求转发给各个底层微服务,而它把请求转发给 Elasticsearch,更多是类似 Mycat 的中间件的作用。

没有使用网关之前,服务端请求多个节点

使用网关后

下载地址

打开 下载地址,根据操作系统版本选择。

Windows 安装和启动

安装

下载 gateway-1.6.0_SNAPSHOT-597-windows-amd64.zip,解压如下。 gateway-windows-amd64.exe 是启动文件,gateway.yml 是默认配置文件。

启动失败

当 gateway.yml 的 elasticsearch 选项中的 hosts 不能正常响应请求的时候,启动界面如下。

为什么 elasticsearch 不能访问的时候,网关还要继续提供服务呢,为什么不像业务接口启动时在基础业务组件如 MySQL/Redis 不能正常响应就直接 panic?

一方面网关作为 elasticsearch 抵挡流量冲击的城墙,在 elasticsearch 不能提供服务的时候,对之前成功的请求缓存结果,继续提供有限度的服务,为 elasticsearch 修复后上线争取时间。

另一方面业务接口和基础组件是强耦合关系,没有基础组件就完全无法对外提供数据读写服务,而网关与 elasticsearch 是松耦合关系,网关在没有 elasticsearch 的情况下也能对外提供有限度的服务。

在 gateway.yml 的 elasticsearch 选项中的 hosts 改成能够正常响应的 elasticsearch 请求地址。

启动成功

双击 gateway-windows-amd64.exe 文件,启动成功界面如下

访问

API 访问

由启动后终端显示可知,网关的 API 接口地址是 http://localhost:2900

[api.go:262] api listen at: http://0.0.0.0:2900

打开浏览器输入 http://localhost:2900,显示所有可以对外提供的 API 接口

我们选择其中一个,在浏览器中输入 http://localhost:2900/_framework/api/_version 从路由上看该接口是查询产品的版本信息,显示如下

gateway.yml 中可以看到有被注释掉的一段配置,看起来应该是配置 api 地址的地方。

#api:
#  enabled: true
#  network:
#    binding: 127.0.0.1:2900

把注释去掉后尝试把端口改成 2901。

api:
  enabled: true
  network:
    binding: 127.0.0.1:2901

改完后启动 打开浏览器先输入 http://localhost:2900,无法正常响应请求,再输入 http://localhost:2901,可以正常响应,界面和修改配置前访问 http://localhost:2900 的界面一样,说明 API 请求地址成功修改

Elasticsearch 访问

启动日志中显示监听 8000 端口,猜测应该是 elasticsearch 请求地址,打开浏览器输入 http://127.0.0.1:8000/

 entry [my_es_entry] listen at: http://0.0.0.0:8000

gateway.yml 中可以看到 my_es_entry 的 network 绑定 8000 端口,显而易见的这部分就是配置代理转发给 elasticsearch 的地址,所以安装后只需要把以前请求 elasticsearch 的地址修改为该地址。

entry:
  - name: my_es_entry
    enabled: true
    router: my_router
    max_concurrency: 10000
    network:
      binding: 0.0.0.0:8000

总结

我们成功安装和启动极限网关,接下来我们学习怎么根据需求修改配置。

收起阅读 »

Elasticsearch:Reindex API 使用和故障排除的 3 个实践

使用 Elasticsearch 时,你可能希望将数据从一个索引移动到另一个索引,甚至从一个 Elasticsearch 集群移动到另一个 Elasticsearch 集群。 可以使用多种方法来实现这个,Reindex API 就是其中之一。

在这篇博文中,我将讨论 reindex API、如何知道 API 是否正常工作、可能导致潜在故障的原因以及如何排除故障。

在这篇博文结束时,你将了解 Reindex API 的选项以及如何自信地运行它。

Reindex API 是跨多个用例的最有用的 API 之一:

在集群之间传输数据(从远程集群重新索引)
重新定义、更改和/或更新映射
通过摄入管道(ingest pipeline)处理和索引
清除已删除的文档以回收存储空间
通过查询过滤器将大索引分成更小的组

在中型或大型索引中运行 reindex API 时,完整的 reindex 可能需要超过 120 秒,这意味着你将没有 reindex API 最终响应,你不知道它何时完成,是否有效,或者 如果有失败。

让我们来看看!
https://elasticstack.blog.csdn ... 11632
继续阅读 »
使用 Elasticsearch 时,你可能希望将数据从一个索引移动到另一个索引,甚至从一个 Elasticsearch 集群移动到另一个 Elasticsearch 集群。 可以使用多种方法来实现这个,Reindex API 就是其中之一。

在这篇博文中,我将讨论 reindex API、如何知道 API 是否正常工作、可能导致潜在故障的原因以及如何排除故障。

在这篇博文结束时,你将了解 Reindex API 的选项以及如何自信地运行它。

Reindex API 是跨多个用例的最有用的 API 之一:

在集群之间传输数据(从远程集群重新索引)
重新定义、更改和/或更新映射
通过摄入管道(ingest pipeline)处理和索引
清除已删除的文档以回收存储空间
通过查询过滤器将大索引分成更小的组

在中型或大型索引中运行 reindex API 时,完整的 reindex 可能需要超过 120 秒,这意味着你将没有 reindex API 最终响应,你不知道它何时完成,是否有效,或者 如果有失败。

让我们来看看!
https://elasticstack.blog.csdn ... 11632 收起阅读 »

Elasticsearch认证培训及生产实战

课程定价:5500元(不含考试费) 上课方式:全程直播 开课时间:2022年6月11日、12日、18日、19日、25日,周六日直播上课,每天9:00~12:00,14:00~18:00

咨询方式:

孟老师 电话:18811088238 微信二维码:

图片1.png

课程简介

首先,分别介绍:Elasticsearch、ECE认证:

  • Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。
  • 管理员认证计划ECE(Elastic Certifled Engineer),通过 ECE认证的工程师说明已经满足对Elasticsearch进行管理的能力,可胜任Elasticsearch相关工作,同时也是Elasticsearch工作道路上的敲门砖。

    课程特色:少有的生产落地实践

  • 讲师更加权威:具有多年的云原生与Elastic的售前架构设计与项目落地经验,并具备云原生与Elastic相关认证。
  • 实践落地为先:课程包含了ECE(Elastic Certifled Engineer)认证与Elastic多种应用场景在项目中的架构设计与落地。 适配岗位

图片2.png

适合人群

本次课程适用从事技术实施工程师、开发人员、运维工程师,课程学完后可以掌握Elastic在企业中的项目落地与最佳实践,如:日志搜集与全观测、全文搜索、数据库加速技术场景的掌握。帮助学员快速掌握Elastic的理论知识和专业技能,从容面对Elastic认证考试以及在Elastic领域的职业挑战。

课程大纲

第一阶段 Elasticsearch环境搭建

第一课 初识Elasticsearch

  • Elasticsearch发展史
  • Elasticsearch应用场景
  • Elasticsearch核心概念讲解  

    第二课 节点类型

  • 节点类型介绍
  • 节点类型配置   

    第三课 ElasticSearch集群搭建和kibana可视化界面部署

  • 基础环境配置
  • 配置文件讲解   

    第二阶段 ElasticSearch数据建模

    第四课 index & document

  • 倒排索引介绍
  • index创建与删除
  • index关闭与开启
  • 数据更新  

    第五课 Reindex

  • Reindex概述
  • Reindex实践   

    第六课 Mapping

  • 动态映射(dynamic mapping)
  • 显示映射(Explicit mapping)
  • Runtime fields
  • 常用字段数据类型
  • 元数据字段讲解
  • 常用映射参数讲解

第七课 Analysis

  • Character filter
  • Tokenizer
  • TokenFilter
  • 自定义文本分词器

第八课 索引模板(index template)与索引别名(Alias)

  • 索引模板的创建与使用
  • 索引别名的创建与使用

第九课 索引声明周期管理(ILM)

  • ILM概述
  • ILM创建及使用
  • ILM常用管理操作

第十课 Data stream(数据流)

  • 设置数据流
  • 使用数据流
  • 更改数据流的映射和设置

第十一课 Ingest pipline

  • Ingest pipline 概述
  • Ingest pipline 使用案例
  • 常见processors

第三阶段 ElasticSearch数据查询

第十二课 Full text query(全文查询)

  • Match查询
  • Match phrase查询
  • Multi match多字段查询
  • Query string 字符串查询
  • Simple querystring 简单字符串查询

第十三课 Compound query(复合查询)

  • Boolean 布尔查询
  • Boosting 加权查询
  • Constant score 固定分值查询
  • Disjunction max 单字符串多字段查询
  • Function score 优化算分查询

第十四课 joining query

  • Nested 嵌套
  • 文档父子关联关系

第十五课 Aggregation(聚和分析)

  • Bucket聚和查询
  • Metrics 聚和查询
  • Pipline 聚和分析

第十六课 Search your data

  • 高量显示
  • 分页查询
  • 对查询结果进行排序
  • 跨集群搜索与复制
  • 搜索模板

第四阶段 集群管理

第十七课 User & Role

  • Security 安全认证配置
  • 创建用户角色
  • 创建用户

第十八课 快照与恢复

  • 创建快照
  • 恢复快照
  • 删除快照

第十九课 生产集群落地

  • 节点角色规划
  • 节点资源规划
  • 集群升级
  • 集群扩容
  • 集群性能调优

第二十课 常见运维操作

  • 常见问题及解决方案

第二十一课 多集群监控管理实战

  • 使用prometheus实现ElasticSearch多集群监控
  • 使用极限平台实现ElasticSearch多集群监控

第二十二课:kibana

  • kibana概述
  • Kibana高可用部署架构与dashboard管理

第四阶段 项目实战

日志搜集项目实战

图片3.png

数据库加速项目实战

图片4.png

第五阶段 ECE认证

  • 如何报名考试
  • 参加考试注意事项
  • 考前模拟练习
继续阅读 »

课程定价:5500元(不含考试费) 上课方式:全程直播 开课时间:2022年6月11日、12日、18日、19日、25日,周六日直播上课,每天9:00~12:00,14:00~18:00

咨询方式:

孟老师 电话:18811088238 微信二维码:

图片1.png

课程简介

首先,分别介绍:Elasticsearch、ECE认证:

  • Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。
  • 管理员认证计划ECE(Elastic Certifled Engineer),通过 ECE认证的工程师说明已经满足对Elasticsearch进行管理的能力,可胜任Elasticsearch相关工作,同时也是Elasticsearch工作道路上的敲门砖。

    课程特色:少有的生产落地实践

  • 讲师更加权威:具有多年的云原生与Elastic的售前架构设计与项目落地经验,并具备云原生与Elastic相关认证。
  • 实践落地为先:课程包含了ECE(Elastic Certifled Engineer)认证与Elastic多种应用场景在项目中的架构设计与落地。 适配岗位

图片2.png

适合人群

本次课程适用从事技术实施工程师、开发人员、运维工程师,课程学完后可以掌握Elastic在企业中的项目落地与最佳实践,如:日志搜集与全观测、全文搜索、数据库加速技术场景的掌握。帮助学员快速掌握Elastic的理论知识和专业技能,从容面对Elastic认证考试以及在Elastic领域的职业挑战。

课程大纲

第一阶段 Elasticsearch环境搭建

第一课 初识Elasticsearch

  • Elasticsearch发展史
  • Elasticsearch应用场景
  • Elasticsearch核心概念讲解  

    第二课 节点类型

  • 节点类型介绍
  • 节点类型配置   

    第三课 ElasticSearch集群搭建和kibana可视化界面部署

  • 基础环境配置
  • 配置文件讲解   

    第二阶段 ElasticSearch数据建模

    第四课 index & document

  • 倒排索引介绍
  • index创建与删除
  • index关闭与开启
  • 数据更新  

    第五课 Reindex

  • Reindex概述
  • Reindex实践   

    第六课 Mapping

  • 动态映射(dynamic mapping)
  • 显示映射(Explicit mapping)
  • Runtime fields
  • 常用字段数据类型
  • 元数据字段讲解
  • 常用映射参数讲解

第七课 Analysis

  • Character filter
  • Tokenizer
  • TokenFilter
  • 自定义文本分词器

第八课 索引模板(index template)与索引别名(Alias)

  • 索引模板的创建与使用
  • 索引别名的创建与使用

第九课 索引声明周期管理(ILM)

  • ILM概述
  • ILM创建及使用
  • ILM常用管理操作

第十课 Data stream(数据流)

  • 设置数据流
  • 使用数据流
  • 更改数据流的映射和设置

第十一课 Ingest pipline

  • Ingest pipline 概述
  • Ingest pipline 使用案例
  • 常见processors

第三阶段 ElasticSearch数据查询

第十二课 Full text query(全文查询)

  • Match查询
  • Match phrase查询
  • Multi match多字段查询
  • Query string 字符串查询
  • Simple querystring 简单字符串查询

第十三课 Compound query(复合查询)

  • Boolean 布尔查询
  • Boosting 加权查询
  • Constant score 固定分值查询
  • Disjunction max 单字符串多字段查询
  • Function score 优化算分查询

第十四课 joining query

  • Nested 嵌套
  • 文档父子关联关系

第十五课 Aggregation(聚和分析)

  • Bucket聚和查询
  • Metrics 聚和查询
  • Pipline 聚和分析

第十六课 Search your data

  • 高量显示
  • 分页查询
  • 对查询结果进行排序
  • 跨集群搜索与复制
  • 搜索模板

第四阶段 集群管理

第十七课 User & Role

  • Security 安全认证配置
  • 创建用户角色
  • 创建用户

第十八课 快照与恢复

  • 创建快照
  • 恢复快照
  • 删除快照

第十九课 生产集群落地

  • 节点角色规划
  • 节点资源规划
  • 集群升级
  • 集群扩容
  • 集群性能调优

第二十课 常见运维操作

  • 常见问题及解决方案

第二十一课 多集群监控管理实战

  • 使用prometheus实现ElasticSearch多集群监控
  • 使用极限平台实现ElasticSearch多集群监控

第二十二课:kibana

  • kibana概述
  • Kibana高可用部署架构与dashboard管理

第四阶段 项目实战

日志搜集项目实战

图片3.png

数据库加速项目实战

图片4.png

第五阶段 ECE认证

  • 如何报名考试
  • 参加考试注意事项
  • 考前模拟练习
收起阅读 »

Elastic日报 第1344期 (2021-03-12)

1. 阿里云Elasticsearch向量检索引擎快速实现图像搜索、视频指纹采样、人脸识别、语音识别和商品推荐等向量检索场景的需求
https://www.alibabacloud.com/h ... 2.htm

2. 创建Elasticsearch数据清洗任务,将RavenDB中的数据处理到Elasticsearch
https://ravendb.net/docs/artic ... earch

3. 用DbVisualizer管理Elasticsearch的数据
https://www.dbvis.com/database/elasticsearch/

编辑:陶希阳
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1. 阿里云Elasticsearch向量检索引擎快速实现图像搜索、视频指纹采样、人脸识别、语音识别和商品推荐等向量检索场景的需求
https://www.alibabacloud.com/h ... 2.htm

2. 创建Elasticsearch数据清洗任务,将RavenDB中的数据处理到Elasticsearch
https://ravendb.net/docs/artic ... earch

3. 用DbVisualizer管理Elasticsearch的数据
https://www.dbvis.com/database/elasticsearch/

编辑:陶希阳
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

有了这两个小脚本,不需要再傻乎乎地手动安装 Elasticsearch了

在学习 ES 前一般都需要安装 ES,虽然 ES 可以开箱即用,但如果要学习分布式特性的时候,需要安装多个节点,这个时候还是有点工作量的。下面提供两个小脚本,一个是在 Ubuntu 中安装 3 节点的 ES 伪集群,一个是在 docker 中安装3节点 ES 集群。除了安装 ES 外,脚本还提供了对应版本的 Kibana、Cerebro 0.9.4 的安装。

1、在 Ubuntu 中安装 ES 7.13

这里我们采取下载 ES 安装包并且解压安装的方式,并没有走 Ubuntu apt 的方式。ES 的安装非常简单,这里先献上安装脚本

下面介绍比较重要的配置项:

  • discovery.seed_hosts 在开箱即用的情境下(本机环境)无需配置,ES 会自动扫描本机的 9300 到 9305 端口。一旦进行了网络环境配置,这个自动扫描操作就不会执行。discovery.seed_hosts 配置为 master 候选者节点即可。如果需要指定端口的话,其值可以为:["localhost:9300", "localhost:9301"]

  • cluster.initial_master_nodes 指定新集群 master 候选者列表,其值为节点的名字列表。如果配置了 node.name: my_node_1,所以其值为 ["my_node_1"],而不是 ip 列表 !

  • network.host 和 http.port 是 ES 提供服务的监听地址和端口,线上一定不能配置 ip 为 0.0.0.0,这是非常危险的行为!!!

怎么样来理解这个 discovery.seed_hosts 和 cluster.initial_master_nodes 呢?

cluster.initial_master_nodes 是候选者列表,一般我们线上环境候选者的数量比较少,毕竟是用来做备用的。而且这个配置只跟选举 master 有关,也就是跟其他类型的节点没有关系。就算你有100个数据节点,然后经常增加或者剔除都不需要动这个列表。

discovery.seed_hosts 这个可以理解为是做服务或者节点发现的,其他节点必须知道他们才能进入集群~ 一般配置为集群的master 候选者的列表。

但是这些 master 候选者(组织联系人)可能经常变化,那怎么办呢?这个配置项除了支持 ip 外还支持域名 ~所以可以用域名来解决这个问题,其他节点的配置上写的是域名,域名解析到对应的 ip,如果机器挂了,新的节点 ip 换了,就把域名解析到新的ip即可,这样其他节点的配就不用修改了。所以非 master 候选节点要配 discovery.seed_hosts (组织联系人)

除了修改 ES 服务配置外,还需要配置 JVM 的配置,我们主要配置服务占用的堆内存的大小。JVM 配置需要以下几点:

  • 这两个 jvm 的配置必须配置一样的数值。启动时就分配好内存空间,避免运行时申请分配内存造成系统抖动。
  • Xmx不要超过机器内存的 50%,留下些内存供 JVM 堆外内存使用
  • 并且Xmx不要超过 32G。建议最大配置为 30G。接近 32G,JVM 会启用压缩对象指针的功能,导致性能下降。具体可以参考:a-heap-of-trouble

安装成功后,可以访问: ES:localhost:9211

Kibana: localhost:5601

cerebro: localhost:9800

2、在docker 中安装 ES 7.13

在做一切工作之前,我们必须安装 docker。如果你已经安装好了 docker、docker-compose,可以访问我为你准备的 docker-compose.yaml 文件。

如果你没有安装 docker,完整的教程可以参考在 docker 中安装 ES 文档

下载此文件,将文件保存为 docker-compose.yaml 后,进入这个文件的目录,执行以下指令即可:

docker-compose up

如果你没有下载镜像文件,docker-compose 会自动帮你下载镜像,并且启动容器。

如果 docker-compose 启动失败,说是无权限链接 docker 的话,其报错如下:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 

Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Ddocker_es%22%3Atrue%7D%7D&limit=0": 

dial unix /var/run/docker.sock: connect: permission denied

可以运行以下指令临时修改:

sudo chmod 666 /var/run/docker.sock

其原因是因为你的 docker 用了 root 启动了。

最后可以访问:

cerebro:ip:9000

Kibana:ip:5601

Elasticsearch: ip:9200,ip:9202,ip:9203

其他学习资料

创建自己的 ES Docker Image

在 docker image 中安装 Elasticsearch 插件

一个开源的 ELK docker-compose 配置

docker 中安装 ES 7.13

docker 中安装 Kibana 7.13

最后附上我写的小册,欢迎刚入门的朋友来订阅~

WX20220224-174733.png

继续阅读 »

在学习 ES 前一般都需要安装 ES,虽然 ES 可以开箱即用,但如果要学习分布式特性的时候,需要安装多个节点,这个时候还是有点工作量的。下面提供两个小脚本,一个是在 Ubuntu 中安装 3 节点的 ES 伪集群,一个是在 docker 中安装3节点 ES 集群。除了安装 ES 外,脚本还提供了对应版本的 Kibana、Cerebro 0.9.4 的安装。

1、在 Ubuntu 中安装 ES 7.13

这里我们采取下载 ES 安装包并且解压安装的方式,并没有走 Ubuntu apt 的方式。ES 的安装非常简单,这里先献上安装脚本

下面介绍比较重要的配置项:

  • discovery.seed_hosts 在开箱即用的情境下(本机环境)无需配置,ES 会自动扫描本机的 9300 到 9305 端口。一旦进行了网络环境配置,这个自动扫描操作就不会执行。discovery.seed_hosts 配置为 master 候选者节点即可。如果需要指定端口的话,其值可以为:["localhost:9300", "localhost:9301"]

  • cluster.initial_master_nodes 指定新集群 master 候选者列表,其值为节点的名字列表。如果配置了 node.name: my_node_1,所以其值为 ["my_node_1"],而不是 ip 列表 !

  • network.host 和 http.port 是 ES 提供服务的监听地址和端口,线上一定不能配置 ip 为 0.0.0.0,这是非常危险的行为!!!

怎么样来理解这个 discovery.seed_hosts 和 cluster.initial_master_nodes 呢?

cluster.initial_master_nodes 是候选者列表,一般我们线上环境候选者的数量比较少,毕竟是用来做备用的。而且这个配置只跟选举 master 有关,也就是跟其他类型的节点没有关系。就算你有100个数据节点,然后经常增加或者剔除都不需要动这个列表。

discovery.seed_hosts 这个可以理解为是做服务或者节点发现的,其他节点必须知道他们才能进入集群~ 一般配置为集群的master 候选者的列表。

但是这些 master 候选者(组织联系人)可能经常变化,那怎么办呢?这个配置项除了支持 ip 外还支持域名 ~所以可以用域名来解决这个问题,其他节点的配置上写的是域名,域名解析到对应的 ip,如果机器挂了,新的节点 ip 换了,就把域名解析到新的ip即可,这样其他节点的配就不用修改了。所以非 master 候选节点要配 discovery.seed_hosts (组织联系人)

除了修改 ES 服务配置外,还需要配置 JVM 的配置,我们主要配置服务占用的堆内存的大小。JVM 配置需要以下几点:

  • 这两个 jvm 的配置必须配置一样的数值。启动时就分配好内存空间,避免运行时申请分配内存造成系统抖动。
  • Xmx不要超过机器内存的 50%,留下些内存供 JVM 堆外内存使用
  • 并且Xmx不要超过 32G。建议最大配置为 30G。接近 32G,JVM 会启用压缩对象指针的功能,导致性能下降。具体可以参考:a-heap-of-trouble

安装成功后,可以访问: ES:localhost:9211

Kibana: localhost:5601

cerebro: localhost:9800

2、在docker 中安装 ES 7.13

在做一切工作之前,我们必须安装 docker。如果你已经安装好了 docker、docker-compose,可以访问我为你准备的 docker-compose.yaml 文件。

如果你没有安装 docker,完整的教程可以参考在 docker 中安装 ES 文档

下载此文件,将文件保存为 docker-compose.yaml 后,进入这个文件的目录,执行以下指令即可:

docker-compose up

如果你没有下载镜像文件,docker-compose 会自动帮你下载镜像,并且启动容器。

如果 docker-compose 启动失败,说是无权限链接 docker 的话,其报错如下:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 

Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Ddocker_es%22%3Atrue%7D%7D&limit=0": 

dial unix /var/run/docker.sock: connect: permission denied

可以运行以下指令临时修改:

sudo chmod 666 /var/run/docker.sock

其原因是因为你的 docker 用了 root 启动了。

最后可以访问:

cerebro:ip:9000

Kibana:ip:5601

Elasticsearch: ip:9200,ip:9202,ip:9203

其他学习资料

创建自己的 ES Docker Image

在 docker image 中安装 Elasticsearch 插件

一个开源的 ELK docker-compose 配置

docker 中安装 ES 7.13

docker 中安装 Kibana 7.13

最后附上我写的小册,欢迎刚入门的朋友来订阅~

WX20220224-174733.png

收起阅读 »

熬了几个月的夜,我的ES小册终于发布啦,适合初学者或者有点基础的同学学习~

课程简介.png

本小册分为 4 个部分,将由浅入深为你介绍 Elasticsearch 7.x 中的核心技术。主要知识点包括基本概念、常用 API 的使用实践、核心特性的底层原理与思想、集群管理与调优、源码阅读等知识。整个小册的思维导图如下:

知识点.png

你会学到什么?

本小册将会从非常浅显的概念开始与你学习 Elasticsearch 7.x 中的常用 API,在熟悉使用 Elasticsearch 后,我们将会对 Elasticsearch 中部分重要的特性、概念的底层实现原理进行介绍。在了解这些原理后,我们将学习如何部署、运维线上小规模集群,并且与你一起搭建一个简单的 ELK 系统。最后我们会搭建源码阅读的环境并且与你一起阅读部分模块的源码。

所以,通过本小册 4 大部分的学习,你可以收获:

  • 熟练使用 Elasticsearch 来解决搜索需求;
  • 强化 Elasticsearch 集群运维、调优的能力;
  • 通晓 Elasticsearch 核心技术的底层实现;
  • 牢固掌握源码阅读与调试的技巧。

也就是说,学完本课程后,你不仅可以掌握 ElasticSearch 相关的技术,还可以帮助你根据业务的特点快速构建出相应的搜索业务、数据分析、日志系统。真正实现学以致用。

适宜人群

  • 对 Elasticsearch 或搜索引擎感兴趣的同学。
  • 有了解和使用过 Elasticsearch,现在想进一步了解 Elasticsearch 的同学。
  • 准备从事数据搜索、分析相关工作的同学。
  • 从事 Elasticsearch 集群运维的同学。
继续阅读 »

课程简介.png

本小册分为 4 个部分,将由浅入深为你介绍 Elasticsearch 7.x 中的核心技术。主要知识点包括基本概念、常用 API 的使用实践、核心特性的底层原理与思想、集群管理与调优、源码阅读等知识。整个小册的思维导图如下:

知识点.png

你会学到什么?

本小册将会从非常浅显的概念开始与你学习 Elasticsearch 7.x 中的常用 API,在熟悉使用 Elasticsearch 后,我们将会对 Elasticsearch 中部分重要的特性、概念的底层实现原理进行介绍。在了解这些原理后,我们将学习如何部署、运维线上小规模集群,并且与你一起搭建一个简单的 ELK 系统。最后我们会搭建源码阅读的环境并且与你一起阅读部分模块的源码。

所以,通过本小册 4 大部分的学习,你可以收获:

  • 熟练使用 Elasticsearch 来解决搜索需求;
  • 强化 Elasticsearch 集群运维、调优的能力;
  • 通晓 Elasticsearch 核心技术的底层实现;
  • 牢固掌握源码阅读与调试的技巧。

也就是说,学完本课程后,你不仅可以掌握 ElasticSearch 相关的技术,还可以帮助你根据业务的特点快速构建出相应的搜索业务、数据分析、日志系统。真正实现学以致用。

适宜人群

  • 对 Elasticsearch 或搜索引擎感兴趣的同学。
  • 有了解和使用过 Elasticsearch,现在想进一步了解 Elasticsearch 的同学。
  • 准备从事数据搜索、分析相关工作的同学。
  • 从事 Elasticsearch 集群运维的同学。
收起阅读 »

使用 Elastic Stack 来分析奥运数据(一)

 原文地址 使用 Elastic Stack 来分析奥运数据(一)

最近冬奥会在中国北京顺利举行。这是一件举国高兴的事。在历届都有许多的奥运数据,我们是否可以使用 Elastic Stack 来分析这些数据,并为我国的体育事业提供一些洞察呢?


olympic.png


最近,孩子学校布置了一个寒假的科技信息作用。内容如下:


1、使用网络及其他方式,完成数据搜集,收集2014、2018、2022三届冬奥会的相关数据,例如举办国家、城市、日期、吉祥物、获得前20(以金牌计)的国家,金、银、铜牌数量等相关信息,同学可以根据爱好,选择五种自己喜爱的运动,并查找此三届冬奥会中,中国、美国、俄罗斯、日本、德国在此五个项目上的奖牌情况。同学可以根据自己的思考,搜集更多的相关数据或信息。

同学思考:(1)如何才能保证自己所搜集数据的准确性。

                 (2)如何才能通过整理、分析以上数据,从我国运动员的获奖数据等信息中,对我国青少年冰雪体育教育提出自己的小建议。

2、在获得以上数据后,同学可以根据需要,把它们填写在EXCEL等数据处理软件中。可以自主决定是放在一个文件中,还是放在多个文件中,是整理在一个工作表中,还是放置在不同的工作表中。

3、对数据进行整理后,可以用图表等方式形象表达出来,并根据数据表、图表,撰写自己对于我国青少年冰雪体育教育提出自己的见解,如发现的问题,造成问题的原因,你的解决方案等。



首先,我得申明,我不是什么 Excel 表格高手,我也不知道该如何来使用 Excel 表来完成上面的工作。我倒是觉得使用 Elastic Stack 能完美地解决这个问题。

在今天的展示中,我将使用 Elastic Stack 8.0 来解决这个问题,尽管其他版本的 Elastic Stack 没有多大区别。在 Elastic Stack 8.0 中,一个最大的变化就是 Index patterns 界面变为 Data views。

原文链接:https://blog.csdn.net/UbuntuTo ... 43103
继续阅读 »
 原文地址 使用 Elastic Stack 来分析奥运数据(一)

最近冬奥会在中国北京顺利举行。这是一件举国高兴的事。在历届都有许多的奥运数据,我们是否可以使用 Elastic Stack 来分析这些数据,并为我国的体育事业提供一些洞察呢?


olympic.png


最近,孩子学校布置了一个寒假的科技信息作用。内容如下:


1、使用网络及其他方式,完成数据搜集,收集2014、2018、2022三届冬奥会的相关数据,例如举办国家、城市、日期、吉祥物、获得前20(以金牌计)的国家,金、银、铜牌数量等相关信息,同学可以根据爱好,选择五种自己喜爱的运动,并查找此三届冬奥会中,中国、美国、俄罗斯、日本、德国在此五个项目上的奖牌情况。同学可以根据自己的思考,搜集更多的相关数据或信息。

同学思考:(1)如何才能保证自己所搜集数据的准确性。

                 (2)如何才能通过整理、分析以上数据,从我国运动员的获奖数据等信息中,对我国青少年冰雪体育教育提出自己的小建议。

2、在获得以上数据后,同学可以根据需要,把它们填写在EXCEL等数据处理软件中。可以自主决定是放在一个文件中,还是放在多个文件中,是整理在一个工作表中,还是放置在不同的工作表中。

3、对数据进行整理后,可以用图表等方式形象表达出来,并根据数据表、图表,撰写自己对于我国青少年冰雪体育教育提出自己的见解,如发现的问题,造成问题的原因,你的解决方案等。



首先,我得申明,我不是什么 Excel 表格高手,我也不知道该如何来使用 Excel 表来完成上面的工作。我倒是觉得使用 Elastic Stack 能完美地解决这个问题。

在今天的展示中,我将使用 Elastic Stack 8.0 来解决这个问题,尽管其他版本的 Elastic Stack 没有多大区别。在 Elastic Stack 8.0 中,一个最大的变化就是 Index patterns 界面变为 Data views。

原文链接:https://blog.csdn.net/UbuntuTo ... 43103 收起阅读 »

兼容不同版本的查询响应结果的 Count 结构

Elasticsearch 在 7.0 之后的版本中,为了优化性能,搜索结果的命中数默认不进行精确的计数统计,同时对搜索结果的响应体进行了调整, 这样势必会造成已有代码的不兼容,如何快速修复呢?
Elasticsearch 在 7.0 之后的版本中,为了优化性能,搜索结果的命中数默认不进行精确的计数统计,同时对搜索结果的响应体进行了调整, 这样势必会造成已有代码的不兼容,如何快速修复呢?

Elasticsearch:创建多个节点的集群 - Elastic Stack 8.0

在我之前的文章:


我详细描述了如何安装单节点的 Elastic Stack。在今天的教程中,我详述如何安装3个节点的 Elasticsearch 集群。我将使用 Docker 来进行部署。

首先,我们使用如下的命令来创建第一个 Elasticsearch 节点:

docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.0.0
docker run -e ES_JAVA_OPTS="-Xms1g -Xmx1g" --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.0.0


原文链接:https://elasticstack.blog.csdn ... 27404
继续阅读 »
在我之前的文章:


我详细描述了如何安装单节点的 Elastic Stack。在今天的教程中,我详述如何安装3个节点的 Elasticsearch 集群。我将使用 Docker 来进行部署。

首先,我们使用如下的命令来创建第一个 Elasticsearch 节点:

docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.0.0
docker run -e ES_JAVA_OPTS="-Xms1g -Xmx1g" --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.0.0


原文链接:https://elasticstack.blog.csdn ... 27404 收起阅读 »

Elasticsearch8.0新特性概览

8.x 重要更新

继续阅读 »

8.x 重要更新

收起阅读 »