ElasticSearch简介与安装

简介

  Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是适用于数据采集、充实、存储、分析和可视化的一组开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

Elasticsearch 的用途

  1. 应用程序搜索
  2. 网站搜索
  3. 企业搜索
  4. 日志处理和分析
  5. 基础设施指标和容器监测
  6. 应用程序性能监测
  7. 地理空间数据分析和可视化
  8. 安全分析
  9. 业务分析

Elasticsearch 的工作原理

  原始数据会从多个来源(包括日志、系统指标和网络应用程序)输入到 Elasticsearch 中。数据采集指在 Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在 Kibana 中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对 Elastic Stack 进行管理。

  以上内容来自官方文档
  ElasticSearch是目前全文搜索引擎的首选,它的底层是开源库Lucence,但是你不能直接使用Lucence,必须自己写代码去调用它的接口,而Elastic是Lucence的封装,提供了REST API 的操作接口,开箱即用
  

基本概念

  再开始使用之前,先得了解几个基本概念,MySQL相信都熟悉吧,就和MySQL进行对比
1. Index 索引
  动词,相当于MySQL的insert
  名词,相当于MySQL的database
2. Type 类型
   在Index中,可以定义一个或多个类型,类似于MySQL中的table,每一种类型的数据放在一起
3. Document 文档
  保存在索引下,某种类型的一个数据,文档是json格式的,就像是MySQL中某个table表里面的内容
  综上,这三者之间的关系如下图
ElasticSearch简介与安装

安装ElasticSearch

  由于我的服务器安装了docker,所以就不想过多的浪费时间去在Linux中安装ES了,就直接在docker中进行安装
  我们需要将数据存储到本地,提前准备好文件,不知道是不是新版本的原因,如果不挂载log4j2的配置文件,会一直包错而导致容器不能启动

# ES的配置文件:elasticsearch.yml
http.host: 0.0.0.0

# log4j2配置文件:log4j2.properties
status = error
appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
rootLogger.level = info
rootLogger.appenderRef.console.ref = console

# 安装ES
# 9200:发送http请求的端口
# 9300:集群节点通信端口
# discovery.type=single-node:单机运行
# ES_JAVA_OPTS="-Xms64m -Xmx128m":分配内存,防止启动ES卡死(如果你的服务器内存够大可以不设置),初始64M,最大128M
docker run -itd --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /media/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /media/elasticsearch/config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties -v /media/elasticsearch/data:/usr/share/elasticsearch/data -v /media/elasticsearch/plugins:/usr/share/elasticsearch/plugins elasticsearch

# 更改文件夹权限,这一步视情况而定,如果上面执行后不能启动,查看日志是因为权限问题,则执行这一步,如下图的错误
chmod -R 777 {你挂载的文件的路径}

ElasticSearch简介与安装

  执行完容器正常启动,在浏览器中访问服务器的9200端口,返回正确的数据如下图,则我们的ES安装没有问题
ElasticSearch简介与安装
  ES安装好了,我们还可以安装一个可视化的界面kibana,当然也可以不用安装,使用PostMan来测试也是可以的

# 安装kibana可视化界面
# ELASTICSEARCH_HOSTS=http://192.168.0.109:9200 指定ES主机的地址
# 5601 kibana的操作端口
# 注意:kibana的版本的需要和ES保持一致
docker run -itd --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.0.109:9200 -p 5601:5601 kibana:7.10.1

  执行完容器正常启动,在浏览器中访问服务器的5601端口,即可访问kibana可视化界面
ElasticSearch简介与安装

上一篇:CodeGo.net>如何访问UrlHelper.Action或从全局asax内类似


下一篇:RabbitMQ 简介