Elastic

elasticsearch Limit of total fields [1000] in index

不打扰是莪最后的温柔 提交于 2020-07-29 11:00:36
elasticsearch中默认最大字段数1000个,实际上500左右就可能出现错误。 精简业务字段 2.手动修改elasticsearch 字段 curl -i -H "Content-Type: application/json" -X PUT -d "{\"index.mapping.total_fields.limit\":\"2100\"}" http://127.0.0.1:9200/index/_settings/ 3.将多个字段放入一个字段中 参考官方解释 https://www.elastic.co/guide/en/elasticsearch/reference/7.3/mapping.html#mapping-limit-settings Settings to prevent mappings explosion Defining too many fields in an index is a condition that can lead to a mapping explosion, which can cause out of memory errors and difficult situations to recover from. This problem may be more common than expected. As an

Elastic Stack

不想你离开。 提交于 2020-07-29 10:56:00
ELK https://www.elastic.co/what-is/elk-stack So, what is the ELK Stack? "ELK" is the acronym for three open source projects: Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine. Logstash is a server‑side data processing pipeline that ingests data from multiple sources simultaneously, transforms it, and then sends it to a "stash" like Elasticsearch. Kibana lets users visualize data with charts and graphs in Elasticsearch. The Elastic Stack is the next evolution of the ELK Stack. Beats 对于仅仅需要监控数据新增需求的场景, 引入Beats, tail有尾行的意思。 Then we dropped a Beat on ELK "I just

Elasticsearch常用工具清单

江枫思渺然 提交于 2020-07-29 09:50:06
一、基础类工具 1、Head插件 ES集群状态查看、索引数据查看、ES DSL实现(增、删、改、查),比较适用json串的格式化 参考地址:http://mobz.github.io/elasticsearch-head/ 2、kibana工具 除了支持各种数据的可视化之外,最重要的是:支持Dev Tool进行RESTFUL API增删改查操作。 ——比Postman工具和curl都方便很多。 参考地址:https://www.elastic.co/products/kibana 3、ElasticHD工具 支持sql转DSL 参考地址:https://github.com/360EntSecGroup-Skylar/ElasticHD 4、cerebro工具 参考地址:https://github.com/lmenezes/cerebro 5、Elaticsearch-HQ工具 管理elasticsearch集群以及通过web界面来进行查询操作 参考地址:https://github.com/royrusso/elasticsearch-HQ 6、Elaticsearch-migration工具 支持多版本间数据迁移,使用sroll + bulk 参考地址:https://github.com/medcl/elasticsearch-migration 7

ELK的踩坑之旅

心不动则不痛 提交于 2020-07-29 06:24:17
前言 起源 许多年前,一个刚结婚的名叫 Shay Banon 的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。 在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。 直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass。 后来 Shay 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch。 第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕 Elasticsearch 提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。 据说,Shay 的妻子还在等着她的食谱搜索引擎…​ 设计思路如下 有3台机器 2台做elasticsearch的主副节点 1台做kibana和elasticsearch_head

日志分析logstash插件-grok详解

非 Y 不嫁゛ 提交于 2020-07-28 18:06:12
一般系统或服务生成的日志都是一大长串。每个字段之间用空格隔开。logstash在获取日志是整个一串获取,如果把日志中每个字段代表的意思分割开来在传给elasticsearch。这样呈现出来的数据更加清晰,而且也能让kibana更方便的绘制图形。 Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。 grok表达式 下面针对Apache日志来分割处理 filter { if [type] == "apache" { grok { match => ["message" => "%{IPORHOST:addre} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"%{WORD:http_method} %{NOTSPACE:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:status} (?:%{NUMBER:bytes}|-) \"(?:%{URI:http_referer}|-)\" \"%{GREEDYDATA:User_Agent}\""] remove_field => ["message"] } date { match => [ "timestamp", "dd/MMM/YYYY:HH:mm

Elastic:机器学习的实践

99封情书 提交于 2020-07-28 10:57:05
如果你有基于消息的日志条目,但是这些日志条目是机器生成的,则在将它们用于异常检测之前,首先需要将它们组织成类似的消息类型。 该过程称为分类 (cateogrization),Elastic ML 可以帮助完成该过程。 Categorization 将结构引入半结构化数据,以便对其进行分析。这样做的好处就是在事先在并不知道 message 含有什么,就能找到日志里的异常。 可以供 categorization 的信息种类 在定义此处要考虑的基于消息的日志行的类型时,我们需要稍微严格一些。 我们不考虑的是完全自由格式的日志行/事件/文档,并且很可能是人工创建的结果(电子邮件,tweet,评论等)。 这类消息过于随意,其结构和内容也不尽相同。 相反,我们专注于机器生成的消息,当应用程序遇到不同的情况或异常时,这些消息显然会发出,从而将其构造和内容限制为相对离散的可能性集(请注意,消息的确可能存在某些可变方面) 。 例如,让我们看一下应用程序日志的以下几行: 18/05/2016 15:16:00 S ACME6 DB Not Updated [Master] Table 18/05/2016 15:16:00 S ACME6 REC Not INSERTED [DB TRAN] Table 18/05/2016 15:16:07 S ACME6 Using: 10.16.1.63!svc

解锁 Elastic 最新的数据采集模块

百般思念 提交于 2020-07-28 10:48:00
文章目录 以后再也不用安装安装 tons of beats 了! 解锁Ingest manager页面 先决条件 Ingest manager组件简介 集成(Integrations) 新的索引策略 配置(Configurations) Fleet 数据流(Data Streams) Elastic Agent 总结 以后再也不用安装安装 tons of beats 了! 用过Elastic Stack,用过ELK的小伙伴都知道,Elastic目前提供的数据采集方案主要是基于Beats。这是一个软件族,包括了多个组件: Beats是用Go语言编写的轻量级的数据采集群,它具有以下特点: 从多个数据源采集 运行在多种终端上 Docker 和 k8s 支持Cloud的元数据 70+ 社区制造的Beats 50+ 模块 虽然通过beats,我们可以开箱即用的采集大量的数据源 但其按照意图区分多个不同软件的方式也给我们带来了不便。通常情况下,如果我们需要采集多维度的数据,就需要在一个主机上安装多个beats,比如,filebeat用于日志采集,metricbeat用于指标采集,auditbeat用于审计/安全数据的采集。客观上,从软件安装/删除,软件配置更改,软件升级等方面增加了我们对于agent的运维管理工作量。 为了解决这个问题,Elastic推出了数据摄入模块的整体解决方案

微服务海量日志监控平台

安稳与你 提交于 2020-07-28 10:14:05
前面几章蜻蜓点水的介绍了elasticsearch、apm相关的内容。本片主要介绍怎么使用ELK Stack帮助我们打造一个支撑起日产TB级的日志监控系统 背景 在企业级的微服务环境中,跑着成百上千个服务都算是比较小的规模了。在生产环境上,日志扮演着很重要的角色,排查异常需要日志,性能优化需要日志,业务排查需要业务等等。然而在生产上跑着成百上千个服务,每个服务都只会简单的本地化存储,当需要日志协助排查问题时,很难找到日志所在的节点。也很难挖掘业务日志的数据价值。那么将日志统一输出到一个地方集中管理,然后将日志处理化,把结果输出成运维、研发可用的数据是解决日志管理、协助运维的可行方案,也是企业迫切解决日志的需求。 我们的解决方案 通过上面的需求我们推出了日志监控系统。 日志统一收集、过滤清洗。 生成可视化界面、监控,告警,日志搜索。 功能流程概览 在每个服务节点上埋点,实时采集相关日志。 统一日志收集服务、过滤、清洗日志后生成可视化界面、告警功能。 我们的架构 日志文件采集端我们使用filebeat,运维通过我们的后台管理界面化配置,每个机器对应一个filebeat,每个filebeat日志对应的topic可以是一对一、多对一,根据日常的日志量配置不同的策略。除了采集业务服务日志外,我们还收集了mysql的慢查询日志和错误日志,还有别的第三方服务日志,如:nginx等

elasticsearch安装

我只是一个虾纸丫 提交于 2020-07-27 10:58:17
1.官网下载需要的tar包 elasticsearch-7.7.0-linux-x86_64.tar.gz 远程复制到linux服务器中 2.增加elastic用户,因为elastic不允许非root用户运行 useradd elastic 3.解压到指定目录 su - elastic mkdir -p /itcast/es/ tar -xvf elasticsearch-7.7.0-linux-x86_64.tar.gz -C /itcast/es 4.修改配置文件 su - root vim jvm.options vim /etc/security/limits.conf vim /etc/sysctl.conf vm.max_map_count=655360 systemclt -p 使配置生效 5.启动ES服务 su - elsearch cd bin ./elasticsearch 或者./elasticsearch -d 后台运行 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 验证:192.168.91.21:9200 docker安装elasticsearch 或者google安装Elastic Search-Head 来源: oschina 链接: https://my.oschina.net

Elasticsearch系列之Query DSL

纵饮孤独 提交于 2020-07-27 10:11:08
1 前言 我们先通过阅读官方文档,了解一下什么是 Query DSL 。 1.1 Query DSL Elasticsearch provides a full Query DSL (Domain Specific Language) based on JSON to define queries. DSL是啥? 由Elasticsearch提供的一套完整的JSON格式的查询语句。 Think of the Query DSL as an AST (Abstract Syntax Tree) of queries, consisting of two types of clauses: Leaf query clauses Leaf query clauses look for a particular value in a particular field, such as the match , term or range queries. These queries can be used by themselves. ** Compound query clauses Compound query clauses wrap other leaf or compound queries and are used to combine multiple queries in a