关键词:
一、搜索引擎
海量日志如何分析,需要搜索引擎(这只是其中的一种解决方案)
索引引擎全文搜索依赖全文索引
搜索引擎一般由两部分组成:
索引链:存储数据并构建索引
原始内容 --> 获取 --> 构建文档 --> 文档分析(切词)--> 创建索引
搜索组件:
UI --> 构建查询 --> 运行查询 (结果返回给UI)<--> 索引
UI(搜索接口):提供用户接口,例如google的输入框
搜索引擎的索引一般都是倒排索引
倒排索引: 使用字段搜索文档
正排索引:使用文档搜索字段
二、lucene
提供索引链功能,是一个开发库
文档:Document
包含了一个或多个域的容器
field:value
域有很多选项:
索引选项:用于通过倒排索引来控制文本是否可被搜索
Index.ANALYZED
分析(切词)并单独作为索引项
Index.Not_ANALYZED
不分析(不切词),把整个内容当作一个索引项
Index.ANALYZED_NORMS
类似于Index:ANALYZED,但不存储token的Norms(加权基准)信息
Index.NOT_ANALYZED_NORMS
类似于Index.Not_ANALYZED_NORMS,但不存储token的Norms(加权基准)信息
Index.NO:不对此域的值作索引,不可被搜索
存储选项:是否需要存储域的分析前的真实值
store.YES:存储真实值
store.NO:不存储真实值
域向量使用选项:用于在搜索期间控制该文档所有的唯一项都能完全从文档中检索时使用
文档和域的加权操作:
默认都没有加权值(或都为1),加权计算标准
搜索:
查询lucene索引时,它返回的是一个有序的scoreDoc对象,查询时,lucene会为每个文档计算出其score,
lucene提供大量的API:
IndexSearcher:搜索索引入口
Query及其子类:
QueryParser:查询分析器
TopDocs:保存某一次查询操作当中score较高的前10个值
ScoreDoc:
Lucene支持多样化查询:
IndexSearch中的search方法:
TermQuery:对索引中的特定项进行搜索;Term是索引中最小片段,每个Term包含了一个域名和一个文本值
TermRangQuery:在索引中的多个特定项中进行搜索,能搜索指定的多个域
NumericRangeQuery:做数值范围搜索
PrefixQuery:用于搜索以指定字符串开头的项
BooleanQuery:用于实现组合查询,组合逻辑有:AND,OR,NO
PhraseQuery:没有分词,根据位置信息对文档进行搜索
WildcardQuery:通配符查询
FuzzyQuery:模糊查询,匹配相似的项(域);Levenshtein,距离算法
三、ElasticSearch
1、ElasticSearch简介
是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统(将1个索引切片成shard实现分布式)。它构建于Apache Lucene搜索引擎库之上。
ElasticSearch是一个基于Lucene实现的开源、分布式、Restful的全文本搜索引擎,此外,它还是一个分布式实时文档存储,其中每个文档的每个field均是被索引的数据,且可被搜索;也是一个带实时分析功能的分布式搜索引擎,能够扩展至数以百计的节点,实时处理PB级的数据。
2、ElasticSearch的基本组件
索引(index):
文档的集合(容器),索引是具有类似属性的文档的集合,类似于表,索引名必须使用小写字母
类型(type):
类型是索引内部的逻辑分区,其意义完全取决于用户需求,一个索引内部可定义一个或多个类型;一般来说,类型就是拥有相同的域的文档的预定义;类似于表的表结构(字段),但没有约束性,
文档(document):
文档是lucene索引和搜索的原子单位,它包含了一个或多个域,是域的容器,基于JSON格式表示。
每个域的组成部分:一个名字和一个或多个值,用于多个值的域,通常称为多值域;文档可以嵌套 映射:
原始内容存储为文档之前需要事先进行分析(例如切词,过滤掉某些词等),映射用于定义此分析机制该如何实现;除此之外,ES还为映射提供了诸如将域中的内容排序等功能,
3、ES的集群组件
Cluster:
ES的集群标识为集群名称,默认为elasticsearch。节点就是靠此名字来决定加入到哪个集群中,一个节点只能属于一个集群
Node:
运行了单个ES实例的主机即为节点,用于存储数据、参与集群索引及搜索操作。
节点的标识靠节点名
Shard:
将索引切割成为物理存储的组件,但每1个shard都是一个独立且完整的索引
创建索引时,ES默认将其分割为5个shard,用户也可以按需自定义,创建完成之后不可修改。
shard有两种类型:
primary shard:每个索引都会被ES切割成5个primary shard
replica shard:每个primary shard都至少应该有一个replica shard
用于数据冗余及查询时的负载均衡,每个primary shard的replica的副本数量可自定义,且可动态更改
4、ES Cluster工作过程
启动时,通过多播(默认)或单播方式在9300/tcp查找同一集群中的其它节点,并与之通信。
集群中所有节点会选举出一个主节点负责管理整个集群状态,以及在集群范围内决定各shards的分布方式。站在用户角度而言,每个节点均可接受并响应用户的各类请求。
ES集群的状态:
green 正常状态
red 不可用状态
yellow 修复状态
elk服务基础
什么是ELK? 通俗来讲,ELK是由Elasticsearch、Logstash、Kibana三个开源软件组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,ELK又称为ELKstack,官方域名为static.co,ELK-stack的主要优点有如下几个:处理方式灵活... 查看详情
elk日志分析基础
ELK基础简介ELK是一个应用套件,由Elasticsearch,Logstash和Kibana组成ElasticSearchElasticSearch是一个实时的分布式搜索和分析引擎,用于支持全文搜索,结构化搜索以及分析,采用java语言编写ElasticSearch主要特点如下实时搜索,实时分析... 查看详情
elk基础学习
第壹部分:Elasticsearch一、Elasticsearch增删改查1、数据写入:HTTPmethod:POSTURL:http://127.0.0.1:9200/index-docs-name/data-type-name-d"{jsonstr}"返回:{"_index":"index-name","_type":"typename","_id":"idstr","_version":"1 查看详情
elk部署详解--elasticsearch
#Elasticsearch是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎ApacheLucene基础上的搜索引擎,使用Java语言编写。 elasticsearch.yml#========================ElasticsearchConfigurati... 查看详情
日志分析系统elk之elasticsearch(代码片段)
Elasticsearch什么是ELKElasticsearchElasticsearch基础模块elasticsearch应用场景Elasticsearch单节点部署Elasticsearch集群的部署集群简介elasticsearch节点角色集群部署可视化工具cerebro可视化工具elasticsearch-head插件索引、分片和副本Elasticsearch节点优... 查看详情
日志分析系统elk之elasticsearch(代码片段)
Elasticsearch什么是ELKElasticsearchElasticsearch基础模块elasticsearch应用场景Elasticsearch单节点部署Elasticsearch集群的部署集群简介elasticsearch节点角色集群部署可视化工具cerebro可视化工具elasticsearch-head插件索引、分片和副本Elasticsearch节点优... 查看详情
elk报错(代码片段)
1、elasticsearch启动失败如下:[[email protected]home]#/home/elasticsearch-6.3.0/bin/elasticsearch[2019-02-11T07:15:14,874][WARN][o.e.b.ElasticsearchUncaughtExceptionHandler][]uncaughtexceptioninthread[main]org.elasticsearch.bootstrap.StartupException:java.lang.RuntimeException:cannotrun... 查看详情
elk日志平台之elasticsearch
一、ELKStack简介Elstaicsearch:日志存储和搜索logstash:日志收集kibana:日志展示ELK架构示意图:650)this.width=650;"src="http://s5.51cto.com/wyfs02/M01/86/77/wKioL1e_uAXhCzMIAABPgVmad_U144.jpg-wh_500x0-wm_3-wmp_4-s_3027742533.jpg" 查看详情
elk日志分析系统(代码片段)
ELK日志分析系统一.基础环境配置:1.ip192.168.200.10elasticsearch+kibanaELK-1192.168.200.20elasticsearch+logstashELK-2192.168.200.30elasticsearchELK-3[root@localhost~]#hostnamectlset-hostnameelk-1[ 查看详情
elk(elasticsearch+kibana+logstash)搜索引擎:elasticsearch基础教程(代码片段)
1.elasticsearch的结构 首先elasticsearch目前的结构为/index/type/id id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储。我们可以将elasticsearch和关系型数据库进行比较,index相当于关系型数据库中的database,type相当于... 查看详情
日志分析系统elk!(代码片段)
ELKELK基础知识ELK组成ELK处理步骤Elasticsearch核心知识部署ELK日志分析系统配置ES环境部署apache服务器,安装Logstash部署KibanaELK基础知识概述:ELK是一种开源的实时日志分析系统,它能通过日志分析来帮助发现问题,... 查看详情
日志分析系统elk!(代码片段)
ELKELK基础知识ELK组成ELK处理步骤Elasticsearch核心知识部署ELK日志分析系统配置ES环境部署apache服务器,安装Logstash部署KibanaELK基础知识概述:ELK是一种开源的实时日志分析系统,它能通过日志分析来帮助发现问题,... 查看详情
cloud02:elk
...件,而是一整套解决方案,是三个软件产品的首字母缩写–Elasticsearch:负责日志检索和储存–Logstash:负责日志的收集和分析、处理–Kibana:负责日志的可视化–这三款软件都是开源软件,通常是配合使用,而且又先后归于Elastic.co公司名... 查看详情
cloud02:elk
...件,而是一整套解决方案,是三个软件产品的首字母缩写–Elasticsearch:负责日志检索和储存–Logstash:负责日志的收集和分析、处理–Kibana:负责日志的可视化–这三款软件都是开源软件,通常是配合使用,而且又先后归于Elastic.co公司名... 查看详情
2018年elasticsearch6.2.2教程elk搭建日志采集分析系统(目录)
...知识点说明,ES搜索接口演示,部署的ELK项目演示章节二elasticSearch6.2版本基础讲解到阿里云部署实战2、搜索引擎知识介绍和相关框架简介:介绍搜索的基本概念,市面上主流的搜索框架elasticSearch和solr等对比什么是搜索:在海量... 查看详情
elk:开源搜索与分析技术栈
...搜索与分析技术栈(1)一、ELK技术栈简介1.ELK技术栈简介Elasticsearch:Elasticsearch是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎ApacheLucene基础上的搜索引擎,使用J... 查看详情
elk:开源搜索与分析技术栈
...搜索与分析技术栈(1)一、ELK技术栈简介1.ELK技术栈简介Elasticsearch:Elasticsearch是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎ApacheLucene基础上的搜索引擎,使用J... 查看详情
elk搭建
...apache下载并安装GPGKeyrpm--importhttps://packages.elastic.co/GPG-KEY-elasticsearch添加yum仓库vi/etc/yum.repos.d/elasticsearch.repo[elasticsearch-2.x]name=Elasticsearchrepositoryfor2.xpackagesbaseurl=http://packages.elastic.co/elasticsearch/2.x/centosgpgcheck=1gpgkey=http://packages.elastic.... 查看详情