好的想法是十分钱一打,真正无价的是能够实现这些想法的人。

如何使用 Filebeat 8 连接 Easysearch

在日志场景,还是有很多小伙伴在使用 Filebeat 采集日志的。今天我来实战下使用 Filebeat 8 连接 Easysearch 。本次使用 Easysearch-1.9.0 版本和 Filebeat-8.17.0 版本做演示,也适用 Filebeat-oss-8.17.0 版本。

Easysearch 不开启兼容参数的情况

Easysearch 默认情况下未开启 Elastic 兼容功能。此时直接用 Filebeat 去连接 Easysearch 会失败,报错 "could not connect to a compatible version of Elasticsearch" ,直译过来就是“无法连接到兼容的 Elasticsearch 版本”。

Easysearch 开启 elasticsearch.api_compatibility 参数

在 Easysearch-1.9.0 中关于 Elasticsearch 的兼容性参数有两个,我们先开第一个。

elasticsearch.api_compatibility: true
#elasticsearch.api_compatibility_version: "8.9.0"

启动 Filebeat 连接。

这次 Filebeat 检测到了一个兼容的版本 7.10.2,并导入了一个叫 filebeat 的索引生命周期管理策略,但最终因为无法导入模板而失败了。

索引生命周期查看。

关闭 Filebeat 的导入模板功能尝试连接,修改配置 filebeat.yml 关闭模板导入。

setup.template.enabled: false

启动 Filebeat 连接 Easysearch。

这次 Filebeat 成功连接上了 Easysearch,并成功将采集数据写入。

Easysearch 同时开启两个兼容性参数

在 Easysearch-1.9.0 中关于 Elasticsearch 的兼容性参数有两个,这次我们二个同时打开。

elasticsearch.api_compatibility: true
elasticsearch.api_compatibility_version: "8.9.0"

清理测试数据后,启动 Filebeat 连接。

跟打开第一个兼容参数很像,只是 Filebeat 检测到的版本变成了 8.9.0。

我们关闭 Filebeat 的模板导入功能,再次连接——成功

数据也成功写入。

注意事项

Easysearch 的第一个兼容参数 elasticsearch.api_compatibility 必须开启,否则 Filebeat 检测到的还是 1.9.0 版本无法正常连接。

如果 Easysearch 使用的是 1.9.0 之前的版本,可以使用网关代理 Easysearch 的方法

总结

Easysearch-1.9.0 必须开启第一个兼容参数,此时检测到的版本是 7.10.2。也可同时开启两个兼容性参数,此时检测到的版本是 8.9.0。

Filebeat 必须关闭模板导入功能。

好了,还有其他问题的小伙伴,欢迎加我微信沟通。

继续阅读 »

在日志场景,还是有很多小伙伴在使用 Filebeat 采集日志的。今天我来实战下使用 Filebeat 8 连接 Easysearch 。本次使用 Easysearch-1.9.0 版本和 Filebeat-8.17.0 版本做演示,也适用 Filebeat-oss-8.17.0 版本。

Easysearch 不开启兼容参数的情况

Easysearch 默认情况下未开启 Elastic 兼容功能。此时直接用 Filebeat 去连接 Easysearch 会失败,报错 "could not connect to a compatible version of Elasticsearch" ,直译过来就是“无法连接到兼容的 Elasticsearch 版本”。

Easysearch 开启 elasticsearch.api_compatibility 参数

在 Easysearch-1.9.0 中关于 Elasticsearch 的兼容性参数有两个,我们先开第一个。

elasticsearch.api_compatibility: true
#elasticsearch.api_compatibility_version: "8.9.0"

启动 Filebeat 连接。

这次 Filebeat 检测到了一个兼容的版本 7.10.2,并导入了一个叫 filebeat 的索引生命周期管理策略,但最终因为无法导入模板而失败了。

索引生命周期查看。

关闭 Filebeat 的导入模板功能尝试连接,修改配置 filebeat.yml 关闭模板导入。

setup.template.enabled: false

启动 Filebeat 连接 Easysearch。

这次 Filebeat 成功连接上了 Easysearch,并成功将采集数据写入。

Easysearch 同时开启两个兼容性参数

在 Easysearch-1.9.0 中关于 Elasticsearch 的兼容性参数有两个,这次我们二个同时打开。

elasticsearch.api_compatibility: true
elasticsearch.api_compatibility_version: "8.9.0"

清理测试数据后,启动 Filebeat 连接。

跟打开第一个兼容参数很像,只是 Filebeat 检测到的版本变成了 8.9.0。

我们关闭 Filebeat 的模板导入功能,再次连接——成功

数据也成功写入。

注意事项

Easysearch 的第一个兼容参数 elasticsearch.api_compatibility 必须开启,否则 Filebeat 检测到的还是 1.9.0 版本无法正常连接。

如果 Easysearch 使用的是 1.9.0 之前的版本,可以使用网关代理 Easysearch 的方法

总结

Easysearch-1.9.0 必须开启第一个兼容参数,此时检测到的版本是 7.10.2。也可同时开启两个兼容性参数,此时检测到的版本是 8.9.0。

Filebeat 必须关闭模板导入功能。

好了,还有其他问题的小伙伴,欢迎加我微信沟通。

收起阅读 »

如何使用 Logstash 8 连接 Easysearch

背景

很多小伙伴都在使用 Logstash ,随着各家安全扫描、安全策略的加固,不少小伙伴已经开始使用 Logstash 8 了。在使用 Logstash 8 连接 Easysearch 的时候可能会遇到问题,比如下图。

提示连接的不是兼容版本的 Elasticsearch 。

解决方法有两种

两种方法对 Logstash 和 Logstash-oss 两种版本都适用。

一、用 INFINI Gateway 代理 Easysearch

使用此方法, Logstash 连接的是 INFINI Gateway ,由 INFINI Gateway “通过” Logstash 8 的检查。

优点是对 Easysearch 版本无要求。

默认的网关配置要稍作修改。

  1. 修改 router.rules 部分
router:
  - name: my_router
    default_flow: default_flow
    tracing_flow: logging_flow
    rules:
      - method:
          - "GET"
        pattern:
          - "/"
        flow:
          - overwrite_flow
      - method:
          - "GET"
        pattern:
          - "/_license"
        flow:
          - overwrite_license_flow
      - method:
          - "*"
        pattern:
          - "/_bulk"
          - "/{any_index}/_bulk"
        flow:
          - async_bulk_flow
  1. flow 下增加 overwrite_flow 和 overwrite_license_flow
 - name: overwrite_flow
    filter:
      - elasticsearch:
          elasticsearch: prod
          max_connection_per_node: 1000
      - set_context:
          context:
            _ctx.response.body_json.version.number: '"8.14.3"'
            _ctx.response.body_json.version.build_flavor: '"default"'
            _ctx.response.body_json.tagline: '"You Know, for Search"'
            _ctx.response.body_json.minimum_wire_compatibility_version: '"7.17.0"'
            _ctx.response.body_json.minimum_index_compatibility_version: '"7.0.0"'
      - set_response_header:
          headers:
            - X-elastic-product -> Elasticsearch
  - name: overwrite_license_flow
    filter:
      - echo:
          message: '{"license": "ok"}'
      - set_context:
          context:
            _ctx.response.code: 200
            _ctx.response.body_json.license.status: '"active"'
            _ctx.response.body_json.license.type: '"basic"'
            _ctx.response.body_json.license.issuer: '"elasticsearch"'
            _ctx.response.body_json.license.issue_date: '"2024-09-12T13:10:55.848Z"'
            _ctx.response.body_json.license.start_date_in_millis: "-1"
      - set_response_header:
          headers:
            - X-elastic-product -> Elasticsearch

记住 Logstash 要填写 INFINI Gateway 的地址和端口,并关闭自动导入模板功能。

连接成功后,如下图。

二、使用 Easysearch 1.9.0 及以上版本

Easysearch 1.9.0 已经增加了适配 Logstash8.x 的请求 header,因此使用 Easysearch 1.9.0 的小伙伴,只需打开对应的设置就可以了。

在 easysearch.yml 中,打开下面的 elastic 的兼容参数(默认已注释):

elasticsearch.api_compatibility: true
elasticsearch.api_compatibility_version: "8.9.0"

注意 Logstash 配置中关闭自动导入模板功能。

output {
  elasticsearch {
   hosts => ["http://127.0.0.1:9200"]
   index => "logstash8"
   manage_template => false
}
}

启动 Logstash 连接到 easysearch 后, Logstash 日志会输出检测到版本 8.9.0 。

最新 Easysearch 下载地址:下载

好了,还有其他问题的小伙伴,欢迎加我微信沟通。

继续阅读 »

背景

很多小伙伴都在使用 Logstash ,随着各家安全扫描、安全策略的加固,不少小伙伴已经开始使用 Logstash 8 了。在使用 Logstash 8 连接 Easysearch 的时候可能会遇到问题,比如下图。

提示连接的不是兼容版本的 Elasticsearch 。

解决方法有两种

两种方法对 Logstash 和 Logstash-oss 两种版本都适用。

一、用 INFINI Gateway 代理 Easysearch

使用此方法, Logstash 连接的是 INFINI Gateway ,由 INFINI Gateway “通过” Logstash 8 的检查。

优点是对 Easysearch 版本无要求。

默认的网关配置要稍作修改。

  1. 修改 router.rules 部分
router:
  - name: my_router
    default_flow: default_flow
    tracing_flow: logging_flow
    rules:
      - method:
          - "GET"
        pattern:
          - "/"
        flow:
          - overwrite_flow
      - method:
          - "GET"
        pattern:
          - "/_license"
        flow:
          - overwrite_license_flow
      - method:
          - "*"
        pattern:
          - "/_bulk"
          - "/{any_index}/_bulk"
        flow:
          - async_bulk_flow
  1. flow 下增加 overwrite_flow 和 overwrite_license_flow
 - name: overwrite_flow
    filter:
      - elasticsearch:
          elasticsearch: prod
          max_connection_per_node: 1000
      - set_context:
          context:
            _ctx.response.body_json.version.number: '"8.14.3"'
            _ctx.response.body_json.version.build_flavor: '"default"'
            _ctx.response.body_json.tagline: '"You Know, for Search"'
            _ctx.response.body_json.minimum_wire_compatibility_version: '"7.17.0"'
            _ctx.response.body_json.minimum_index_compatibility_version: '"7.0.0"'
      - set_response_header:
          headers:
            - X-elastic-product -> Elasticsearch
  - name: overwrite_license_flow
    filter:
      - echo:
          message: '{"license": "ok"}'
      - set_context:
          context:
            _ctx.response.code: 200
            _ctx.response.body_json.license.status: '"active"'
            _ctx.response.body_json.license.type: '"basic"'
            _ctx.response.body_json.license.issuer: '"elasticsearch"'
            _ctx.response.body_json.license.issue_date: '"2024-09-12T13:10:55.848Z"'
            _ctx.response.body_json.license.start_date_in_millis: "-1"
      - set_response_header:
          headers:
            - X-elastic-product -> Elasticsearch

记住 Logstash 要填写 INFINI Gateway 的地址和端口,并关闭自动导入模板功能。

连接成功后,如下图。

二、使用 Easysearch 1.9.0 及以上版本

Easysearch 1.9.0 已经增加了适配 Logstash8.x 的请求 header,因此使用 Easysearch 1.9.0 的小伙伴,只需打开对应的设置就可以了。

在 easysearch.yml 中,打开下面的 elastic 的兼容参数(默认已注释):

elasticsearch.api_compatibility: true
elasticsearch.api_compatibility_version: "8.9.0"

注意 Logstash 配置中关闭自动导入模板功能。

output {
  elasticsearch {
   hosts => ["http://127.0.0.1:9200"]
   index => "logstash8"
   manage_template => false
}
}

启动 Logstash 连接到 easysearch 后, Logstash 日志会输出检测到版本 8.9.0 。

最新 Easysearch 下载地址:下载

好了,还有其他问题的小伙伴,欢迎加我微信沟通。

收起阅读 »

搜索客社区日报 第1980期 (2025-01-28)

朋友们新年好啊,年夜饭吃没?

1. deepseek-r1的地址,懂得都懂
https://github.com/deepseek-ai/DeepSeek-R1

2. 用ELK对Nodejs进行日志记录(需要梯子)
https://medium.com/%40arnabgol ... 3915c

3. 搜索记录小技巧 _name(需要梯子)
https://medium.com/%40andre.lu ... 8daa0

编辑:斯蒂文
更多资讯:http://news.searchkit.cn
继续阅读 »
朋友们新年好啊,年夜饭吃没?

1. deepseek-r1的地址,懂得都懂
https://github.com/deepseek-ai/DeepSeek-R1

2. 用ELK对Nodejs进行日志记录(需要梯子)
https://medium.com/%40arnabgol ... 3915c

3. 搜索记录小技巧 _name(需要梯子)
https://medium.com/%40andre.lu ... 8daa0

编辑:斯蒂文
更多资讯:http://news.searchkit.cn 收起阅读 »

搜索客社区日报 第1979期 (2025-01-27)

1、在 Ubuntu 22.04 上运行 Filebeat 7.10.2
https://infinilabs.cn/blog/202 ... beat/

2、如何使用 Filebeat 8 连接 Easysearch
https://infinilabs.cn/blog/202 ... arch/

3、Easysearch 集群通过 API 进行用户密码重置
https://infinilabs.cn/blog/202 ... word/

4、Easysearch 集群重置 admin 用户密码
https://infinilabs.cn/blog/202 ... word/

5、使用 Elasticsearch 导航检索增强生成图表
https://elasticstack.blog.csdn ... .5502

编辑:Muse
更多资讯:http://news.searchkit.cn
继续阅读 »
1、在 Ubuntu 22.04 上运行 Filebeat 7.10.2
https://infinilabs.cn/blog/202 ... beat/

2、如何使用 Filebeat 8 连接 Easysearch
https://infinilabs.cn/blog/202 ... arch/

3、Easysearch 集群通过 API 进行用户密码重置
https://infinilabs.cn/blog/202 ... word/

4、Easysearch 集群重置 admin 用户密码
https://infinilabs.cn/blog/202 ... word/

5、使用 Elasticsearch 导航检索增强生成图表
https://elasticstack.blog.csdn ... .5502

编辑:Muse
更多资讯:http://news.searchkit.cn 收起阅读 »

INFINI Labs 产品更新 | Easysearch 增强 Rollup 能力,Console 完善 TopN 指标等

release

INFINI Labs 产品更新发布!此次更新,Easysearch 增强 Rollup 能力,支持更多的聚合方式;Console 完善了 TopN 的指标,支持自定义视图,并内嵌视图模板;Gateway 进行了多处优化以及修复相关 Bug 等等。欢迎下载体验,探索更多可能!

INFINI Easysearch v1.10.1

INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。

Easysearch 本次更新如下:

功能更新

  • Rollup 增加支持聚合的种类
    • 增加支持 Filter aggregation,某些场景可以用来替代 query
    • 增加针对个别字段自定义 special_metrics 指标的配置项
    • 增加支持 Bucket sort aggregation
  • Rollup 查询 API 提供了 debug 参数,有助于调试

问题修复

  • 修复数据节点和 master 节点角色分离时,Security 索引创建失败问题

优化改进

  • Rollup 查询 增加 response 标识是否有 rollup 数据
  • Rollup response total hits 不再为 0
  • Rollup job 支持 更新操作,通过更新索引文档实现
  • rollup.hours_before 配置项只影响查询时间范围,不影响写入

关于 Rollup 具体如何使用,请查看这篇单独的博客:介绍 Easysearch 的 Rollup

INFINI Console v1.28.1

INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。

Console 在线体验:

http://demo.infini.cloud (用户名/密码:readonly/readonly)。

Console 本次更新如下:

功能更新

  • 创建集群时支持配置多个主机地址,增强集群的高可用性
  • Insight Data API 支持函数格式查询,方便拓展查询功能
  • 提供 API 来 Dump 查看当前存储的 Badger Key 列表
  • Rollup 支持场景条件适配,要求 Easysearch > 1.9.2
  • TopN 内置指标- 索引指标(agent 采集模式)
  • TopN 内置视图模版
  • TopN 支持自定义数据视图

问题修复

  • 修复 Badger KV 存储内存占用过高的问题

优化改进

  • LDAP 配置支持带特殊符号“点”(.) 验证(#46)

INFINI Gateway v1.28.1

INFINI Gateway 是一个开源的面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。

Gateway 本次更新如下:

功能更新

  • 支持在批量相关过滤器中使用简单的批量元数据(#59)
  • 在 Elasticsearch 过滤器中后端故障时无缝重试请求(#63)

优化改进

  • 移除 Elasticsearch 过滤器中因模式不匹配导致的不必要节点重新选择(#62)

INFINI Agent v1.28.1

INFINI Agent 负责采集和上传 Elasticsearch, Easysearch, Opensearch 集群的日志和指标信息,通过 INFINI Console 管理,支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。

Agent 本次更新如下:

问题修复

  • 修复一个空指针判断的问题
  • 同步更新 Framework 修复的一些已知问题

INFINI Loadgen v1.28.1

INFINI Loadgen 是一款开源的专为 Easysearch、Elasticsearch、OpenSearch 设计的轻量级性能测试工具。

Loadgen 本次更新如下:

问题修复

  • 同步更新 Framework 修复的一些已知问题

INFINI Framework v1.1.1

INFINI Framework 是 INFINI Labs 基于 Golang 的产品的核心基础,已开源。该框架以开发者为中心设计,简化了构建高性能、可扩展且可靠的应用程序的过程。

Framework 本次更新如下:

功能更新

  • 为 ORM 模块新增搜索功能,支持结果项映射器(#65)
  • 新增统计 API,用于快速从 Badger DB 中查找前 N 个键(#67)
  • 主动恢复失效节点的可用性(#72)

优化改进

  • 为 HTTP 处理程序添加实用工具,支持解析布尔参数
  • 处理简化的批量元数据,从 URL 路径中解析索引(#59)
  • 改进部分加载文件的消息读取处理(#63)

更多详情请查看以下详细的 Release Notes 或联系我们的技术支持团队!

期待反馈

欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。

下载地址: https://infinilabs.cn/download

邮件hello@infini.ltd

电话(+86) 400-139-9200

Discordhttps://discord.gg/4tKTMkkvVX

也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。

关于极限科技(INFINI Labs)

INFINI Labs

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

官网:https://infinilabs.cn

继续阅读 »

release

INFINI Labs 产品更新发布!此次更新,Easysearch 增强 Rollup 能力,支持更多的聚合方式;Console 完善了 TopN 的指标,支持自定义视图,并内嵌视图模板;Gateway 进行了多处优化以及修复相关 Bug 等等。欢迎下载体验,探索更多可能!

INFINI Easysearch v1.10.1

INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。

Easysearch 本次更新如下:

功能更新

  • Rollup 增加支持聚合的种类
    • 增加支持 Filter aggregation,某些场景可以用来替代 query
    • 增加针对个别字段自定义 special_metrics 指标的配置项
    • 增加支持 Bucket sort aggregation
  • Rollup 查询 API 提供了 debug 参数,有助于调试

问题修复

  • 修复数据节点和 master 节点角色分离时,Security 索引创建失败问题

优化改进

  • Rollup 查询 增加 response 标识是否有 rollup 数据
  • Rollup response total hits 不再为 0
  • Rollup job 支持 更新操作,通过更新索引文档实现
  • rollup.hours_before 配置项只影响查询时间范围,不影响写入

关于 Rollup 具体如何使用,请查看这篇单独的博客:介绍 Easysearch 的 Rollup

INFINI Console v1.28.1

INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。

Console 在线体验:

http://demo.infini.cloud (用户名/密码:readonly/readonly)。

Console 本次更新如下:

功能更新

  • 创建集群时支持配置多个主机地址,增强集群的高可用性
  • Insight Data API 支持函数格式查询,方便拓展查询功能
  • 提供 API 来 Dump 查看当前存储的 Badger Key 列表
  • Rollup 支持场景条件适配,要求 Easysearch > 1.9.2
  • TopN 内置指标- 索引指标(agent 采集模式)
  • TopN 内置视图模版
  • TopN 支持自定义数据视图

问题修复

  • 修复 Badger KV 存储内存占用过高的问题

优化改进

  • LDAP 配置支持带特殊符号“点”(.) 验证(#46)

INFINI Gateway v1.28.1

INFINI Gateway 是一个开源的面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。

Gateway 本次更新如下:

功能更新

  • 支持在批量相关过滤器中使用简单的批量元数据(#59)
  • 在 Elasticsearch 过滤器中后端故障时无缝重试请求(#63)

优化改进

  • 移除 Elasticsearch 过滤器中因模式不匹配导致的不必要节点重新选择(#62)

INFINI Agent v1.28.1

INFINI Agent 负责采集和上传 Elasticsearch, Easysearch, Opensearch 集群的日志和指标信息,通过 INFINI Console 管理,支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。

Agent 本次更新如下:

问题修复

  • 修复一个空指针判断的问题
  • 同步更新 Framework 修复的一些已知问题

INFINI Loadgen v1.28.1

INFINI Loadgen 是一款开源的专为 Easysearch、Elasticsearch、OpenSearch 设计的轻量级性能测试工具。

Loadgen 本次更新如下:

问题修复

  • 同步更新 Framework 修复的一些已知问题

INFINI Framework v1.1.1

INFINI Framework 是 INFINI Labs 基于 Golang 的产品的核心基础,已开源。该框架以开发者为中心设计,简化了构建高性能、可扩展且可靠的应用程序的过程。

Framework 本次更新如下:

功能更新

  • 为 ORM 模块新增搜索功能,支持结果项映射器(#65)
  • 新增统计 API,用于快速从 Badger DB 中查找前 N 个键(#67)
  • 主动恢复失效节点的可用性(#72)

优化改进

  • 为 HTTP 处理程序添加实用工具,支持解析布尔参数
  • 处理简化的批量元数据,从 URL 路径中解析索引(#59)
  • 改进部分加载文件的消息读取处理(#63)

更多详情请查看以下详细的 Release Notes 或联系我们的技术支持团队!

期待反馈

欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。

下载地址: https://infinilabs.cn/download

邮件hello@infini.ltd

电话(+86) 400-139-9200

Discordhttps://discord.gg/4tKTMkkvVX

也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。

关于极限科技(INFINI Labs)

INFINI Labs

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

官网:https://infinilabs.cn

收起阅读 »

活动回顾 - 第6期 搜索客 Meetup 线上直播活动圆满结束,附 PPT 下载和视频回放

2025 年 01 月 17 日,由搜索客社区和极限科技(INFINI Labs)联合举办的第 6 期线上 Meetup 技术交流直播活动圆满结束。本期 Meetup 直播活动吸引了超过 500+ 人次的技术爱好者观看参与,主要讨论了 Easysearch、Easysearch 搜索引擎性能优化和系统稳定性的相关问题,包括读请求限速、写请求限速、索引管控等。

PPT首页.png

本期 Meetup 活动主题

本期 Meetup 活动由 极限科技(INFINI Labs)高级解决方案架构师 杨帆老师 为大家带来了主题为 《Easysearch 请求限速漫谈》 精彩分享。和大家一起畅谈了为什么要限速,限速的需求来源,以及读写限速的实现方式等。

以下为摘取 PPT 部分内容截图:

1.jpg

2.jpg

3.jpg

4.jpg

活动中杨老师和大家保持互动问答,在线观众积极参与。同时,在整个直播过程中,主持人进行了多轮激动人心的抽奖活动,为参会小伙伴带来了额外的惊喜。

最后感谢大家的参与和支持,让我们共同期待下一次 搜索客 Meetup 活动带来更多的精彩内容!

本期 Meetup PPT 下载

本期 PPT 下载的链接:https://searchkit.cn/slides/329

本期 Meetup 视频回放

扫码关注极限实验室视频号查看直播回放,或者扫码关注极限实验室 B 站 账号,可查看本期 Meetup 活动视频。我们也会在视频号、B 站持续更新最新技术视频,欢迎通过点赞、投币,收藏,三连来支持我们。

Meetup 活动讲师招募

讲师招募

搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。

讲师报名链接:http://cfp.searchkit.cn
或扫描下方二维码,立刻报名成为讲师!

Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。

我们热切期待您的精彩分享!

关于 搜索客(SearchKit)社区

搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。社区官网:https://searchkit.cn

关于极限科技(INFINI Labs)

INFINI Labs

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

官网:https://infinilabs.cn

继续阅读 »

2025 年 01 月 17 日,由搜索客社区和极限科技(INFINI Labs)联合举办的第 6 期线上 Meetup 技术交流直播活动圆满结束。本期 Meetup 直播活动吸引了超过 500+ 人次的技术爱好者观看参与,主要讨论了 Easysearch、Easysearch 搜索引擎性能优化和系统稳定性的相关问题,包括读请求限速、写请求限速、索引管控等。

PPT首页.png

本期 Meetup 活动主题

本期 Meetup 活动由 极限科技(INFINI Labs)高级解决方案架构师 杨帆老师 为大家带来了主题为 《Easysearch 请求限速漫谈》 精彩分享。和大家一起畅谈了为什么要限速,限速的需求来源,以及读写限速的实现方式等。

以下为摘取 PPT 部分内容截图:

1.jpg

2.jpg

3.jpg

4.jpg

活动中杨老师和大家保持互动问答,在线观众积极参与。同时,在整个直播过程中,主持人进行了多轮激动人心的抽奖活动,为参会小伙伴带来了额外的惊喜。

最后感谢大家的参与和支持,让我们共同期待下一次 搜索客 Meetup 活动带来更多的精彩内容!

本期 Meetup PPT 下载

本期 PPT 下载的链接:https://searchkit.cn/slides/329

本期 Meetup 视频回放

扫码关注极限实验室视频号查看直播回放,或者扫码关注极限实验室 B 站 账号,可查看本期 Meetup 活动视频。我们也会在视频号、B 站持续更新最新技术视频,欢迎通过点赞、投币,收藏,三连来支持我们。

Meetup 活动讲师招募

讲师招募

搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。

讲师报名链接:http://cfp.searchkit.cn
或扫描下方二维码,立刻报名成为讲师!

Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。

我们热切期待您的精彩分享!

关于 搜索客(SearchKit)社区

搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。社区官网:https://searchkit.cn

关于极限科技(INFINI Labs)

INFINI Labs

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

官网:https://infinilabs.cn

收起阅读 »

【搜索客社区日报】第1978期 (2025-01-24)

1、Elasticsearch VS Easysearch 性能测试
https://searchkit.cn/article/15360

2、Elasticsearch 性能测试工具全解析
https://mp.weixin.qq.com/s/YnIVpVizzuuIZASZik3DgA

3、Elasticsearch 性能测试工具 Loadgen 之 001——部署及应用详解
https://mp.weixin.qq.com/s/q3XM6AeMQrTEcWgputABRw

4、ES 实战篇 - MySQL 与 Elasticsearch 的一致性问题
https://mp.weixin.qq.com/s/7e6zZ-0ArP23m3cbtmI_oA

5、如何使用 Filebeat 8 连接 Easysearch
https://infinilabs.cn/blog/202 ... arch/


编辑:Fred
更多资讯:http://news.searchkit.cn
继续阅读 »
1、Elasticsearch VS Easysearch 性能测试
https://searchkit.cn/article/15360

2、Elasticsearch 性能测试工具全解析
https://mp.weixin.qq.com/s/YnIVpVizzuuIZASZik3DgA

3、Elasticsearch 性能测试工具 Loadgen 之 001——部署及应用详解
https://mp.weixin.qq.com/s/q3XM6AeMQrTEcWgputABRw

4、ES 实战篇 - MySQL 与 Elasticsearch 的一致性问题
https://mp.weixin.qq.com/s/7e6zZ-0ArP23m3cbtmI_oA

5、如何使用 Filebeat 8 连接 Easysearch
https://infinilabs.cn/blog/202 ... arch/


编辑:Fred
更多资讯:http://news.searchkit.cn 收起阅读 »

【搜索客社区日报】第1977期 (2025-01-23)

1.AI编程双城记上:万字长文剖析下一代技术革命与落地挑战
https://mp.weixin.qq.com/s/1hPg6KZwHQgUOLESdgdIPw
2.数据库即架构
https://mp.weixin.qq.com/s/8NS15_fkuR_gSLG50MNtMQ
3.中国软件重塑的关键一年:这 11 大领域迎来了自己的“ChatGPT时刻”
https://mp.weixin.qq.com/s/ixPvOtN11YPKjKJ2xTPb5A

编辑:Se7en
更多资讯:http://news.searchkit.cn
继续阅读 »
1.AI编程双城记上:万字长文剖析下一代技术革命与落地挑战
https://mp.weixin.qq.com/s/1hPg6KZwHQgUOLESdgdIPw
2.数据库即架构
https://mp.weixin.qq.com/s/8NS15_fkuR_gSLG50MNtMQ
3.中国软件重塑的关键一年:这 11 大领域迎来了自己的“ChatGPT时刻”
https://mp.weixin.qq.com/s/ixPvOtN11YPKjKJ2xTPb5A

编辑:Se7en
更多资讯:http://news.searchkit.cn 收起阅读 »

​【搜索客社区日报】第1976期 (2025-01-22)

1.在 HNSW 中实现“提前终止”以加速近似 KNN 搜索
https://mp.weixin.qq.com/s/LNMQ-xvIigeNQZb8RPWkcg

2.重生之我们在ES顶端相遇第 13 章 - 听说你深度分页时,把ES 搞垮了?
https://mp.weixin.qq.com/s/zT9cBSACGPPJbmsvpJawIQ

3.ES 源码篇 - Elasticsearch 启动与插件加载机制解析
https://mp.weixin.qq.com/s/rziIY44XZswnBW8F0v8Lcg

4.源码篇 - 构建你的 Elasticsearch 8 本地调试环境:步骤与技巧
https://mp.weixin.qq.com/s/goHyId6k6ze9ljB9RbxBDg


编辑:kin122 
更多资讯:http://news.searchkit.cn
继续阅读 »
1.在 HNSW 中实现“提前终止”以加速近似 KNN 搜索
https://mp.weixin.qq.com/s/LNMQ-xvIigeNQZb8RPWkcg

2.重生之我们在ES顶端相遇第 13 章 - 听说你深度分页时,把ES 搞垮了?
https://mp.weixin.qq.com/s/zT9cBSACGPPJbmsvpJawIQ

3.ES 源码篇 - Elasticsearch 启动与插件加载机制解析
https://mp.weixin.qq.com/s/rziIY44XZswnBW8F0v8Lcg

4.源码篇 - 构建你的 Elasticsearch 8 本地调试环境:步骤与技巧
https://mp.weixin.qq.com/s/goHyId6k6ze9ljB9RbxBDg


编辑:kin122 
更多资讯:http://news.searchkit.cn 收起阅读 »

【搜索客社区日报】第1975期 (2025-01-21)

 1. 用ES配合docker做个股票监控系统咋样(需要梯子)
https://medium.com/%40rahul.fi ... 3477b
2. 如何保持大ES集群点健康性(需要梯子)
https://medium.com/trendyol-te ... adc06
3. 用winston把日志导入elk(需要梯子)
https://medium.com/%40aamirali ... fc5b2

编辑:斯蒂文
更多资讯:http://news.searchkit.cn
 
继续阅读 »
 1. 用ES配合docker做个股票监控系统咋样(需要梯子)
https://medium.com/%40rahul.fi ... 3477b
2. 如何保持大ES集群点健康性(需要梯子)
https://medium.com/trendyol-te ... adc06
3. 用winston把日志导入elk(需要梯子)
https://medium.com/%40aamirali ... fc5b2

编辑:斯蒂文
更多资讯:http://news.searchkit.cn
  收起阅读 »

Elasticsearch VS Easysearch 性能测试

压测环境

虚拟机配置

使用阿里云上规格:ecs.u1-c1m4.4xlarge,PL2: 单盘 IOPS 性能上限 10 万 (适用的云盘容量范围:461GiB - 64TiB)

vCPU 内存 (GiB) 磁盘(GB) 带宽(Gbit/s) 数量
16 64 500 5000 24

Easysearch 配置

7 节点集群,版本:1.9.0

实例名 内网 IP 软件 vCPU JVM 磁盘
i-2zegn56cijnzklcn2410 172.22.75.144 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240u 172.23.15.97 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240i 172.25.230.228 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240y 172.22.75.142 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240x 172.22.75.143 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240z 172.24.250.252 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240r 172.24.250.254 Easysearch 16 31G 500GB

Elasticsearch 配置

7 节点集群,版本:7.10.2

实例名称 内网 IP 软件 vCPU JVM 磁盘
i-2zegn56cijnzklcn240m 172.24.250.251 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240p 172.22.75.145 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240o 172.17.67.246 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240t 172.22.75.139 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240q 172.22.75.140 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240v 172.24.250.253 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240l 172.24.250.250 Elasticsearch 16 31G 500GB

监控集群配置

单节点 Easysearch 集群,版本:1.9.0

实例名 内网 IP 软件 vCPU 内存 磁盘
i-2zegn56cijnzklcn240f 172.25.230.226 监控集群:Console 16 64G 500GB
i-2zegn56cijnzklcn240j 172.23.15.98 监控集群:Easysearch 16 64G 500GB

压测 loadgen 配置

loadgen 版本:1.25.0

4 台压 Easysearch,4 台压 Elasticsearch。

实例名 内网 IP 软件 vCPU 内存 磁盘
i-2zegn56cijnzklcn240n 172.17.67.245 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn2411 172.22.75.141 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn240k 172.25.230.227 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn240e 172.22.75.138 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn240h 172.24.250.255 Loadgen - 压 Elasticsearch 16 64G 500GB
i-2zegn56cijnzklcn240w 172.24.251.0 Loadgen - 压 Elasticsearch 16 64G 500GB
i-2zegn56cijnzklcn240g 172.24.250.248 Loadgen - 压 Elasticsearch 16 64G 500GB
i-2zegn56cijnzklcn240s 172.24.250.249 Loadgen - 压 Elasticsearch 16 64G 500GB

压测索引 Mapping

PUT nginx
{
  "mappings": {
    "properties": {
      "method": {
        "type": "keyword"
      },
      "bandwidth": {
        "type": "integer"
      },
      "service_name": {
        "type": "keyword"
      },
      "ip": {
        "type": "ip"
      },
      "memory_usage": {
        "type": "integer"
      },
      "upstream_time": {
        "type": "float"
      },
      "url": {
        "type": "keyword"
      },
      "response_size": {
        "type": "integer"
      },
      "request_time": {
        "type": "float"
      },
      "request_body_size": {
        "type": "integer"
      },
      "error_code": {
        "type": "keyword"
      },
      "metrics": {
        "properties": {
          "queue_size": {
            "type": "integer"
          },
          "memory_usage": {
            "type": "integer"
          },
          "thread_count": {
            "type": "integer"
          },
          "cpu_usage": {
            "type": "integer"
          },
          "active_connections": {
            "type": "integer"
          }
        }
      },
      "cpu_usage": {
        "type": "integer"
      },
      "user_agent": {
        "type": "keyword"
      },
      "connections": {
        "type": "integer"
      },
      "timestamp": {
        "type": "date",
        "format": "yyyy-MM-dd'T'HH:mm:ss.SSS"
      },
      "status": {
        "type": "integer"
      }
    }
  },
  "settings": {
    "number_of_shards": 7,
    "number_of_replicas": 0,
    "refresh_interval": "30s"
  }
}

压测方法

每 4 个 loadgen 使用批量写入接口 bulk 轮询压测同一集群的 7 个节点,每个请求写入 10000 个文档。

具体请求如下:

requests:
  - request: #prepare some docs
      method: POST
      runtime_variables:
#        batch_no: uuid
      runtime_body_line_variables:
#        routing_no: uuid
#      url: $[[env.ES_ENDPOINT]]/_bulk
      url: $[[ip]]/_bulk
      body_repeat_times: 10000
      basic_auth:
       username: "$[[env.ES_USERNAME]]"
       password: "$[[env.ES_PASSWORD]]"
      body: |
        {"index": {"_index": "nginx", "_type": "_doc", "_id": "$[[uuid]]"}}
        $[[message]]

压测数据样本

{"method":"DELETE","bandwidth":1955,"service_name":"cart-service","ip":"120.204.26.240","memory_usage":1463,"upstream_time":"1.418","url":"/health","response_size":421,"request_time":"0.503","request_body_size":1737,"error_code":"SYSTEM_ERROR","metrics":{"queue_size":769,"memory_usage":1183,"thread_count":65,"cpu_usage":68,"active_connections":837},"cpu_usage":70,"user_agent":"Mozilla/5.0 (iPad; CPU OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1","connections":54,"timestamp":"2024-11-16T14:25:21.423","status":500}
{"method":"OPTIONS","bandwidth":10761,"service_name":"product-service","ip":"223.99.83.60","memory_usage":567,"upstream_time":"0.907","url":"/static/js/app.js","response_size":679,"request_time":"1.287","request_body_size":1233,"error_code":"NOT_FOUND","metrics":{"queue_size":565,"memory_usage":1440,"thread_count":148,"cpu_usage":39,"active_connections":1591},"cpu_usage":87,"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1","connections":354,"timestamp":"2024-11-16T05:37:28.423","status":502}
{"method":"HEAD","bandwidth":10257,"service_name":"recommendation-service","ip":"183.60.242.143","memory_usage":1244,"upstream_time":"0.194","url":"/api/v1/recommendations","response_size":427,"request_time":"1.449","request_body_size":1536,"error_code":"UNAUTHORIZED","metrics":{"queue_size":848,"memory_usage":866,"thread_count":86,"cpu_usage":29,"active_connections":3846},"cpu_usage":71,"user_agent":"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)","connections":500,"timestamp":"2024-11-16T15:14:30.424","status":403}

压测索引 1 主分片 0 副本

Elastic 吞吐

Elastic 线程及队列

资源消耗

Easysearch 吞吐

Easysearch 线程及队列

资源消耗

对比

软件 平均集群吞吐 平均单节点吞吐 最大队列 磁盘消耗
Elasticsearch 5w 5w 811 10G
Easysearch 7w 7w 427 4G

压测索引 1 主分片 1 副本

Elastic 吞吐

Elastic 线程及队列

资源消耗

Easysearch 吞吐

Easysearch 线程及队列

资源消耗

对比

软件 平均集群吞吐 平均单节点吞吐 最大队列 磁盘消耗(~3000 万文档)
Elasticsearch 10w 5w 791 22G
Easysearch 14w 7w 421 7G

压测索引 7 主分片

Elastic 吞吐

Elastic 线程及队列

资源消耗

网络

单节点平均接收 26MB/s,对应带宽:1456 Mb/s

5 千万文档,总存储 105 GB,单节点 15 GB

Easysearch 吞吐

Easysearch 线程及队列

资源消耗

对比

软件 平均集群吞吐 平均单节点吞吐 最大队列 磁盘消耗
Elasticsearch 35w 5w 2449 105G
Easysearch 60w 8.5w 1172 36G

总结

通过对不同场景的压测结果进行对比分析,得出以下结论:

  • Easysearch 相比 Elasticsearch 的索引性能显著提升
    Easysearch 集群的吞吐性能提升了 40% - 70%,且随着分片数量的增加,性能提升效果更为显著。
  • Easysearch 相比 Elasticsearch 的磁盘压缩效率大幅提高
    Easysearch 集群的磁盘压缩效率提升了 2.5 - 3 倍,并且随着数据量的增加,压缩效果愈发明显。

此测试结果表明,Easysearch 在日志处理场景中具有更高的性能与存储效率优势,尤其适用于大规模分片与海量数据的使用场景。

如有任何问题,请随时联系我,期待与您交流!

继续阅读 »

压测环境

虚拟机配置

使用阿里云上规格:ecs.u1-c1m4.4xlarge,PL2: 单盘 IOPS 性能上限 10 万 (适用的云盘容量范围:461GiB - 64TiB)

vCPU 内存 (GiB) 磁盘(GB) 带宽(Gbit/s) 数量
16 64 500 5000 24

Easysearch 配置

7 节点集群,版本:1.9.0

实例名 内网 IP 软件 vCPU JVM 磁盘
i-2zegn56cijnzklcn2410 172.22.75.144 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240u 172.23.15.97 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240i 172.25.230.228 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240y 172.22.75.142 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240x 172.22.75.143 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240z 172.24.250.252 Easysearch 16 31G 500GB
i-2zegn56cijnzklcn240r 172.24.250.254 Easysearch 16 31G 500GB

Elasticsearch 配置

7 节点集群,版本:7.10.2

实例名称 内网 IP 软件 vCPU JVM 磁盘
i-2zegn56cijnzklcn240m 172.24.250.251 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240p 172.22.75.145 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240o 172.17.67.246 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240t 172.22.75.139 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240q 172.22.75.140 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240v 172.24.250.253 Elasticsearch 16 31G 500GB
i-2zegn56cijnzklcn240l 172.24.250.250 Elasticsearch 16 31G 500GB

监控集群配置

单节点 Easysearch 集群,版本:1.9.0

实例名 内网 IP 软件 vCPU 内存 磁盘
i-2zegn56cijnzklcn240f 172.25.230.226 监控集群:Console 16 64G 500GB
i-2zegn56cijnzklcn240j 172.23.15.98 监控集群:Easysearch 16 64G 500GB

压测 loadgen 配置

loadgen 版本:1.25.0

4 台压 Easysearch,4 台压 Elasticsearch。

实例名 内网 IP 软件 vCPU 内存 磁盘
i-2zegn56cijnzklcn240n 172.17.67.245 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn2411 172.22.75.141 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn240k 172.25.230.227 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn240e 172.22.75.138 Loadgen - 压 Easysearch 16 64G 500GB
i-2zegn56cijnzklcn240h 172.24.250.255 Loadgen - 压 Elasticsearch 16 64G 500GB
i-2zegn56cijnzklcn240w 172.24.251.0 Loadgen - 压 Elasticsearch 16 64G 500GB
i-2zegn56cijnzklcn240g 172.24.250.248 Loadgen - 压 Elasticsearch 16 64G 500GB
i-2zegn56cijnzklcn240s 172.24.250.249 Loadgen - 压 Elasticsearch 16 64G 500GB

压测索引 Mapping

PUT nginx
{
  "mappings": {
    "properties": {
      "method": {
        "type": "keyword"
      },
      "bandwidth": {
        "type": "integer"
      },
      "service_name": {
        "type": "keyword"
      },
      "ip": {
        "type": "ip"
      },
      "memory_usage": {
        "type": "integer"
      },
      "upstream_time": {
        "type": "float"
      },
      "url": {
        "type": "keyword"
      },
      "response_size": {
        "type": "integer"
      },
      "request_time": {
        "type": "float"
      },
      "request_body_size": {
        "type": "integer"
      },
      "error_code": {
        "type": "keyword"
      },
      "metrics": {
        "properties": {
          "queue_size": {
            "type": "integer"
          },
          "memory_usage": {
            "type": "integer"
          },
          "thread_count": {
            "type": "integer"
          },
          "cpu_usage": {
            "type": "integer"
          },
          "active_connections": {
            "type": "integer"
          }
        }
      },
      "cpu_usage": {
        "type": "integer"
      },
      "user_agent": {
        "type": "keyword"
      },
      "connections": {
        "type": "integer"
      },
      "timestamp": {
        "type": "date",
        "format": "yyyy-MM-dd'T'HH:mm:ss.SSS"
      },
      "status": {
        "type": "integer"
      }
    }
  },
  "settings": {
    "number_of_shards": 7,
    "number_of_replicas": 0,
    "refresh_interval": "30s"
  }
}

压测方法

每 4 个 loadgen 使用批量写入接口 bulk 轮询压测同一集群的 7 个节点,每个请求写入 10000 个文档。

具体请求如下:

requests:
  - request: #prepare some docs
      method: POST
      runtime_variables:
#        batch_no: uuid
      runtime_body_line_variables:
#        routing_no: uuid
#      url: $[[env.ES_ENDPOINT]]/_bulk
      url: $[[ip]]/_bulk
      body_repeat_times: 10000
      basic_auth:
       username: "$[[env.ES_USERNAME]]"
       password: "$[[env.ES_PASSWORD]]"
      body: |
        {"index": {"_index": "nginx", "_type": "_doc", "_id": "$[[uuid]]"}}
        $[[message]]

压测数据样本

{"method":"DELETE","bandwidth":1955,"service_name":"cart-service","ip":"120.204.26.240","memory_usage":1463,"upstream_time":"1.418","url":"/health","response_size":421,"request_time":"0.503","request_body_size":1737,"error_code":"SYSTEM_ERROR","metrics":{"queue_size":769,"memory_usage":1183,"thread_count":65,"cpu_usage":68,"active_connections":837},"cpu_usage":70,"user_agent":"Mozilla/5.0 (iPad; CPU OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1","connections":54,"timestamp":"2024-11-16T14:25:21.423","status":500}
{"method":"OPTIONS","bandwidth":10761,"service_name":"product-service","ip":"223.99.83.60","memory_usage":567,"upstream_time":"0.907","url":"/static/js/app.js","response_size":679,"request_time":"1.287","request_body_size":1233,"error_code":"NOT_FOUND","metrics":{"queue_size":565,"memory_usage":1440,"thread_count":148,"cpu_usage":39,"active_connections":1591},"cpu_usage":87,"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1","connections":354,"timestamp":"2024-11-16T05:37:28.423","status":502}
{"method":"HEAD","bandwidth":10257,"service_name":"recommendation-service","ip":"183.60.242.143","memory_usage":1244,"upstream_time":"0.194","url":"/api/v1/recommendations","response_size":427,"request_time":"1.449","request_body_size":1536,"error_code":"UNAUTHORIZED","metrics":{"queue_size":848,"memory_usage":866,"thread_count":86,"cpu_usage":29,"active_connections":3846},"cpu_usage":71,"user_agent":"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)","connections":500,"timestamp":"2024-11-16T15:14:30.424","status":403}

压测索引 1 主分片 0 副本

Elastic 吞吐

Elastic 线程及队列

资源消耗

Easysearch 吞吐

Easysearch 线程及队列

资源消耗

对比

软件 平均集群吞吐 平均单节点吞吐 最大队列 磁盘消耗
Elasticsearch 5w 5w 811 10G
Easysearch 7w 7w 427 4G

压测索引 1 主分片 1 副本

Elastic 吞吐

Elastic 线程及队列

资源消耗

Easysearch 吞吐

Easysearch 线程及队列

资源消耗

对比

软件 平均集群吞吐 平均单节点吞吐 最大队列 磁盘消耗(~3000 万文档)
Elasticsearch 10w 5w 791 22G
Easysearch 14w 7w 421 7G

压测索引 7 主分片

Elastic 吞吐

Elastic 线程及队列

资源消耗

网络

单节点平均接收 26MB/s,对应带宽:1456 Mb/s

5 千万文档,总存储 105 GB,单节点 15 GB

Easysearch 吞吐

Easysearch 线程及队列

资源消耗

对比

软件 平均集群吞吐 平均单节点吞吐 最大队列 磁盘消耗
Elasticsearch 35w 5w 2449 105G
Easysearch 60w 8.5w 1172 36G

总结

通过对不同场景的压测结果进行对比分析,得出以下结论:

  • Easysearch 相比 Elasticsearch 的索引性能显著提升
    Easysearch 集群的吞吐性能提升了 40% - 70%,且随着分片数量的增加,性能提升效果更为显著。
  • Easysearch 相比 Elasticsearch 的磁盘压缩效率大幅提高
    Easysearch 集群的磁盘压缩效率提升了 2.5 - 3 倍,并且随着数据量的增加,压缩效果愈发明显。

此测试结果表明,Easysearch 在日志处理场景中具有更高的性能与存储效率优势,尤其适用于大规模分片与海量数据的使用场景。

如有任何问题,请随时联系我,期待与您交流!

收起阅读 »

搜索客社区日报 第1974期 (2025-01-20)

1、一文彻底讲透GPT架构及推理原理
https://mp.weixin.qq.com/s/moVLtn0_necwuyxdIlosSg

2、AI编程工具使用技巧——通义灵码
https://blog.csdn.net/weixin_7 ... 12263

3、一文读懂 ESLint配置
https://blog.csdn.net/qq_61654 ... 26398

4、微服务篇-深入了解索引库与文档 CRUD 操作、使用 RestCliet API 操作索引库与文档 CRUD(Java 客户端连接 Elasticsearch 服务端)
https://blog.csdn.net/Tingfeng ... 17465

5、【Elasticsearch】 复合查询
https://blog.csdn.net/lilinhai ... 82306

编辑:Muse
更多资讯:http://news.searchkit.cn
继续阅读 »
1、一文彻底讲透GPT架构及推理原理
https://mp.weixin.qq.com/s/moVLtn0_necwuyxdIlosSg

2、AI编程工具使用技巧——通义灵码
https://blog.csdn.net/weixin_7 ... 12263

3、一文读懂 ESLint配置
https://blog.csdn.net/qq_61654 ... 26398

4、微服务篇-深入了解索引库与文档 CRUD 操作、使用 RestCliet API 操作索引库与文档 CRUD(Java 客户端连接 Elasticsearch 服务端)
https://blog.csdn.net/Tingfeng ... 17465

5、【Elasticsearch】 复合查询
https://blog.csdn.net/lilinhai ... 82306

编辑:Muse
更多资讯:http://news.searchkit.cn 收起阅读 »

搜索客社区日报 第1973期 (2025-01-16)

1.黄东旭:2025 数据库技术展望
https://mp.weixin.qq.com/s/SkJH5rB-3XcVy-Zc5QcQGQ
2.揭秘DeepSeek:一个更极致的中国技术理想主义故事
https://mp.weixin.qq.com/s/r9zZaEgqAa_lml_fOEZmjg
3.带你了解: Elastic Serverless如何在全球范围内协调工作负载
https://mp.weixin.qq.com/s/xo0nVVHYQhn5vCBKytwIvg
4.AI 开发者视角:2024 年大模型基础设施与中间件工具链生态演进
https://mp.weixin.qq.com/s/LmrIzUzI7hIEQLwLK8AoqA

编辑:Se7en
更多资讯:http://news.searchkit.cn
继续阅读 »
1.黄东旭:2025 数据库技术展望
https://mp.weixin.qq.com/s/SkJH5rB-3XcVy-Zc5QcQGQ
2.揭秘DeepSeek:一个更极致的中国技术理想主义故事
https://mp.weixin.qq.com/s/r9zZaEgqAa_lml_fOEZmjg
3.带你了解: Elastic Serverless如何在全球范围内协调工作负载
https://mp.weixin.qq.com/s/xo0nVVHYQhn5vCBKytwIvg
4.AI 开发者视角:2024 年大模型基础设施与中间件工具链生态演进
https://mp.weixin.qq.com/s/LmrIzUzI7hIEQLwLK8AoqA

编辑:Se7en
更多资讯:http://news.searchkit.cn 收起阅读 »

搜索客社区日报 第1972期 (2025-01-15)

1.MCP Server 开发实战:无缝对接 LLM 和 Elasticsearch
https://mp.weixin.qq.com/s/38HiPOOKVKz3C76d_SGkmw
2.怎么去评估可搜索快照的性能
https://blog.csdn.net/UbuntuTo ... 31200
3.Elasticsearch:Lucene 2024 年回顾
https://blog.csdn.net/UbuntuTo ... 92339


编辑:kin122 
更多资讯:http://news.searchkit.cn
继续阅读 »
1.MCP Server 开发实战:无缝对接 LLM 和 Elasticsearch
https://mp.weixin.qq.com/s/38HiPOOKVKz3C76d_SGkmw
2.怎么去评估可搜索快照的性能
https://blog.csdn.net/UbuntuTo ... 31200
3.Elasticsearch:Lucene 2024 年回顾
https://blog.csdn.net/UbuntuTo ... 92339


编辑:kin122 
更多资讯:http://news.searchkit.cn 收起阅读 »

【直播预告】第6期 搜索客 Meetup | Easysearch 请求限速漫谈 2025-01-17 19:00

本次活动由 搜索客社区、极限科技(INFINI Labs)联合举办,活动邀请到 INFINI Labs 高级解决方案架构师 杨帆 老师给大家带来精彩分享,欢迎预约直播观看~

活动主题:Easysearch 请求限速漫谈
活动时间:2025 年 01 月 17 日 19:00-20:00(周三)
活动形式:微信视频号(极限实验室)直播
报名方式:关注或扫码海报中的二维码进行预约

嘉宾介绍

杨帆,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。

主题摘要

将和大家一起畅谈,为什么要限速,最早是怎样提出这个需求来的?对读请求限速我们能做什么?对写请求限速我们能做什么?

参与有奖

本次直播活动将设有福袋抽奖环节,参与就有机会获得 INFINI Labs 周边纪念品,包括 T 恤、鸭舌帽、咖啡杯、指甲刀套件、精品围巾等等(图片仅供参考,款式、颜色与尺码随机)。

活动交流

本活动设有 Meetup 技术交流群,可添加小助手微信拉群,与更多小伙伴一起学习交流。

Meetup 讲师招募

搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。

讲师报名链接:http://cfp.searchkit.cn
或扫描下方二维码,立刻报名成为讲师!

Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。

我们热切期待您的精彩分享!

往期回顾

关于 搜索客(SearchKit)社区

搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。

社区官网:https://searchkit.cn

继续阅读 »

本次活动由 搜索客社区、极限科技(INFINI Labs)联合举办,活动邀请到 INFINI Labs 高级解决方案架构师 杨帆 老师给大家带来精彩分享,欢迎预约直播观看~

活动主题:Easysearch 请求限速漫谈
活动时间:2025 年 01 月 17 日 19:00-20:00(周三)
活动形式:微信视频号(极限实验室)直播
报名方式:关注或扫码海报中的二维码进行预约

嘉宾介绍

杨帆,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。

主题摘要

将和大家一起畅谈,为什么要限速,最早是怎样提出这个需求来的?对读请求限速我们能做什么?对写请求限速我们能做什么?

参与有奖

本次直播活动将设有福袋抽奖环节,参与就有机会获得 INFINI Labs 周边纪念品,包括 T 恤、鸭舌帽、咖啡杯、指甲刀套件、精品围巾等等(图片仅供参考,款式、颜色与尺码随机)。

活动交流

本活动设有 Meetup 技术交流群,可添加小助手微信拉群,与更多小伙伴一起学习交流。

Meetup 讲师招募

搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。

讲师报名链接:http://cfp.searchkit.cn
或扫描下方二维码,立刻报名成为讲师!

Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。

我们热切期待您的精彩分享!

往期回顾

关于 搜索客(SearchKit)社区

搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。

社区官网:https://searchkit.cn

收起阅读 »