写点什么

如何使用 Logstash 8 连接 Easysearch

作者:极限实验室
  • 2025-01-12
    北京
  • 本文字数:1640 字

    阅读完需:约 5 分钟

如何使用 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: trueelasticsearch.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 下载地址:下载

关于 Easysearch


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


官网文档:https://infinilabs.cn/docs/latest/easysearch

发布于: 刚刚阅读数: 4
用户头像

简单、易用、极致、创新 2021-11-22 加入

极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

评论

发布
暂无评论
如何使用 Logstash 8 连接 Easysearch_Logstash_极限实验室_InfoQ写作社区