日志收集分析器(ELK)

目录

一、ELK是什么

1、ElasticSearch

1.1 ElasticSearch的用途是什么?

1.1 ElasticSearch的用途是什么?

1.2 ElasticSearch的索引是什么?

2、Logstash

3、Kibana

二、ELK有什么优势

三、ELK的用途


由于我的项目中使用的是Filebeat作为一个日志数据采集器,那有没有其他的更好的日志收集分析采集器呢?

ELK与我之前的项目的异同之处:那个基于kafka的nginx web日志收集分析与监控平台与ELK都是使用filebeat进行日志收集,然后使用kafka作为消息中间件存储数据,然后使用python编写的一个消费者程序将清洗的日志存入了数据库,而ELK则是使用logstash对数据进行格式化处理,然后再放到elasticsearch上,可以用来存储数据,也可以用来对数据进行搜索,最后再由kibana作前端展示。ELK中的Elasticsearch服务器相当于项目中的kafka,ELK中的Logstash相当于项目中的filebeat。

一、ELK是什么

而ELK就是由elastic公司提供的一套完整的日志收集、展示解决方案,是三个产品的首字母的缩写,分别是ElasticSearch、Logstash 和Kibana。这三个工具组合形成了一套实用、易用的监控架构。很多公司利用它来搭建可视化的海量日志分析平台。

其中- E: ElasticSearch(ES),负责日志的存储和检索;

- L:Logstash,负责日志的收集,过滤和格式化;

- K:Kibana,负责日志的展示统计和数据可视化;

1、ElasticSearch

ElasticSearch是一个基于Apache Lucene的搜索服务器。它提供了一个分布式的免费全文搜索和分析引擎,使用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据,基于restful web接口。设计用于云计算中,能够达到实时搜索、稳定,可靠,快速、安装使用方便。Elasticsearch以其简单的REST风格API、分布式特性、速度和扩展性而闻名,是Elastic Stack的核心组件;Elastic Stack是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将Elastic Stack称为ELK Stack(代指Elasticsearch、Logstash 和 Kibana),目前Elastic Static包括一系列丰富的轻量级数据采集代理,这些代理统称为Beats,可用来向Elasticsearch发送数据。

1.1 ElasticSearch的用途是什么?

Elasticsearch在速度和扩展性方面都表现出色,而且还能够索引多种类型的内容,这意味着其可用于多种用例:

  • 应用程序搜索
  • 网站搜索
  • 企业搜索
  • 日志处理和分析
  • 基础设施指标和容器监测
  • 应用程序性能监测
  • 地理空间数据分析和可视化
  • 安全分析
  • 业务分析

1.1 ElasticSearch的用途是什么?

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

1.2 ElasticSearch的索引是什么?

ElasticSearch索引是指相互关联的文档集合。Elasticsearch会以JSON文档的形式存储数据。每个文档都会在一组键(字段或属性的名称)和它对应的值(字符串、数字、布尔值、日期、数值组、地理位置或其他类型的数据)之间建立联系。

Elasticsearch使用的是一种名为排序索引的数据结构,这一结构的设计可以运行十分快速地进行全文本检索。倒排索引会列出在所有文档中出现的每个特有词汇,并且可以找到包含每个词汇的全部文档。

在索引的过程中,Elasticsearch会存储文档并构建倒排索引,这样用户便可以近时地对文档数据进行搜索。索引过程是在索引API中启动的,通过此API即可以向特定索引中添加JSON文档,也可以更改索引中的JSON文档。

2、Logstash

Logstash是一个用于管理日志和事件的工具,可以用来对数据进行聚合和处理,并将数据发送到Elasticsearch。Logstash是一个开源的服务器端数据处理管道。你可以用它去收集日志、转换日志、解析日志并将他们作为数据提供给其他模块调用,例如搜索、存储等。

3、Kibana

Kibana 是一款适用于 Elasticsearch 的数据可视化和管理工具,可以提供实时的直方图、线形图、饼状图和地图。Kibana 同时还包括诸如 Canvas 和 Elastic Maps 等高级应用程序;Canvas 允许用户基于自身数据创建定制的动态信息图表,而 Elastic Maps 则可用来对地理空间数据进行可视化。是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。

二、ELK有什么优势

1、它具有强大的搜搜功能,elasticsearch可以以分布式搜索的方式快速检索,而且支持DSL的语法来进行搜索,简单的说,就是通过类似配置的语言,快速筛选出数据。

2、具有完美的展示功能,可以展示非常详细的图表信息,而且可以定制展示内容,将数据可视化发挥的出来。

3、分布式功能,能够解决大型集群运维工作很多问题、包括监控、预警、日志收集解析等。

三、ELK的用途

ELK能做什么呢?

应用出现故障的时候,需要通过日志排查故障信息。当应用已经部署了多个环境的时候,这时的排查会造成一个巨大的损耗。而ELK就可以多对个环境的日志进行收集、过滤、存储、检错,可视化。此时我们就只需要查看kibana上的日志信息,就可以找到故障所在的地方。

针对应用在生产环境上的表现需要数据支撑,如访客数、功能调用量、出错率等。这类数据的收集,当然可以通过使用别的产品或编写一套程序进行输出,是有其一定的效果。但能够像ELK这样对应用无入侵,且功能强大的开源软件很少。

简单的来说,日志收集是一个服务的所有行为的数据。而ELK 则对服务数据进行分析。

ELK组件在海量日志系统的运维中,可以用来解决:

1、分布式日志数据集中式查询和管理。

2、系统监控,包括系统硬件和应用各个组件的监控。

3、故障排查

4、安全信息和事件管理

5、报表功能

ELK在数据运维系统中,主要用来解决的问题为:

1、日志查询、问题排查、上线检查

2、服务器监控,应用监控,错误报警,bug管理

3、性能分析,用户行为分析,安全漏洞分析,时间管理

更多信息可以查看官方详解:https://www.elastic.co/cn/what-is/elasticsearch

你可能感兴趣的:(elk,elasticsearch)