ELK
文章平均质量分 71
gmHappy
从不敢夜郎自大,但也不至于妄自菲薄,只是想做一个靠本事吃饭的手艺人
展开
-
利用ELK 搭建日志分析系统(三)—— 安全认证
一、Kibana 安全认证1.1 架构方案一通过nginx反向代理kibana,开启Kibana 登录认证。本机基于docker部署nginx# 启动容器docker run --name nginx -p 8080:80 -d nginx#查看运行容器的IDdocker ps #进入nginx容器docker exec -it nginx /bin/bash #容器内部操作#更新软件源apt-get update #安装apache2-utilsapt-get i原创 2021-12-28 21:03:58 · 3465 阅读 · 0 评论 -
elasticsearch 基础 —— Query String
使用查询解析器来解析其内容的查询。下面是一个例子:GET /_search{ "query": { "query_string" : { "default_field" : "content", "query" : "this AND that OR thus" } }}query原创 2018-09-19 11:54:29 · 30143 阅读 · 0 评论 -
elasticsearch 深入 —— 地理位置
地理位置我们拿着纸质地图漫步城市的日子一去不返了。得益于智能手机,我们现在总是可以知道 自己所处的准确位置,也预料到网站会使用这些信息。我想知道从当前位置步行 5 分钟内可到的那些餐馆,对伦敦更大范围内的其他餐馆并不感兴趣。但地理位置功能仅仅是 Elasticsearch 的冰山一角,Elasticsearch 的妙处在于,它让你可以把地理位置、全文搜索、结构化搜索和分析结合到一起。例...原创 2018-09-13 15:39:59 · 6791 阅读 · 0 评论 -
elasticsearch 基础 —— Inner hits
Inner hitsThe parent-join and nested 功能允许返回具有不同范围匹配的文档。在父/子案例中,基于子文档中的匹配返回父文档,或者基于父文档中的匹配返回子文档。在嵌套的情况下,基于嵌套内部对象中的匹配返回文档。 在这两种情况下,隐藏了导致文档返回的不同范围中的实际匹配。在许多情况下,知道哪些内部嵌套对象(在嵌套的情况下)或子/父文档(在父/子的情况下)返回某些信息...原创 2018-09-18 17:15:25 · 12020 阅读 · 0 评论 -
elasticsearch 基础 —— Field Collapsing字段折叠
允许根据字段值折叠搜索结果。通过按折叠键选择顶部排序文档来完成折叠。例如,下面的查询检索每个用户的最佳推文,并按喜欢的数量对它们进行排序。GET /twitter/_search{ "query": { "match": { "message": "elasticsearch" } }, "collapse" ...原创 2018-09-18 16:20:42 · 14975 阅读 · 5 评论 -
elasticsearch 深入 —— 相关度控制
控制相关度处理结构化数据(比如:时间、数字、字符串、枚举)的数据库, 只需检查文档(或关系数据库里的行)是否与查询匹配。布尔的是/非匹配是全文搜索的基础,但不止如此,我们还要知道每个文档与查询的相关度,在全文搜索引擎中不仅需要找到匹配的文档,还需根据它们相关度的高低进行排序。全文相关的公式或 相似算法(similarity algorithms) 会将多个因素合并起来,为每个文档生成一...原创 2018-09-13 13:56:02 · 2975 阅读 · 0 评论 -
elasticsearch 基础 —— Explain、Version、min_score、query rescorer
Explain相关度得分计算:GET /_search{ "explain": true, "query" : { "term" : { "user" : "kimchy" } }}Version返回每个搜索命中的版本:GET /_search{ "version": true, "query&原创 2018-09-18 14:47:30 · 7103 阅读 · 0 评论 -
elasticsearch 深入 —— 近似匹配
近似匹配使用 TF/IDF 的标准全文检索将文档或者文档中的字段作一大袋的词语处理。 match 查询可以告知我们这大袋子中是否包含查询的词条,但却无法告知词语之间的关系。思考下面这几个句子的不同:Sue ate the alligator. The alligator ate Sue. Sue never goes anywhere without her alligator-s...原创 2018-09-13 10:44:45 · 3741 阅读 · 0 评论 -
elasticsearch 深入 —— Search After实时滚动查询
Search After一般的分页需求我们可以使用form和size的方式实现,但是这种分页方式在深度分页的场景下应该是要避免使用的。深度分页会随着请求的页次增加,所消耗的内存和时间的增长也是成比例的增加,为了避免深度分页产生的问题,elasticsearch从2.0版本开始,增加了一个限制:index.max_result_window =10000建议使用Scroll api进行...原创 2018-09-18 11:22:33 · 34822 阅读 · 5 评论 -
elasticsearch 深入 —— Scroll滚动查询
Scrollsearch 请求返回一个单一的结果“页”,而 scroll API 可以被用来检索大量的结果(甚至所有的结果),就像在传统数据库中使用的游标 cursor。滚动并不是为了实时的用户响应,而是为了处理大量的数据,例如,为了使用不同的配置来重新索引一个 index 到另一个 index 中去。client 支持:Perl 和 Python注意:从 scroll 请求返...原创 2018-09-18 09:19:03 · 25371 阅读 · 0 评论 -
elasticsearch 深入 —— Search Type检索类型
在此我们再给出那个查询的代码:$ curl -XGET localhost:9200/startswith/test/_search?pretty -d '{ "query": { "match_phrase_prefix": { "title": { "query": "d", "ma.原创 2018-09-18 08:43:17 · 5357 阅读 · 0 评论 -
elasticsearch 基础 —— Get API
Get APIget API允许根据其id从索引中获取指定类型的JSON文档。以下示例从名为twitter的索引获取JSON文档,该索引类型名为_doc,id值为0:GET twitter/_doc/0上述get操作的结果是:{ "_index" : "twitter", "_type" : "_doc", "_id" : "0", &q原创 2018-09-14 11:08:31 · 3669 阅读 · 0 评论 -
elasticsearch 深入 —— Top Hits Aggregation
Top Hits Aggregationtop_hits指标聚合器跟踪正在聚合的最相关文档。 此聚合器旨在用作子聚合器,以便可以按桶聚合最匹配的文档。top_hits聚合器可以有效地用于通过桶聚合器按特定字段对结果集进行分组。 一个或多个存储桶聚合器确定结果集被切入的属性。选项from - 要获取的第一个结果的偏移量。 size - 每个桶返回的最大匹配匹配数的最大数量。默认情况下...原创 2018-09-19 16:00:25 · 24361 阅读 · 0 评论 -
elasticsearch 基础 —— Delete By Query API
Delete By Query API_delete_by_query 的简单用法,就是在查询匹配到的每个文档上执行删除。例如:POST twitter/_delete_by_query{ "query": { ① "match": { "message": "some message" } }}①:查询必须是有效的键值对,query是键,这...原创 2018-09-14 14:36:36 · 7848 阅读 · 0 评论 -
elasticsearch 基础 —— Mapping参数boost、coerce、copy_to、doc_values、dynamic、
boost在查询时,各个字段可以自动提升 - 更多地依赖于相关性得分,boost参数如下:PUT my_index{ "mappings": { "_doc": { "properties": { "title": { "type": "text", "boost": 2原创 2018-09-26 14:29:49 · 4211 阅读 · 0 评论 -
elasticsearch 深入 —— normalizer
keyword字段的normalizer属性类似于分析器,只是它保证分析链生成单个token。在索引关键字之前,以及在通过诸如match查询之类的查询解析器或者通过诸如term查询之类的术语级查询搜索keyword字段时的搜索,应用规范化器——normalizer。PUT index{ "settings": { "analysis": { "normalize...原创 2018-09-26 13:42:59 · 4707 阅读 · 0 评论 -
elasticsearch 基础 —— Jion父子关系
前言由于ES6.X版本以后,每个索引下面只支持单一的类型(type),因此不再支持以下形式的父子关系:PUT /company{ "mappings": { "branch": {}, "employee": { "_parent": { "type": "branch"原创 2018-09-20 11:52:50 · 3660 阅读 · 1 评论 -
elasticsearch 基础 —— Update By Query API
Update By Query API最简单的用法是_update_by_query在不更改源的情况下对索引中的每个文档执行更新。这对于获取新属性或其他一些在线映射更改很有用 。这是API:POST twitter/_update_by_query?conflicts=proceed这将返回如下内容:{ "took" : 147, "timed_out": false...原创 2018-09-14 15:38:11 · 24301 阅读 · 2 评论 -
elasticsearch 基础 —— Update API
Update API更新API允许基于提供的脚本更新文档。该操作从索引获取文档(与分片并置),运行脚本(使用可选的脚本语言和参数),并对结果进行索引(也允许删除或忽略操作)。它使用版本控制来确保在“get”和“reindex”期间没有发生更新。请注意,此操作仍然意味着文档的完全重新索引,它只是删除了一些网络往返,并减少了get和索引之间版本冲突的可能性。_source需要启用该字段才能使此...原创 2018-09-14 15:30:05 · 4480 阅读 · 1 评论 -
elasticsearch 基础 —— 处理冲突及乐观并发控制
处理冲突当我们使用 index API 更新文档 ,可以一次性读取原始文档,做我们的修改,然后重新索引 整个文档 。 最近的索引请求将获胜:无论最后哪一个文档被索引,都将被唯一存储在 Elasticsearch 中。如果其他人同时更改这个文档,他们的更改将丢失。很多时候这是没有问题的。也许我们的主数据存储是一个关系型数据库,我们只是将数据复制到 Elasticsearch 中并使其可被搜索...原创 2018-09-11 10:56:04 · 2329 阅读 · 0 评论 -
elasticsearch 基础 —— 索引、更新文档
索引文档通过使用 index API ,文档可以被 索引 —— 存储和使文档可被搜索 。 但是首先,我们要确定文档的位置。正如我们刚刚讨论的,一个文档的 _index 、 _type 和 _id 唯一标识一个文档。 我们可以提供自定义的 _id 值,或者让 index API 自动生成。创建新文档当我们索引一个文档, 怎么确认我们正在创建一个完全新的文档,而不是覆盖现有的呢?请记住...原创 2018-09-11 10:33:06 · 4374 阅读 · 0 评论 -
elasticsearch 基础 —— 集群原理
空集群如果我们启动了一个单独的节点,里面不包含任何的数据和 索引,那我们的集群看起来就是一个 图 1 “包含空内容节点的集群”。图 1. 包含空内容节点的集群一个运行中的 Elasticsearch 实例称为一个 节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者从集群中移除节点时,集群将会重新平均...原创 2018-09-11 10:23:54 · 2164 阅读 · 0 评论 -
elasticsearch 基础 —— Common Terms Query常用术语查询
常用术语查询该common术语查询是一个现代的替代提高了精确度和搜索结果的召回(采取禁用词进去),在不牺牲性能的禁用词。问题查询中的每个术语都有成本。搜索"The brown fox" 需要三个术语查询,每个查询一个"the","brown"并且 "fox"所有查询都针对索引中的所有文档执行。查询"the"可能与许多文档匹配,因此对相关性的影响比其他两个术语小得多。以前,这个问题的...原创 2018-09-25 11:12:45 · 5829 阅读 · 2 评论 -
elasticsearch 深入 —— Post Filter后置过滤器
过滤查询以及聚合A natural extension to aggregation scoping is filtering. Because the aggregation operates in the context of the query scope, any filter applied to the query will also apply to the aggregatio...原创 2018-09-17 16:28:59 · 8651 阅读 · 2 评论 -
elasticsearch 基础 —— URI搜索
URI搜索可以通过提供请求参数使用URI来执行搜索请求。使用此模式执行搜索时,并非所有搜索选项都会暴露。这是一个例子:GET twitter/_search?q=user:kimchy示例响应:{ "timed_out": false, "took": 62, "_shards":{ "total" : 1, "succe...原创 2018-09-17 16:21:39 · 3450 阅读 · 2 评论 -
elasticsearch Mapping 定义索引
Mapping is the process of defining how a document should be mapped to the Search Engine, including its searchable characteristics such as which fields are searchable and if/how they are tokenized. In ...原创 2018-08-01 15:46:21 · 4268 阅读 · 0 评论 -
elasticsearch 嵌套对象使用Multi Match Query、query_string全文检索设置
参考:https://www.elastic.co/guide/en/elasticsearch/reference/1.7/mapping-nested-type.htmlhttps://stackoverflow.com/questions/31829654/elastic-search-nested-multimatch-queryhttps://www.elastic.co/g...原创 2018-08-01 15:44:15 · 6330 阅读 · 0 评论 -
elasticsearch 基础 —— Multi Match Query
在Elasticsearch全文检索中,我们用的比较多的就是Multi Match Query,其支持对多个字段进行匹配。Elasticsearch支持5种类型的Multi Match,我们一起来深入学习下它们的区别。5种类型的Multi Match Query直接从官网的文档上摘抄一段来:best_fields: (default) Finds documents which m...原创 2018-08-01 14:08:47 · 3781 阅读 · 0 评论 -
elasticsearch 基础 —— Parent-Child 父子关系(5.X老版本)
ElasticSearch 中的Parent-Child关系和nested模型是相似的, 两个都可以用于复杂的数据结构中,区别是 nested 类型的文档是把所有的实体聚合到一个文档中而Parent-Child现对于比较独立,每个实体即为一个文档Parent-Child 优点1、父文档更新时不用重新为子文档建立索引2、子文档的增加、修改、删除是对父文档和其他子文档没有任何影响的,这非常适用于...原创 2018-08-04 10:14:53 · 7718 阅读 · 0 评论 -
elasticsearch 深入 —— 分析器执行顺序与Mapping自定义分析器配置
默认分析器虽然我们可以在字段层级指定分析器, 但是如果该层级没有指定任何的分析器,那么我们如何能确定这个字段使用的是哪个分析器呢?分析器可以从三个层面进行定义:按字段(per-field)、按索引(per-index)或全局缺省(global default)。Elasticsearch 会按照以下顺序依次处理,直到它找到能够使用的分析器。索引时的顺序如下:字段映射里定义的 analy...原创 2018-08-03 17:29:54 · 5318 阅读 · 0 评论 -
elasticsearch 基础 —— nested嵌套类型
nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询。1. 对象数组如何扁平化内部对象object字段的数组不能像我们所期望的那样工作。 Lucene没有内部对象的概念,所以Elasticsearch将对象层次结构扁平化为一个字段名称和值的简单列表。 例如,以下文...原创 2018-07-26 16:06:30 · 8630 阅读 · 0 评论 -
elasticsearch 基础 —— Java High Level REST相关操作封装
pox.xml文件添加以下内容<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>6.3.2...原创 2018-07-26 13:52:13 · 5275 阅读 · 3 评论 -
elasticsearch 基础 —— 字段数据类型
核心数据类型(Core datatypes)字符型(String datatype):string 数字型(Numeric datatypes):long, integer, short, byte, double, float 日期型(Date datatype):date 布尔型(Boolean datatype):boolean 二进制型(Binary datatype):bin...原创 2018-07-26 11:53:48 · 4342 阅读 · 0 评论 -
elasticsearch 通过HTTP RESTful API 操作数据
1.检查es版本信息http://IP:9200curl 'IP:9200 2.查看集群是否健康http://IP:9200/_cat/health?vcurl 'IP:9200/_cat/health?v'3.查看节点列表http://IP:9200/_cat/nodes?vcurl 'IP:9200/_cat/nodes?v'4.列出所有索引及存...原创 2018-07-25 15:22:35 · 30416 阅读 · 4 评论 -
elasticsearch 深入 —— 分析器
参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenizers.html在全文搜索(Fulltext Search)中,词(Term)是一个搜索单元,表示文本中的一个词,标记(Token)表示在文本字段中出现的词,由词的文本、在原始文本中的开始和结束偏移量、以及数据类型等组成。Elas...原创 2018-08-02 14:22:37 · 2945 阅读 · 0 评论 -
elasticsearch 关联单词查询以及Shingles
Shingle Token FilterA token filter of type shingle that constructs shingles (token n-grams) from a token stream. In other words, it creates combinations of tokens as a single token. For example, the...原创 2018-08-02 15:26:39 · 4763 阅读 · 0 评论 -
elasticsearch api约定
elasticsearch REST API 使用JSON通过HTTP协议传输。本约定贯穿整个REST API,除非有特别的说明。一、多重索引大多数APIs引用到一个index参数来在多个索引中执行操作,使用简单的test1,test2,test3标记法(或者_all表示所有索引)。它也支持通配符的方式,例如:test* 或者 *test 或者 te*t 或者 *test*,并且还有“...原创 2018-08-15 10:22:46 · 2191 阅读 · 0 评论 -
elasticsearch 基础 —— ReIndex
Reindex会将一个索引的数据复制到另一个已存在的索引,但是并不会复制原索引的mapping(映射)、shard(分片)、replicas(副本)等配置信息。一、reindex的常用操作1、reindex基础实现 _reindex会将一个索引的快照数据copy到另一个索引,默认情况下存在相同的_id会进行覆盖(一般不会发生,除非是将两个索引的数据copy到一个索引中),可以使用...原创 2018-09-17 11:34:34 · 23283 阅读 · 5 评论 -
elasticsearch 深入 —— 全文检索
全文搜索我们已经介绍了搜索结构化数据的简单应用示例,现在来探寻 全文搜索(full-text search) :怎样在全文字段中搜索到最相关的文档。全文搜索两个最重要的方面是:相关性(Relevance)它是评价查询与其结果间的相关程度,并根据这种相关程度对结果排名的一种能力,这种计算方式可以是 TF/IDF 方法(参见 相关性的介绍)、地理位置邻近、模糊相似,或其他的某些算法。...原创 2018-09-12 16:13:43 · 6386 阅读 · 0 评论 -
elasticsearch 深入 —— 结构化搜索
结构化搜索结构化搜索(Structured search) 是指有关探询那些具有内在结构数据的过程。比如日期、时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作。比较常见的操作包括比较数字或时间的范围,或判定两个值的大小。文本也可以是结构化的。如彩色笔可以有离散的颜色集合: 红(red) 、 绿(green) 、 蓝(blue) 。一个博客可能被标记了关键词 分布式(...原创 2018-09-12 14:30:41 · 3724 阅读 · 0 评论