ELK日志查询系统
一、环境概述
日志分析是运维工程师解决系统故障,发现问题的主要手段。Linux操作系统中日志主要包括系统日志、用户日志、应用程序日志和安全日志。
ELK由Elasticsearch、Logstash和Kibang三个开源工具组成。
官方网站:https://www.elastic.co/cn/
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。.
Logstash是一个完全开源的工具,它可以对日志进行收集、过滤,并将其存储,供以后使用(如,搜索)。.
Kibana也是一个开源和免费的工具,Kibana可以为Logstash和Elasticsearch提供友好的日志分析Web界面,可以帮助您汇总、分析和搜索重要数据日志。
Logstash.收集AppServer产生的Log,并存放到Elasticsearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。简单来说,进行日志处理分析,一般需要经过以下几个步骤:
将日志进行集中化管理(beats)
将日志格式化(logstash)
对格式化后的数据进行索引和存储(elasticsearch)
前端数据的展示(kibana)
二、案例前置知识点
1.1、Elasticsearch介绍。
Elasticsearch是一个基于Lucene的搜索服务器。它稳定、可靠、快速、而且具有比较好的水平扩展能力,为分布式环境设计、在云计算中被广泛的应用。
Wikipedia、Stack、Overflow、GitHub等都是基于Elasticsearch来构建的搜索引擎,具有实时搜索、稳定、可靠、快速、安装使用方便等特点。.
1.2、Elasticsearch的基础核心概念:
接近实时(NRT)
集群(cluster):
节点(node)
类型(type).
文档(document)
分片和副本(shards&replicas)
Elasticsearch将索引分成若干个部分,每个部分称为一个分片,每个分片就是一个全功能的独立的索引。分片的数量一般在索引创建前指定,且创建索引后不能更改
,这些分片也可以被复制0次(意思是没有复制)或多次。当副本存在时,作为复制源的分片称为主分片,而作为复制目标的分片称为复制分片。默认情况下,Elasticsearch中的每个索引被分成5个主分片和1个副本。
分片的两个最主要原因:
水平分割扩展,增大存储量,
分布式并行跨分片操作,提高性能和吞吐量
2.1、logstash介绍
日志分析是运维工程师解决系统故障,发现问题的主要手段。Linux操作系统中日志主要包括系统日志、用户日志、应用程序日志和安全日志。
ELK由Elasticsearch、Logstash和Kibang三个开源工具组成。
官方网站:https://www.elastic.co/cn/
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。.
Logstash是一个完全开源的工具,它可以对日志进行收集、过滤,并将其存储,供以后使用(如,搜索)。.
Kibana也是一个开源和免费的工具,Kibana可以为Logstash和Elasticsearch提供友好的日志分析Web界面,可以帮助您汇总、分析和搜索重要数据日志。
Logstash.收集AppServer产生的Log,并存放到Elasticsearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。简单来说,进行日志处理分析,一般需要经过以下几个步骤:
将日志进行集中化管理(beats)
将日志格式化(logstash)
对格式化后的数据进行索引和存储(elasticsearch)
前端数据的展示(kibana)
二、案例前置知识点
1.1、Elasticsearch介绍。
Elasticsearch是一个基于Lucene的搜索服务器。它稳定、可靠、快速、而且具有比较好的水平扩展能力,为分布式环境设计、在云计算中被广泛的应用。
Wikipedia、Stack、Overflow、GitHub等都是基于Elasticsearch来构建的搜索引擎,具有实时搜索、稳定、可靠、快速、安装使用方便等特点。.
1.2、Elasticsearch的基础核心概念:
接近实时(NRT)
集群(cluster):
节点(node)
类型(type).
文档(document)
分片和副本(shards&replicas)
Elasticsearch将索引分成若干个部分,每个部分称为一个分片,每个分片就是一个全功能的独立的索引。分片的数量一般在索引创建前指定,且创建索引后不能更改
,这些分片也可以被复制0次(意思是没有复制)或多次。当副本存在时,作为复制源的分片称为主分片,而作为复制目标的分片称为复制分片。默认情况下,Elasticsearch中的每个索引被分成5个主分片和1个副本。
分片的两个最主要原因:
水平分割扩展,增大存储量,
分布式并行跨分片操作,提高性能和吞吐量
2.1、logstash介绍
Logstash.由JRuby.语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVM)上,是一款强大的数据处理工具。可以实现数据传输、格式处理、格式化输出。Logstash具有强大的插件功能,常用用于日志处理。Logstash可配置单一的代理端,与其他开源软件结合,实现不同功能。.
Logstash的理念很简单,它只做3件事情:
Collect:数据输入
Enrich:数据加工(过滤,改写等)
Transport:数据输出
2.2、logstash的主要组件:
shippe:日志收集者。负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可;
Indexer:日志存储者。负责接收日志并写入到本地文件。
Broker:日志Hub。负责连接多个Shipper和多个Indexer。
Search and Storage:允许对事件进行搜索和存储;
Web Interface:基于Web的展示界面。
在Logstash中,包括了三个阶段,分一别是输入(Input)、处理(Filter,非必须)和输出(Output)。整个流程为Input收集数据,Filter处理数据,Output输出数据。每个阶段也可以指定多种方式,如输出即可以输出到Elasticsearch中,也可以指定到stdout在控制台打印。这种插件式的组织方式,使得Logstash的扩展和定制非常方便。
2.3、Logstash主机分类:
代理主机(agenthost):作为事件的传递者(shipper),将各种日志数据发送至中心主机;只需运行Logstash代理(agent)程序;
中心主机(central host):
可运行包括中间转发器(Broker)、索引器(Indexer)、搜索和存储器(Search and Storage)、Web 界面端(Web Interface)在内的各个组件,以实现对日志数据的接收、处理和存储。
3.1、Kibana介绍
Kibana是一个针对Elasticsearch的开源分析及可视化平台,主要涉及用来和Elasticsearch一起工作。可以搜索、查看交互存储在Elasticsearch索引中的数据。并通过各种图表进行高级数据分析及展示。Kibana可以让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch 查询动态。Kibana使用非常简单,只需要添加索引就可以检测Elasticsearch索引数据。
Kibana的主要功能:
Elasticsearch无缝之集成。Kibana架构为Elasticsearch定制,可以将任何结构化和非结构化数据加入Elasticsearch索引。Kibana还充分利用了Elasticsearch 强大的搜索和分析功能。
整合你的数据。Kibana能够更好地处理海量数据,并据此创建柱形图、折线图、散点图、直方图、饼图和地图,以便用户查看。
复杂数据分析。Kibana提升了Elasticsearch分析能力,能够更加智能地分析数据,执行数学转换并且根据要求对数据切割分块。
让更多团队成员受益。强大的数据库可视化接口让各业务岗位都能够从数据集合受益。
接口灵活,分享更容易。使用Kibana可以更加方便地创建、保存、分享数据,并将可视化数据快速交流。
配置简单。Kibana的配置和启用非常简单,用户体验非常友好。Kibana自带Web服务器,可以快速启动运行。
可视化多数据源。Kibana可以非常方便地把来自Logstash、ES-Hadoop、Beats或第三方技术的数据整合到Elasticsearch,支持的第三方技术包括Apache Flume、Fluentd等。
简单数据导出。Kibana可以方便地导出感兴趣的数据,与其它数据集合并融合后快速建模分析,发现新结果。