ElasticStack

简介

随着系统产生的日志数量不断增加,大量的日志不再适合人工阅读或查看,因此,往往采用一些技术对已有日志进行分析整理,以图表或者其他易于阅读的方式将日志信息展示出来。

Elastic Stack是Elastic公司的一套开源项目,这套技术栈也被广泛的称为ELK。包括elasicsearch,logstash,kibana。其主要功能就是对数据进行收集,格式化,索引,分析和可视化。具有搭建简单,配置容易等优点。

ELK:对于分析日志而言,一般分为三个步骤;日志收集Logstash,日志整理存储Elasticsearch,数据展示Kibana。

E、L、K三者都可以单独使用。

graph TB
    L(Logstash日志收集)-->E[Elasticsearch日志整理存储] --> K(Kibana数据展示)

Logstash日志收集

Logstash是一个插件化的日志收集系统,现已包含200+plugin可用,并且可以轻松自定义插件。

input、output、filter是最常用的三个插件,用来配置输入输出目标与过滤处理。

用过Linux的人应该对管道操作符‘|’很熟悉,Logstash就像是一个管道操作符,他对事件、消息、或者任何感兴趣的东西进行收集、处理、分发。就像管道中的水流入流出。

先是使用一层多个Logstash实例进行收集并汇总到消息队列,再使用一层Logstash实例从消息队列中获取、处理然后存储到分布式的Elasticsearch中。

Elasticsearch(ES)日志整理存储

Elasticsearch是一个基于Apache Lucene的开源搜索引擎。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

同时,ES具有与生俱来的分布式支持。

• 分布式的实时文件存储,每个字段都被索引并可被搜索
• 分布式的实时分析搜索引擎
• 可以扩展到上百台服务器,处理PB级结构化或非结构化数据
——《Elasticsearch权威指南》

在ELK中,ES的角色就是存储并提供搜索功能以便更好的进行日志分析。

Kibana数据展示

Logstash收集后的数据都已经存放到了ES中,作为日志分析一条龙服务,现在就差数据展示(可视化)了。Kibana的前身就是专门设计用来查看ES中数据的,因此Kibana与ES的配合十分简单流畅。Kibana不要求与ES部署在同一台机器上,可以通过ES的Restful API查询数据。可以通过配置文件将一个ES集群配置给Kibana进行查询,并且Kibana支持常用图表的生成,可以通过自定义查询、横纵坐标含义等方式展示信息,拥有良好的数据展示能力与自定义能力。

http://kibana.logstash.es/content/

-------------Keep It Simple Stupid-------------
0%