【Docker实战】构建高效搜索解决方案,Elasticsearch & Kibana的完美结合

举报
wzsのcloud 发表于 2024/10/30 12:44:48 2024/10/30
【摘要】 构建高效搜索解决方案,FlexusX服务器与Elasticsearch & Kibana的完美结合,为企业带来云端搜索新体验。FlexusX实例以其卓越性能与灵活扩展性,确保高并发搜索的流畅运行。部署Elasticsearch,享受分布式搜索的精准与快速;结合Kibana,实现数据可视化,决策更直观。

前言

构建高效搜索解决方案,FlexusX服务器Elasticsearch & Kibana的完美结合,为企业带来云端搜索新体验。FlexusX实例以其卓越性能与灵活扩展性,确保高并发搜索的流畅运行。部署Elasticsearch,享受分布式搜索的精准与快速;结合Kibana,实现数据可视化,决策更直观。

链接直达:华为云Flexus云服务器X实例

image.png

Elasticsearch介绍

Elasticsearch是一个基于Lucene构建的开源、分布式搜索和分析引擎,它通过提供强大的全文搜索、实时分析能力和RESTful API,支持PB级数据的快速处理和复杂查询,特别适用于日志分析、网站搜索、实时监控和业务分析等多种场景,以其分布式架构、高可用性和可扩展性成为处理大数据的优选工具。

官方网站:https://www.elastic.co/cn/elasticsearch

官方文档:https://www.elastic.co/docs

image.png

kibana介绍

Kibana是一个开源的数据可视化与分析平台,专为Elasticsearch设计。它提供了一个直观且强大的界面,让用户能够轻松地探索、可视化、分析和共享存储在Elasticsearch索引中的数据。通过Kibana,用户可以创建自定义仪表板,以图形化方式展示关键指标、监控实时数据变化,并进行深入的数据分析。这一平台不仅简化了复杂数据的理解过程,还增强了数据驱动的决策能力,是Elasticsearch生态系统中不可或缺的组成部分,广泛应用于日志分析、性能监控、安全审计等多个领域。

官方网站:https://www.elastic.co/cn/downloads/kibana

官方文档:https://www.elastic.co/docs

image.png

环境规划

操作系统 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

image.png

在浏览器地址栏输入:http://主机IP:9200

输出以下内容,证明ElasticSearch服务启动成功

image.png

部署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

image.png

配置安全组,放行端口 5601

image.png

在浏览器地址栏输入:http://主机IP:5601

image.png

点击左上角按钮,点击 Dev Tools 即可进入如下所示的开发操作界面

image.png

在左边的控制台输入框中输入如下命令,然后点击右上角的三角形按钮执行请求即可在右边的界面看到查询结果。

image.png

安装IK分词器

ik分词器介绍

IK分词器是一款基于Java开发的中文分词工具,它提供了细粒度与智能分词两种模式,能够高效地对中文文本进行分词处理。IK分词器通过内置的词典以及算法优化,能够识别并分割出中文文本中的词汇,同时支持自定义词典的加载,以满足特定领域的分词需求。在搜索引擎、文本挖掘、自然语言处理等应用中,IK分词器因其准确性和灵活性而得到广泛应用。

注意事项

下载版本需要与 elasticsearch一致

项目地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

IK提供了两个分词算法: ik_smartik_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
    }
  ]
}

image.png

体验和感受

在数据驱动的时代,高效搜索解决方案成为企业提升竞争力的关键。华为云FlexusX服务器,以其卓越的性能、灵活的扩展性和稳定可靠的服务,为构建高效搜索环境提供了坚实的基础。而今,结合Elasticsearch的分布式搜索能力与Kibana的强大数据可视化功能,可以为企业打造了一个云端搜索解决方案的新标杆。

该服务器不仅拥有强大的计算能力,更支持资源的按需扩展,确保在高并发搜索场景下依然能够保持流畅运行。Elasticsearch,作为业界领先的搜索引擎,以其分布式架构、可扩展性和丰富的API接口,为企业提供了快速、准确、灵活的搜索体验。而Kibana,则以其直观易用的界面和强大的数据可视化能力,让搜索结果一目了然,助力企业做出更加精准的决策。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。