【Docker实战】构建高效搜索解决方案,Elasticsearch & Kibana的完美结合
前言
构建高效搜索解决方案,
FlexusX服务器
与Elasticsearch & Kibana
的完美结合,为企业带来云端搜索新体验。FlexusX实例以其卓越性能与灵活扩展性,确保高并发搜索的流畅运行。部署Elasticsearch,享受分布式搜索的精准与快速;结合Kibana,实现数据可视化,决策更直观。链接直达:华为云Flexus云服务器X实例
Elasticsearch介绍
Elasticsearch是一个基于Lucene构建的开源、分布式搜索和分析引擎,它通过提供强大的全文搜索、实时分析能力和RESTful API,支持PB级数据的快速处理和复杂查询,特别适用于日志分析、网站搜索、实时监控和业务分析等多种场景,以其分布式架构、高可用性和可扩展性成为处理大数据的优选工具。
kibana介绍
Kibana是一个开源的数据可视化与分析平台,专为Elasticsearch设计。它提供了一个直观且强大的界面,让用户能够轻松地探索、可视化、分析和共享存储在Elasticsearch索引中的数据。通过Kibana,用户可以创建自定义仪表板,以图形化方式展示关键指标、监控实时数据变化,并进行深入的数据分析。这一平台不仅简化了复杂数据的理解过程,还增强了数据驱动的决策能力,是Elasticsearch生态系统中不可或缺的组成部分,广泛应用于日志分析、性能监控、安全审计等多个领域。
环境规划
操作系统 | ElasticSearch | kibana | docker | docker-compose | 连接方式 |
---|---|---|---|---|---|
Huawei Cloud EulerOS 2.0 | 7.17.18 | 7.17.20 | 27.1.1 | 2.29.1 | 本地==shell== |
部署流程
前期准备
创建网络
[root@flexusx-251f ~]# docker network create es-kb-net
a16e637d327b955c2b138c3d615d6ecce1ee6f760b919d5e974e50748c7cbc3f
拉取镜像
[root@flexusx-251f ~]# docker pull elasticsearch:7.17.20
7.17.20: Pulling from library/elasticsearch
d4c3c94e5e10: Already exists
e2d4b0a1128f: Pull complete
86cab1abf274: Pull complete
4f4fb700ef54: Pull complete
091252f7c9c3: Pull complete
ba22547cb7b5: Pull complete
6eb5ac7a61d1: Pull complete
78ac87136b0f: Pull complete
03977b84fc22: Pull complete
cb9719a7448f: Pull complete
Digest: sha256:ed3a3bdb961d0c488c74aaf1e44f48809e54981c1bb39a53b6047d71f191f69b
Status: Downloaded newer image for elasticsearch:7.17.20
docker.io/library/elasticsearch:7.17.20
[root@flexusx-251f ~]# docker pull kibana:7.17.18
7.17.20: Pulling from library/kibana
d4c3c94e5e10: Already exists
0fe144c362b1: Pull complete
0eeac22a56d8: Pull complete
fd30f5974e3c: Pull complete
0a37326c1989: Pull complete
4f4fb700ef54: Pull complete
9bc0aee2b8f5: Pull complete
c858d553a1d7: Pull complete
da67f383fa3e: Pull complete
7c9f20cf430f: Pull complete
9e0d12605b54: Pull complete
294777053dd6: Pull complete
df1e636ab8a5: Pull complete
2ab537178792: Pull complete
Digest: sha256:cc537607c5a7ac4c7bf8f5e2a2028200460a35a3593de22196ffcc24009347bc
Status: Downloaded newer image for kibana:7.17.20
docker.io/library/kibana:7.17.20
部署elasticsearch
创建
elasticsearch
容器
[root@flexusx-251f ~]# docker run -itd \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/local/elasticsearch7.17.20/data \
-v es-plugins:/usr/local/elasticsearch7.17.20/plugins \
-v es-logs:/usr/local/elasticsearch7.17.20/logs \
--privileged \
--network es-kb-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.17.18
配置安全组,放行端口
9200
在浏览器地址栏输入:
http://主机IP:9200
输出以下内容,证明ElasticSearch服务启动成功
部署Kibana
Kibana
使操作ES数据的可视化界面,使用Kibana
操作ES非常方便。
-e ELASTICSEARCH_HOSTS=http://es:9200
设置elasticsearch的地址- 因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
[root@flexusx-251f ~]# docker run -itd --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-kb-net -p 5601:5601 kibana:7.17.20
查看日志,看服务是否启动
[root@flexusx-251f ~]# docker logs -f kibana
配置安全组,放行端口
5601
在浏览器地址栏输入:
http://主机IP:5601
点击左上角按钮,点击
Dev Tools
即可进入如下所示的开发操作界面
在左边的控制台输入框中输入如下命令,然后点击右上角的三角形按钮执行请求即可在右边的界面看到查询结果。
安装IK分词器
ik分词器介绍
IK分词器
是一款基于Java
开发的中文分词工具,它提供了细粒度与智能分词两种模式,能够高效地对中文文本进行分词处理。IK分词器
通过内置的词典以及算法优化,能够识别并分割出中文文本中的词汇,同时支持自定义词典的加载,以满足特定领域的分词需求。在搜索引擎、文本挖掘、自然语言处理等应用中,IK分词器因其准确性和灵活性而得到广泛应用。
注意事项
下载版本需要与
elasticsearch
一致项目地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
IK提供了两个分词算法:
ik_smart
和ik_max_word
,其中ik_smart
为最少切分,ik_max_word
为最细粒度划分
安装流程
进入
elasticsearch
容器内部
[root@flexusx-251f ~]# docker exec -it es bash
root@6b1996760d59:/usr/share/elasticsearch# cd /usr/share/elasticsearch/bin
在线下载安装
root@8c5ea6776581:/usr/share/elasticsearch/bin# ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.18/elasticsearch-analysis-ik-7.17.18.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.18/elasticsearch-analysis-ik-7.17.18.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.18/elasticsearch-analysis-ik-7.17.18.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y # 输入y
-> Installed analysis-ik
-> Please restart Elasticsearch to activate any plugins installed
root@8c5ea6776581:/usr/share/elasticsearch/bin# exit
exit
安装完成,重启容器
[root@flexusx-251f ~]# docker restart es
es
在左边的控制台输入框中输入如下中文分词请求:
GET _analyze
{
"analyzer": "ik_smart",
"text": "你好,欢迎来到华为云Flexus X实例的世界"
}
然后点击右边的执行请求按钮,可以看到右边的结果窗口返回如下结果
#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.
{
"tokens" : [
{
"token" : "你好",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "欢迎",
"start_offset" : 3,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 1
},
{
"token" : "来到",
"start_offset" : 5,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "华为",
"start_offset" : 7,
"end_offset" : 9,
"type" : "CN_WORD",
"position" : 3
},
{
"token" : "云",
"start_offset" : 9,
"end_offset" : 10,
"type" : "CN_CHAR",
"position" : 4
},
{
"token" : "flexus",
"start_offset" : 10,
"end_offset" : 16,
"type" : "ENGLISH",
"position" : 5
},
{
"token" : "x",
"start_offset" : 17,
"end_offset" : 18,
"type" : "ENGLISH",
"position" : 6
},
{
"token" : "实例",
"start_offset" : 18,
"end_offset" : 20,
"type" : "CN_WORD",
"position" : 7
},
{
"token" : "的",
"start_offset" : 20,
"end_offset" : 21,
"type" : "CN_CHAR",
"position" : 8
},
{
"token" : "世界",
"start_offset" : 21,
"end_offset" : 23,
"type" : "CN_WORD",
"position" : 9
}
]
}
体验和感受
在数据驱动的时代,高效搜索解决方案成为企业提升竞争力的关键。华为云FlexusX服务器
,以其卓越的性能、灵活的扩展性和稳定可靠的服务,为构建高效搜索环境提供了坚实的基础。而今,结合Elasticsearch
的分布式搜索能力与Kibana
的强大数据可视化功能,可以为企业打造了一个云端搜索解决方案的新标杆。
该服务器不仅拥有强大的计算能力,更支持资源的按需扩展,确保在高并发搜索场景下依然能够保持流畅运行。Elasticsearch
,作为业界领先的搜索引擎,以其分布式架构、可扩展性和丰富的API接口,为企业提供了快速、准确、灵活的搜索体验。而Kibana
,则以其直观易用的界面和强大的数据可视化能力,让搜索结果一目了然,助力企业做出更加精准的决策。
- 点赞
- 收藏
- 关注作者
评论(0)