ElasticSearch(简称ES)
是一个分布式、高扩展、RESTful 风格的搜索和数据分析引擎。并作为 Apache许可条款下的开放源码发布,是当前最流行的、免费且开放的企企业级搜索引擎。
Elasticsearch能很方便的使大量数据具有搜索、分析和探索的能力,能够达到接近实时搜索,稳定,可靠,快速快速有效的监控和管理。功能也越来越强大。
客户端支持Java、.NET(C#)、PHP、Python、Ruby等多种语言。
Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
ElasticSearch 使用 Java 编写并使用 Lucene 来建立索引并实现搜索功能,但是它的目的是通过简单连贯的 RESTful API 让全文搜索变得简单并隐藏 Lucene 的复杂性。
不过,Elasticsearch 不仅仅是 Lucene 和全文搜索引擎,它还提供:
- 分布式的实时文件存储,每个字段都被索引并可被搜索
- 实时分析的分布式搜索引擎
- 可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据
ElasticSearch应用场景:
- 站内搜索
- 日志管理与分析
- 大数据分析
- 应用性能监控
- 机器学习
ELK分别是Elasticsearch,Logstash,Kibana这三款软件在一起的简称,在发展的过程中又有新的成员 Beats等的加入,就形成了 “ Elastic Stack
”。
简单来说:
- Logstash和Beat:可以对数据的进行采集,处理(数据转换)等。
- Kibana:负责数据展示,分析,管理,监督及应用。在上层提供用户一个可视化及操作的界面。
- Elasticsearch:处于最核心的位置,作为数据存储和搜索,是生态圈的基石,它可以帮我们对数据进行快速地搜索及分析。
使用 Docker安装ES,方便简单。
1、拉取镜像1)查找镜像
[root@centos7 ~]# docker search elasticsearch
2)拉取镜像
本地没有镜像时拉取,有的话就省略这一步。
[root@centos7 ~]# docker pull bitnami/elasticsearch:7.17.4
3)创建数据卷挂载目录
[root@centos7 ~]# mkdir -p /opt/soft/elasticsearch/config
[root@centos7 ~]# mkdir -p /opt/soft/elasticsearch/data
[root@centos7 ~]# mkdir -p /opt/soft/elasticsearch/plugins
给该目录设置权限:
[root@centos7 ~]# cd /opt/soft/elasticsearch/
[root@centos7 elasticsearch]# chmod 777 config data plugins
新建配置文件,先简单写点配置信息:
[root@centos7 elasticsearch]# echo "http.host:0.0.0.0" >> /opt/soft/elasticsearch/config/elasticsearch.yml
2、创建容器并启动
创建并启动容器:这里是单节点的,生产不推荐使用。
[root@centos7 ~]# docker run --name elasticsearch_7.17.4 \
-p 192.168.xxx.xxx:9200:9200 -p 192.168.xxx.xxx:9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /opt/soft/elasticsearch/config/elasticsearch.yml:/usr/share/config/elasticsearch.yml \
-v /opt/soft/elasticsearch/data:/usr/share/elasticsearch/data \
-v /opt/soft/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d -t bitnami/elasticsearch:7.17.4
查看启动容器:
docker ps
查看容器启动日志:
docker logs 容器名
3、请求 ES接口Elasticsearch是基于 RESTful 风格。我们可以使用 Postman/Apifox等工具请求 ES服务接口。
使用宿主机的 ip地址请求查看。 到此,安装完成。
Kibana是一个开源分析和可视化平台,旨在与 Elasticsearch协同工作。
1、下载Kibana解压官方网址下载:https://www.elastic.co/cn/downloads/past-releases#kibana
选择版本:7.17.4,我这里下载 windows版本,并解压。
打开 config/kibana.yml 文件,修改下面信息:
# Kibana信息
server.port: 5601
server.host: "localhost" #服务器ip
# elasticsearch访问地址
elasticsearch.hosts: ["http://192.168.198.110:9200"]
# Kibana汉化
i18n.locale: "zh-CN"
3、运行Kibana
cmd窗口进入安装 kibana的 bin/kibana目录下,运行 kibana.bat文件。
注意:
kibana数据从 Elasticsearch而来,在启动 kibana时,需要先启动 Elasticsearch。
1)访问kibana
在浏览器访问 http://localhost:5601/ ,则显示如下: 点击 自己浏览 -> 开发工具。
2)Elasticsearch测试ok
3)检查 Kibana 状态
可以通过 http://localhost:5601/status 来访问 Kibana 的服务器状态页,状态页展示了服务器资源使用情况和已安装插件列表。
参考文章:
- Kibana 用户手册 | Elastic:https://www.elastic.co/guide/cn/kibana/current/index.html
- elasticsearch百度百科:https://baike.baidu.com/item/elasticsearch/3411206?fr=aladdin
– 求知若饥,虚心若愚。