Elasticsearch:反向代理及负载均衡在 Elasticsearch 中的应用

在我们配置 Elasticsearh 安全的时候,我们可以考虑三个方面的东西:

  • firewalls
  • 反向代理 (reverse proxies)
  • Elastic Security

我们可以利用 firewall 已经  IP filtering 来限制或允许特定的 IP 地址来访问我们的 Elasticsearch。对于 OSS 的用户来说,他们可以使用 reverse proxy 的方法来实现最基本的安全配置。当然对于 Baisic license 以上的用户来说,我们建议使用 Elastic Security。

       

在今天的文章中,我将来讲述如何使用 Nginx 来实现 reverse proxy 已经负载均衡。

我的配置

我的配置如下:

                                

我在 MacOS 的机器上安装了 Elasticsearch 及 Kibana。我在 Ubuntu 的机器上安装了 Nginx。如果你还没有安装自己的 Elasticsearch 及 Kibana,请参阅我之前的文章 “Elastic:菜鸟上手指南” 进行安装。特别值得指出的是,为了能够使得我们的 Elasticsearch 能够被 Niginx 所访问,那么请修改 config/elasticsearch.yml 中的配置:

network.host: 0.0.0.0
discovery.type: single-node

一点点背景

Elasticsearch 的定义性功能之一是通过基于 HTTP的(宽松的)RESTful 服务公开。

当然,好处很容易阐明:API 对所有Web开发人员都是熟悉且可预测的。 通过 curl 命令或在浏览器中即可轻松使用。 使用各种编程语言编写 API 包装器很容易。

尽管如此,Elasticsearch 基于 HTTP 的本质的重要性已根深蒂固:以其适合于软件开发和体系结构的现有范例的方式。

HTTP 作为架构范例

典型的现代软件或信息系统通常是松散耦合服务的集合,这些服务通过网络(通常通过 HTTP)进行通信。在设计方面,此方法的重要方面是,你始终可以“撕裂”服务链,并将另一个添加或更改功能的组件插入“堆栈”。在过去,传统上将其称为“中间件”,但在 RESTful Web 服务的背景下又重新出现,例如 Rack 中间件,特别是在 Ruby on Rails 框架中使用。

HTTP 特别适合于此类体系结构,因为它的明显缺点(缺乏状态,基于文本的表示形式,以 URI 为中心的语义……)变成了一个优势:中间件都不必适应“链”中的特定内容,并仅传递状态代码,标题和正文。从这个意义上讲,HTTP 在功能上是透明的–没关系,例如,是否从原始 Web 服务器或其他大陆的缓存中获取图像。仍然是相同的“资源”。

缓存是 HTTP 这方面的一个主要示例,Roy Fielding 在 RESTful 体系结构的开创性工作中已经介绍过。 (有关该主题的详细信息,请参阅Ryan Tomayko的《事物缓存》和Mark Nottingham的《缓存教程》。)

从技术上讲,缓存在这里充当代理–它 “代表” 堆栈中的其他组件。

但是代理可以做的更多。认证和授权就是一个很好的例子:代理可以拦截对服务的请求,执行认证和/或授权例程,并允许或拒绝对客户端的访问。

这种代理通常称为反向代理。当你认为传统代理将从本地网络“转发”流量到远程网络(互联网)时,此名称有意义,因为在这里反向转发是因为“反向”代理将来自 Internet 的请求转发到“本地”后端。可以使用 Java 或 Go 之类的编程语言或诸如 Node.js 之类的框架来实现这种代理。或者,我们可以使用可配置的网络服务器,例如 Nginx。

Nginx

Nginx 是最初由 Igor Sysoev 编写的开源 Web 服务器,专注于高性能,并发性和低内存占用。 (有关详细的技术概述,请参见《开源应用程序体系结构》一书的相关章节。)

Nginx 从一开始就考虑到代理角色,并且支持许多相关的配置指令和选项。 在 Django 应用程序的 Ruby on Rails 前面将 Nginx 作为负载平衡器运行是相当普遍的。 许多大型 PHP 应用程序甚至将 Nginx 放在运行 mod_php 的 Apache 前面,以加速静态内容的提供和扩展应用程序。 本文的大多数部分都假定安装了标准的 Nginx,但是高级部分依赖于 Lua 模块来安装 Nginx。如果你还没有安装自己的 Nginx,请参考我之前的文章 “Beats:使用 Elastic Stack 对 Nginx Web 服务器监控” 来进行安装。

要将 Nginx 用作 Elasticsearch 的 “100%透明”代理,我们需要一个非常小的配置。我们直接修改 /etc/nginx/nginx.conf 文件,并修改 http 的部分如下:

/etc/nginx/nginx.conf

http {
  server {
    listen 8080;
    location / {
      proxy_pass http://192.168.0.3:9200;
    }
  }
}

请注意上面的 192.168.0.3 是我的 MacOS 的 IP 地址。

针对早期的 Elastic Stack 开发者来说,x-pack 是收费的功能(7.x 之前的版本)。我们实际上可以使用如下的配置方案来保护我们的 Elasticsearch,尽管在我们今天的练习中没有使用到。我们在 /etc/nginx/nginx.conf 进行如下的配置:

    server {
        listen *:80;

        server_name $hostname localhost;
        location / {
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
            proxy_pass http://localhost:9200;
        }
    }

请注意:在上面 auth_basic_user_file 的位置必须位于 nginx 的配置目录或之下的目录。

我们可以在 terminal 中打入如下的命令来设置方面的用户名及密码。具体可以参考链接。

sudo htpasswd -c /usr/local/etc/nginx/.htpasswd xgliu
$ sudo htpasswd -c /usr/local/etc/nginx/.htpasswd xgliu
New password: 
Re-type new password: 
Adding password for user xgliu

如上所示,我们为 xgliu 用户设置所需要的密码。

经过这样的设置,我们重新启动 Niginx 服务:

sudo service nginx restart

我们可以通过如下的命令来检查服务是否正常运行:

sudo service nginx status
$ sudo service nginx status
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>
     Active: active (running) since Wed 2020-09-02 17:52:33 CST; 14min ago
       Docs: man:nginx(8)
    Process: 25616 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_proc>
    Process: 25634 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (>
   Main PID: 25635 (nginx)
      Tasks: 9 (limit: 18985)
     Memory: 8.2M
     CGroup: /system.slice/nginx.service
             ├─25635 nginx: master process /usr/sbin/nginx -g daemon on; master>
             ├─25636 nginx: worker process
             ├─25637 nginx: worker process
             ├─25638 nginx: worker process
             ├─25639 nginx: worker process
             ├─25640 nginx: worker process
             ├─25641 nginx: worker process
             ├─25642 nginx: worker process
             └─25643 nginx: worker process

经过上面的改造后,我们可以通过如下的命令来检查反向代理是否已经起作用了:

curl -XGET http://192.168.0.4:8080

我们在 terminal 中打入上面的命令:

curl -XGET http://192.168.0.4:8080
{
  "name" : "liuxg",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "u8tKdzFjQaOiJ5sF_d15oQ",
  "version" : {
    "number" : "7.9.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "a479a2a7fce0389512d6a9361301708b92dff667",
    "build_date" : "2020-08-11T21:36:48.204330Z",
    "build_snapshot" : false,
    "lucene_version" : "8.6.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

显然当我们向 Ubuntu 的 IP 地址 192.168.0.4 发送请求时,我们可以看到相应的输出。这个请求的结果来自安装于 IP 192.168.0.3 的 MacOS 上的 Elasticsearch。

这个代理当然是毫无用处的,它只是在客户端和 Elasticsearch 之间移交数据。 尽管精明的读者可能已经猜到它已经在 “堆栈” 中添加了一些内容,即记录每个请求。

使用案例

在本文中,我们将介绍 Nginx 作为 Elasticsearch 的反向代理的一些更有趣的用例。

持久 HTTP 连接

让我们从一个非常简单的示例开始:使用 Nginx 作为代理,以保持与 Elasticsearch 的持久(“keep-alive”)连接。 为什么我们要这样做? 主要原因是为了减轻 Elasticsearch 在使用不支持持久连接的客户端时为每个请求打开和关闭连接的压力。 Elasticsearch 不仅仅是处理网络,还有更多的责任,打开/关闭连接会浪费宝贵的时间和资源(例如打开文件的限制)。

像本文中的所有示例一样,本链接提供了完整的配置。我们创建如下的文件:

/etc/nginx/nginx_keep_alive.conf

events {
    worker_connections  1024;
}
http {
  upstream elasticsearch {
    server 127.0.0.1:9200;
    keepalive 15;
  }
  server {
    listen 8080;
    location / {
      proxy_pass http://192.168.0.3:9200;
      proxy_http_version 1.1;
      proxy_set_header Connection "Keep-Alive";
      proxy_set_header Proxy-Connection "Keep-Alive";
    }
  }
}

让我们以如下的方法来启动 Nginx:

$ pwd
/etc/nginx

$ sudo service nginx stop
$ sudo nginx -p $PWD/nginx/ -c $PWD/nginx_keep_alive.conf

当你直接向 Elasticsearch 执行请求时,你会注意到打开的连接数一直在增加:

liuxg@liuxgu:/etc/nginx$ curl 'mac:9200/_nodes/stats/http?pretty' | grep total_opened
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   753  100   753    0     0   245k      0 --:--:-- --:--:-- --:--:--  245k
        "total_opened" : 94
liuxg@liuxgu:/etc/nginx$ curl 'mac:9200/_nodes/stats/http?pretty' | grep total_opened
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   753  100   753    0     0   245k      0 --:--:-- --:--:-- --:--:--  245k
        "total_opened" : 95
liuxg@liuxgu:/etc/nginx$ curl 'mac:9200/_nodes/stats/http?pretty' | grep total_opened
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   753  100   753    0     0   367k      0 --:--:-- --:--:-- --:--:--  367k
        "total_opened" : 96

我们可以看到向 Elasticsearch 直接发送请求的时候,这个 total_opened 的数值是一直在增加的。但是使用 Nginx 时则完全不同,打开的连接数保持不变 (在 Ubuntu 机器发送的请求):

liuxg@liuxgu:/etc/nginx$ curl 'localhost:8080/_nodes/stats/http?pretty' | grep total_opened
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   753  100   753    0     0   245k      0 --:--:-- --:--:-- --:--:--  245k
        "total_opened" : 97
liuxg@liuxgu:/etc/nginx$ curl 'localhost:8080/_nodes/stats/http?pretty' | grep total_opened
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   753  100   753    0     0   367k      0 --:--:-- --:--:-- --:--:--  367k
        "total_opened" : 97
liuxg@liuxgu:/etc/nginx$ curl 'localhost:8080/_nodes/stats/http?pretty' | grep total_opened
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   753  100   753    0     0   367k      0 --:--:-- --:--:-- --:--:--  367k
        "total_opened" : 97

我们可以看到连接数是保持不变的。

简单的负载均衡器

只需很小的配置更改,我们就可以使用它将请求传递到多个 Elasticsearch 节点,并将 Nginx 用作轻量级负载均衡器:

/etc/nginx/nginx_keep_alive.conf

events {
    worker_connections  1024;
}
http {
  upstream elasticsearch {
    server 192.168.0.3:9200;
    server 192.168.0.5:9200;
    server 192.168.0.6:9200;
    server 192.168.0.7:9200;
    keepalive 15;
  }
  server {
    listen 8080;
    location / {
      proxy_pass http://elasticsearch;
      proxy_http_version 1.1;
      proxy_set_header Connection "Keep-Alive";
      proxy_set_header Proxy-Connection "Keep-Alive";
    }
  }
}

如你所见,我们在upstream directive 指令中添加了其它的附加节点。 Nginx 现在将以循环方式自动在这些服务器之间分配请求,从而将Elasticsearch 集群上的负载平均分配到各个节点上。在实际的使用中,我们可以以如下的方式来查询当前使用的 Elasticsearch 节点的名称:

curl localhost:8080 | grep name
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   530  100   530    0     0   172k      0 --:--:-- --:--:-- --:--:--  172k
  "name" : "liuxg",
  "cluster_name" : "elasticsearch",

上面显示我的节点的名称为 liuxg。如果我们有多个节点,我们可以重复使用上面的命令,我们将看到有不同的节点返回结果,就像下面的显示一样:

$ curl localhost:8080 | grep name
# "name" : "Silver Fox",
$ curl localhost:8080 | grep name
# "name" : "G-Force",
$ curl localhost:8080 | grep name
# "name" : "Helleyes",
$ curl localhost:8080 | grep name
# "name" : "Silver Fox",
# ...

这是一种理想的行为,因为它防止命中单个“热”节点,该节点必须执行常规节点职责,还路由所有流量并执行所有其他关联的操作。 要更改配置,我们只需要更新 upstream directive 中的服务器列表,并向 Nginx 发送一个重载信号即可。

有关 Nginx 负载平衡功能的更多信息,包括不同的平衡策略,为不同的节点设置“权重”,运行状况检查和实时监控,请参阅使用NGINX和NGINX Plus进行负载平衡。

(请注意,正式的 Elasticsearch 客户端可以自行执行这种负载平衡,并具有自动重新加载集群中节点列表,在另一个节点上重试请求等功能)。

结论

在本文中,我们充分利用了 Elasticsearch 是通过 HTTP 公开的服务这一事实。 我们已经看到 HTTP 在概念上如何很好地适合于将软件体系结构设计为独立的,分离的服务的当前范例,以及如何将 Nginx 用作高性能,可定制的代理。

参考

【1】Secure your Elasticsearch Cluster with Basic Auth using Nginx and SSL from Letsencrypt

【2】Tips to secure Elasticsearch clusters for free with encryption, users, and more | Elastic Blog

相关推荐

AgentHack Shanghai|基于阿里云AI搜索 Elasticsearch x Qoder 构建AI Agent应用

2026年12月12日,Elastic社区、阿里云与Qoder联合举办AgentHack实战活动,聚焦AI编程、搜索检索与智能体工具链融合。参赛者将使用唯一指定工具QoderCN,在一天内完成从需求分析到可演示原型的构建,结合阿里云AI搜索或Elastic生态实现真实场景应用。活动提供技术工作坊、导师答疑及1个月QoderCN专业版会员,鼓励展示数据检索、工具调用与任务闭环的完整链路。参赛者可基于阿里云Elasticsearch、ElasticCloud或自部署环境,打造企业知识问答、业务分析等智能体原型,

Elastic 中国社区官方博客 1417

Elastic 线下 Meetup 将于 2026 年 12 月 19 号下午在西安举行

2026年12月19日,Elastic、阿里云与新智锦绣联合举办西安站ElasticMeetup。活动聚焦Elasticsearch向量搜索、AI Agents构建及企业级知识引擎演进,特邀刘晓国、陈星宇、孔祥超等专家分享技术前沿实践。内容涵盖语义搜索、智能诊断、云原生管控与大模型时代搜索架构升级,助力开发者掌握企业级AI应用落地核心能力。

Elastic 中国社区官方博客 1286

Elastic 线下 Meetup 将于 2026 年 11 月 28 号下午在杭州举行

2026年11月28日,杭州阿里云谷园区将举办AI搜索技术盛会。活动汇聚Elastic社区首席布道师刘晓国、中国电子云高斌、阿里云汤祯捷及预言家科技欧阳楚才等专家,聚焦Elasticsearch向量搜索、AI Agents构建、本体智能体上下文引擎与电商智能导购系统,探讨AgenticSearch 2.0、多模态检索与企业级智能搜索演进。现场设茶歇、合影与抽奖,报名成功后请扫码入群。

Elastic 中国社区官方博客 1074

Elastic:如何成为一名 Elastic 认证工程师,Elastic 认证分析师及 Elastic 认证可观测性工程师

Elasticsearch 无疑是是目前世界上最为流行的大数据搜索引擎。根据 DB - Engines 的统计,Elasticsearch 雄踞排行榜第一名,并且市场还在不断地扩大:能够成为一名 Elastic 认证工程师也是很多开发者的梦想。这个代表了 Elastic 的最高认证,在业界也得到了很高的认知度。得到认证的工程师,必须除了具有丰富的 Elastic Stack 知识,而且必须有丰富的操作及有效的解决问题的能力。拥有这个认证证书,也代表了个人及公司的荣誉。针对个人的好处是,你可以..

Elastic 中国社区官方博客 2万+

Elastic:开发者上手指南

你们好,我是Elastic的刘晓国。如果大家想开始学习Elastic的话,那么这里将是你理想的学习园地。在我的博客几乎涵盖了你想学习的许多方面。在这里,我来讲述一下作为一个菜鸟该如何阅读我的这些博客文章。我们可以按照如下的步骤来学习:1)Elasticsearch简介:对Elasticsearch做了一个简单的介绍2)Elasticsearch中的一些重要概念:cluster,n..........................................................

Elastic 中国社区官方博客 17万+

Elastic:培训视频 - ​在生产环境中配置 Fleet Server 和 Elastic Agent 之间的安全

在这篇文章中,我将会把我写的有些内容录制成视频,供大家参考。希望对大家有所帮助。优酷的视频频道地址在这里。Elastic 简介及Elastic Stack 安装:优酷,腾讯 Elastic Stack docker 部署:优酷,腾讯 Elasticsearch中的一些重要概念(Cluster/Shards/Replica/Document/Type/Index):优酷,腾讯 开始使用El...............

Elastic 中国社区官方博客 1万+

Elasticsearch 简介

Elasticsearch是一个非常强大的搜索引擎。它目前被广泛地使用于各个IT公司。Elasticsearch是由Elastic公司创建并开源维护的。它的开源代码位于https://github.com/elastic/elasticsearch。同时,Elastic公司也拥有Logstash及Kibana开源项目。这个三个开源项目组合在一起,就形成了 ELK软件栈。他们三个共同形成了一个强大的...

Elastic 中国社区官方博客 17万+

Kibana 中的人工智能连接器:你的 agent 可调用的 90 多个数据源

Elastic推出Kibana内置的90+人工智能连接器,支持Slack、GitHub、Confluence、PagerDuty等平台,让agent在推理中自动调用外部数据源,无需编写集成代码。通过身份验证中继服务,agent可安全访问个人或组织数据,快速关联告警与背景信息(如变更记录、讨论串、文档),显著缩短故障排查时间。结合ElasticCloud Trial,用户可即刻体验完整功能。

Elastic 中国社区官方博客 45

更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描

Elasticsearch 现在在成本模型中将文档位数的权重提高至原来的三倍,因此 DiskBBQ 会先尝试预处理和更深层的重排序,再增加一个比特,使量化向量在保持相同召回率的同时维持较小的体积。

Elastic 中国社区官方博客 266

对 OpenTelemetry Kafka 接收器的两项改动,避免一个缓慢的租户拖住其他租户

Elastic通过两项改进解决OpenTelemetry Kafka接收器中的“吵闹邻居”问题:一是为每个Kafka分区引入独立工作单元,实现租户间分区隔离;二是添加租户限流处理器,动态限制各租户在共享发送队列中的槽位占用,防止慢租户阻塞其他租户。结合max_in_flight配置提升单分区吞吐量与内存控制,确保记录不丢失、投递至少一次,同时保障多租户环境下稳定高效的数据处理。

Elastic 中国社区官方博客 335

三次模型调用,占据 92% 的等待时间:使用 OpenTelemetry 实现人工智能 agent 可观测性

使用OpenTelemetry追踪LangChain购物助手,发现92%耗时源于三次模型调用。虽将比较模型替换为更便宜的版本后,成本降低76%-83%,但四成问题响应变慢。通过追踪数据定位瓶颈,结合ES|QL分析词元用量与费用,验证了成本优化但延迟未改善。借助Elastic AI Agent建议,进一步测试return_direct=True以跳过冗余调用,实现性能与成本双赢。可观测性助力精准决策,确保答案正确、响应高效。

Elastic 中国社区官方博客 378

Elasticsearch:稠密向量字段类型

dense_vector字段用于存储稠密向量,支持k近邻搜索(kNN),默认启用索引并使用余弦相似度。可接受浮点数数组或Base64编码字符串输入,支持自动量化(如int8、int4、bbq)以降低内存占用。通过index_options配置索引类型(如hnsw、bbq_disk),并可启用过采样与重新评分提升精度。向量默认不存储于_source中以节省空间,可通过fields或_source.exclude_vectors显式返回。支持bit向量及GPU加速索引,适用于高维向量场景。

Elastic 中国社区官方博客 286

使用 Qoder 将 CSV 文件导入 Elasticsearch

本文演示如何通过Qoder智能助手,仅用4轮对话,将IMDB电影数据CSV文件(10,178条)高效导入Elasticsearch。无需编写代码,Qoder自动完成依赖安装、连接配置、字段类型推断(text/keyword/double)、数据验证及导入,支持自定义映射与数据转换,耗时约30秒,显著简化数据导入流程。

Elastic 中国社区官方博客 243

两条规则,一次故障,一条告警:变点检测如何减少告警噪声

Elastic Carlos Crespo揭示了基于ES|QL规则的AI agent如何通过重运行查询验证告警真实性,实现从日志变化到重大事件告警的自动化。系统先通过变点检测识别规则行为突变,再由发现agent核实故障存在性、规模与影响范围,并合并同类信号以减少噪声。每条告警均附带可追溯的查询证据,确保结论可验证。最终生成的告警包含严重程度、置信度、受影响拓扑及量化指标,支持运维决策。该流程结合代码与模型分工,保障可靠性与可解释性,已在多场景测试中验证有效性。

Elastic 中国社区官方博客 332

把词向量“贴”在地球仪上:用球面视角看 Embedding 的真实几何

本文通过将归一化词向量投影至3D球面,利用slerp绘制大圆弧,以真实反映余弦相似度对应的测地线距离。相比传统PCA平面散点图,球面可视化避免几何扭曲,直观呈现词间语义关系。结合Plotly实现交互式“词语地球仪”,可旋转观察聚类、跨语言对齐(如“cat”与“猫”),并对比高维真值与降维后距离的失真。代码简洁(<200行),支持模型替换与扩展,揭示“向量相近”在球面上的真实形态。

Elastic 中国社区官方博客 259

我们的 agent 技能如何调研、构建和测试完整的 Elastic 集成

作者:来自 Elastic我们让 agent 技能处理美国国家标准与技术研究院的国家漏洞数据库接口,得到了两个数据流和一个经过验证的通用表达式语言程序,并通过了流水线测试和系统测试。调研发现,一天中 78% 的通用漏洞与披露记录都是旧记录的重新发布,这一发现改变了设计。Elasticsearch 原生集成了业界领先的生成式人工智能工具和服务提供商。欢迎观看我们的网络研讨会,了解如何,或使用构建可用于生产环境的应用。要为你的使用场景构建最佳搜索解决方案,立即开始,或在你的上试用 Elastic。

Elastic 中国社区官方博客 130

基于 Elasticsearch 与 Jina AI 的全模态智能搜索实践:技术全解析

是一个结构清晰、覆盖全面且极具实操价值的开源项目。它不仅展示了Jina AI 多模态模型在非结构化数据表征上的强悍性能,也展现了在混合检索(BM25 + k-NN + RRF)以及多模态 RAG 架构上的工程实践。无论是准备构建企业级智能知识库、多媒体图库检索系统,还是探索音视频多模态推荐,该项目都提供了非常优秀的代码模版与架构参考。

Elastic 中国社区官方博客 205

你的日志早已写好告警:在 Elasticsearch 中生成 ES|QL 检测查询

Elastic Observability Labs展示如何基于OpenTelemetry日志自动生成精准的ES|QL检测查询。通过30个知识指标(27个推断、3个计算),生成10条查询,其中4条转化为Kibana告警规则。查询严格遵循三条提示词规则:精确匹配短语、不依赖log.level、仅在同文档中组合谓词。正常运行时匹配0条,故障期间捕获676条支付服务异常日志。查询随依赖知识失效自动停用,确保持续有效性。

Elastic 中国社区官方博客 684

基于 Jina OCR v1 与 Elasticsearch 的 PDF 智能混合检索与 RAG 系统实战指南

本文介绍开源项目jina-ocr-v1-pdf,基于JinaOCRv1高精度视觉解析与Elasticsearch的混合检索(RRF),构建端到端PDF智能问答系统。通过PyMuPDF渲染高清图像、并发OCR提取结构化文本(Markdown/HTML),结合自动切片向量化与BM25+语义检索融合,实现精准页码定位与上下文相关性提升。配合Streamlit前端与Kibana监控,支持企业级文档智能处理,有效解决扫描件、多栏、表格等复杂排版难题,为RAG应用提供高效、可扩展的技术范本。

Elastic 中国社区官方博客 552

Elastic Cloud 无服务器服务审计日志:将审计记录发送到可观测性或安全解决方案

ElasticCloud无服务器服务推出审计日志投递功能,支持将Elasticsearch与Kibana的活动日志(如索引变更、登录行为、数据访问)自动投递至同一组织内的可观测性或安全项目。附带8条告警规则和7个仪表板,涵盖凭据攻击检测、对象取证、数据访问追踪等场景。通过忽略筛选条件可降低存储成本,实现按需保留关键证据。支持跨项目日志聚合,助力安全与合规团队高效调查。立即免费试用14天,体验AI驱动的搜索与智能监控。

Elastic 中国社区官方博客 181

Elastic 在《Forrester Wave™:2026 年第四季度智能运维平台》报告中被评为强劲表现者

Elastic在《ForresterWave®:2026年第四季度智能运维平台》中被评为强劲表现者,获五项最高评分,涵盖算法可信度、可观测性即代码、AI技术栈、数据主权与定价透明度。其人工智能站点可靠性工程师以透明推理、完整上下文、持续学习和开放标准为核心,实现可验证排查、高效存储与跨环境兼容,助力团队信任AI、提升响应效率,推动智能运维迈向可验证、可进化的新阶段。

Elastic 中国社区官方博客 190

使用 OpenTelemetry 在 Elastic 中实现 Claude 平台的人工智能 agent 可观测性

Elastic与Claude平台集成,通过OpenTelemetry将AI agent追踪数据实时发送至Elastic,实现无代码观测。用户可在Kibana中查看模型请求、工具调用及上下文协议的完整交互轮次,包含耗时、词元计数与对话内容。支持服务清单、告警规则与SLO设置,结合SDK可实现跨服务追踪。免费云试用已开放,快速接入即可全面掌握Claude agent性能与成本。

Elastic 中国社区官方博客 892

三个区域、三个 Kibana、一个视图:跨集群搜索登陆 Elastic 合成监测

Elastic 9.5推出合成监测跨集群搜索功能,实现多集群监测器统一视图。无需复制数据,中央Kibana可实时查询远程集群的探测结果,展示状态、用户旅程、截图与证书,支持按远程集群筛选与分组。配置仍保留在原集群,仅提供只读访问,管理需返回源Kibana。适用于有状态部署,暂不支持无服务器服务。告警跨集群功能正在开发中。

Elastic 中国社区官方博客 384

Elastic 重大事件功能如何将 100 条日志样本转化为检测规则

本文介绍Elastic重大事件功能如何通过智能日志采样,从100份样本中提取27个知识指标(如服务、依赖关系、技术等),构建有证据支撑的日志源描述,进而生成精准检测规则。相比均匀采样易遗漏罕见故障信息,该系统采用三路分层采样(按实体筛选、多样性、随机)确保覆盖长尾模式,并通过循环迭代与去重机制提升准确性。知识指标可审核、手动保留或排除,支持持续接入。第二部分将基于这些指标生成可执行的查询,实现从“看到”到“检测”的跨越。

Elastic 中国社区官方博客 301

给海量查询“减负”:列式查询改写如何让检索更“省力”

Elasticsearch 9.5.0推出的列式查询改写技术,实现“零改造、高兼容、高精准”的查询优化。通过按需读取字段、谓词下推与嵌套扁平化,显著降低冗余读取与解码开销。基于1.8亿条日志的实测验证:16个用例命中数完全一致,核心时延持平,边界场景稳定,DSL语法兼容。系统自动降级兜底,确保功能可用。该技术特别适用于日志检索等海量数据场景,为集群性能提升提供开箱即用的底层支撑。

Elastic 中国社区官方博客 637

Elastic 如何帮助奥迪 Revolut F1® 车队在工程软件中找到关键信息

Elastic与奥迪RevolutF1®车队达成多年合作,将作为2026年美国大奖赛官方赛事合作伙伴,并自2027年起成为其官方搜索与可观测性供应商。通过Elastic技术栈(Logstash、Elasticsearch、Kibana),车队实现跨系统日志与遥测数据的统一视图,助力工程师在毫秒级内快速排查问题,提升软件可靠性。该合作不仅强化工程效率,更推动AI辅助诊断与决策支持,为赛车性能持续优化提供技术支撑。

Elastic 中国社区官方博客 218

5 分钟内将 56 页扫描文档转化为带引用的答案:面向搜索无法读取的文档的检索增强生成流水线

通过Elasticsearch与jina-ocr-v1结合,可将扫描版PDF(如56页植物指南)快速转化为可检索、可引用的知识库。该流程利用单一模型完成文档解析,输出结构化Markdown,再由Elasticsearch自动分块并生成嵌入向量,支持混合检索(关键词+语义)。用户以自然语言提问,系统返回带页码引用的答案及推荐商品,全程在统一平台内完成,无需自建流水线。

Elastic 中国社区官方博客 499

我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic

Elastic团队历时三年,将OpenTelemetry Java Agent从内联字节码插桩迁移至基于invokedynamic的类加载器隔离模式,支持100+插桩模块,提升可维护性与调试能力。相比此前三人团队的迁移,此次协作规模扩大,通过渐进式发布、运行时开关与自动化工具确保生产稳定。新架构实现插桩代码独立加载、兼容Java平台模块系统,并解决旧版本字节码兼容性问题。2026年7月,相关任务正式关闭,标志着迁移完成。

Elastic 中国社区官方博客 327

将 Elastic 引入 Claude:原因、方法与注意事项

Elastic发布Claude插件,将自身AI能力融入开发者工作流。从提交到上线仅用三周,但过程充满挑战:需绕过权限限制、调整版本管理策略(改用stable分支)、应对审核警告(如凭据提示、图标缺失等),且上线后无通知。插件首发于社区目录,需额外验证才能进入官方市场。作者强调,技术之外,与Anthropic团队的人际沟通是关键。经验表明,文档未覆盖的细节常需实战互动解决。欢迎开发者共享经验,共同推动生态发展。

Elastic 中国社区官方博客 117

告别繁琐控制台:Kabanos 如何将 MongoDB Compass 的易用性带入 Elasticsearch

Kabanos是一款专为macOS设计的本地优先桌面客户端,整合Elasticsearch与OpenSearch集群管理痛点。它结合MongoDB Compass式树状浏览与Kibana DevTools高效控制台,支持凭据安全加密、生产环境二次确认、只读模式及沙盒化架构,保障操作安全。内置查询库、自动化Routines与DryRun模式,提升运维效率。基于Electron与Zod校验,实现渲染层与网络请求隔离。快速上手:克隆仓库,启动Docker测试集群,运行pnpm dev即可使用。开源项目欢迎贡献,推

Elastic 中国社区官方博客 391
上一篇: Elasticsearch:Painless execute API
下一篇: Elasticsearch:创建 Ingest pipeline
Elastic 中国社区官方博客
Elastic 中国社区官方博客 企业官方账号 企业官方账号 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄12年 5万+粉丝 3111原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值