目录
2.2 Better Binary Quantization(BBQ)
2.3 Elastic Distributions of OpenTelemetry(EDOT)
一、前言
Elasticsearch 9.x 版本是一个非常强大且功能丰富的搜索引擎,它广泛用于全文搜索、日志分析、安全监控等场景。要在你的环境中搭建 Elasticsearch 9.x,你需要遵循以下步骤。这里我将以在 Linux 系统上安装 Elasticsearch 为例,因为 Elasticsearch 支持多种操作系统,但 Linux 因其稳定性和性能优化而成为首选。
二、Elasticsearch 9 新特性介绍
Elasticsearch 9相比之前的版本带来了很多新特性的补充,下面分别做简单的介绍。官网:Elastic — The Search AI Company | Elastic
2.1 基于 Lucene 10 重大升级
Elasticsearch 9.0 基于 Lucene 10.1.0 构建,带来了显著的性能提升和资源优化 Lucene 10 引入了更好的并行处理、更智能的索引机制和硬件优化,使得 Elasticsearch 在处理大规模数据时更加高效。
2.2 Better Binary Quantization(BBQ)
Elastic 自主研发的 BBQ 技术,现已正式发布,性能比 OpenSearch 快 5 倍。
该技术通过高效的二进制量化算法,显著提升了向量搜索的速度和准确性,特别适用于大规模生产环。
Elastic 的 BBQ 更好的二进制量化技术通过将每个向量维度压缩为单个位,极大地减少了存储空间和内存占用,同时保持了高质量的搜索结果。这使得在进行大规模向量搜索时,既节省了资源,又提高了效率。
2.3 Elastic Distributions of OpenTelemetry(EDOT)
EDOT 提供了原生的 OpenTelemetry 架构支持,简化了数据采集和分析流它支持统一的信号格式,增强了跨系统的可观测性,特别适用于多云和混合云环。
EDOT 是 Elastic 提供的工具,可以帮助更轻松地收集和分析不同系统的数据,它支持统一的数据格式,特别适合在多云和混合云环境中使用,提升了整体的监控和可视化能力。参考:Introducing Elastic Distributions of OpenTelemetry — Elastic Observability Labs
2.4 LLM 可观测性
新增的 LLM 可观测性功能,支持对生成式 AI 模型(如 Amazon Bedrock、Google Vertex AI、Azure OpenAI 和 OpenAI)进行性能、错误、提示、响应、使用情况和成本的全面监,这对于构建和维护 AI 驱动的应用至关重要。
2.5 攻击发现与自动导入
Elastic Security 引入了“攻击发现”和“自动导入”功能,利用 AI 驱动的安全分析,帮助安全运营团队快速识别和响应。 这些功能提高了检测效率,减少了手动干预。
2.6 ES|QL 增强
ES|QL(Elasticsearch Query Language)在 9.0 中进行了多项增强,包括:
引入了 INLINESTATS 命令,支持内联统计,简化查询语法。
引入语义搜索功能,支持对 semantic_text 字段类型进行查询,提升搜索的相关性。
新增 KQL 函数支持,允许在 ES|QL 查询中使用 KQL(Kibana Query Language),提高查询的灵活性和兼容性。
支持评分(_score)字段,允许根据相关性对结果进行排序。
2.7 语义检索
Elasticsearch 9.0 在语义搜索领域带来了重大升级,通过原生支持 semantic_text 字段类型、改进的查询方式以及与向量搜索的深度整合,为用户提供了更强大、更灵活的语义检索能力。
三、基于Docker部署Elasticsearch 9
接下来通过实际操作详细演示下基于Docker搭建Elasticsearch9的完整过程。
3.1 Elasticsearch 搭建方式一
3.1.1 创建docker网络
使用下面的命令创建一个docker 网络
docker network create elastic
3.1.2 获取es9镜像
使用下面的命令拉取es9镜像
docker pull elasticsearch:9.0.1
3.1.3 启动 es容器
使用下面的命令启动一个es容器
注意,如果你的服务器内存不足,建议启动容器的时候在参数中限制一下容器占用的内存大小
docker run -d \
--name es9 \
--network elastic \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:9.0.1
容器启动成功后,使用docker ps 命令检查一下
3.2 搭建kibana过程
为了后续操作es索引数据方便,这里使用es的可视化操作工具kibana,下面使用下面的命令启动kibana容器
docker run -d \
--name kibana_09 \
--network elastic \
-p 5601:5601 \
--privileged \
kibana:9.0.1
使用docker ps命令检查是否启动成功
3.3 创建es访问账户和密码
为了确保es的数据安全,默认情况下,es开启了数据安全访问测试,在yms配置文件中可以看到
使用下面的命令创建一个账户和密码,输入命令之后,在最后会随机生成一个密码,注意妥善保管
docker exec -it es9 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
3.4 为kibana创建访问es 的token令牌
还记得在使用kibana操作es的时候,在kibana中需要设置连接es的IP,端口等信息,在这里需要为kibana设置一个访问的token令牌,参考下面的命令
docker exec -it es9 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
执行之后稍等一会,就会生成一长串token字符串
3.5 生成访问kibana的验证码
这么做的目的还是为了访问数据的安全考虑,执行下面的命令,生成验证码
docker exec kibana_09 /usr/share/kibana/bin/kibana-verification-code
3.6 访问kibana
输入 IP:5601 ,访问kibana控制台
将前面生成的token粘贴到输入框,跳转到下面的界面后,再将生成的验证码输入进去
验证成功后,跳转到下面的页面进行初始化相关的设置
初始化完成后跳转到下面的登录界面,输入前面设置的账户和密码进行登录
登录成功后,就来到下面熟悉的界面了
点击左侧的Dev Tools菜单,就到了熟悉的界面,在这个界面就可以操作ES相关的命令了
3.7 搭建方式2
3.7.1 启动容器
使用下面的命令启动容器
docker run -d \
--name es9 \
--network elastic \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:9.0.1
3.7.2 拷贝容器内部的文件
将容器内部的文件拷贝出来后面使用
docker cp es9:/usr/share/elasticsearch/data /usr/local/soft/es
docker cp es9:/usr/share/elasticsearch/plugins /usr/local/soft/es
docker cp es9:/usr/share/elasticsearch/config /usr/local/soft/es
3.7.3 文件授权
后续会用到
chmod 777 -R config/ data/ plugins/
3.7.4 移除镜像
使用下面的命令移除镜像
docker stop es9 && docker rm es9
3.7.5 重启es容器
执行下面的命令重启es
docker run -d \
--name es9 \
--network elastic \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/soft/es/data:/usr/share/elasticsearch/data \
-v /usr/local/soft/es/plugins:/usr/share/elasticsearch/plugins \
-v /usr/local/soft/es/config:/usr/share/elasticsearch/config \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:9.0.1
3.7.6 修改es配置参数
在挂载目录中修改yml配置,调整下面的参数,调整完毕后注意重启es容器
3.7.7 启动kibana容器
使用下面的命令启动kibana容器
docker run -d \
--name kibana \
--network elastic \
-p 5601:5601 \
--privileged \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
kibana:9.0.1
3.7.8 拷贝容器内的文件
将容器内的文件拷贝出来
3.7.9 文件目录授权
为确保后续访问权限,给文件做下授权
然后移除容器
docker stop kibana && docker rm kibana
3.7.10 创建kibana账户
创建为kibana创建新账户,用于访问elasticsearch,容器内 /usr/share/elasticsearch/bin 目录下
对账户授权(123456)
3.7.11 修改容器外挂载目录中的kibana.yml
新增
xpack.screenshotting.browser.chromium.disableSandbox: true
elasticsearch.username: admin
elasticsearch.password: 123456
3.7.12 重启kibana容器
使用下面的命令重启容器
docker run -d \
--name kibana \
--network elastic \
-p 5601:5601 \
--privileged \
-v /usr/local/soft/kibana/data:/usr/share/kibana/data \
-v /usr/local/soft/kibana/config:/usr/share/kibana/config \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
kibana:9.0.1
四、写在文末
本文通过实际操作详细介绍了Elasticsearch 9 的详细搭建过程,希望对看到的同学有用哦,本篇到此结束,感谢观看。