ELK日志简单原理

 

ELK是由Elasticsearch,Logstash,Kibana三大组件构成的一个基于web页面的日志分析工具。日志分析是运维工程师解决系统故障时的主要手段。日志包含着许多类型,主要包括程序日志,系统日志以及安全日志等。我们可以通过对日志进行分析,预防故障的发生,又或者在故障发生时及时找到故障点并解决。

结构:
Elasticsearch:是一个开源分布式时实分析搜索引擎,建立在全文搜索引擎库Apache Lucene基础上,同时隐藏了Apache Lucene的复杂性。Elasticsearch将所有的功能打包成一个独立的动画片,索引副本机制,RESTful风格接口,多数据源。自动搜索等特点。
Logstash :是一个完全开源的工具,主要用于日志收集,同时可以对数据处理,并输出给Elasticarch
Kibana:也是一个完全开源的工具,kibana可以为Logstash和Elasticsearch提供图形化的日志分析。Web界面,可以汇总,分析和搜索重要数据日志。

一、ELK日志分析系统的介绍

1.1、 日志服务器可以提高安全性,集中存放日志。但也有它对应的缺陷,如对日志分析困难
1.2、ELK日志分析系统:Elasticsearch、Logstash、Kibana
1.3、日志处理步骤:将日志进行集中化管理→将日志格式化并输出到Elasticsearch→对格式化后的数据进行索引和存储→前端数据展示

二、ELK的组件介绍

2.1、ELasticsearch提供了一个分布式多用户能力的全文搜索引擎
2.2、Elasticsearch核心概念:接近实时、集群、节点、索引、分片和副本

接近实时:elasticsearch是一个接近实时的搜索平台,这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)

集群:一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能。其中一个节点为主节点,这个主节点是可以通过选举产生的,并提供跨节点的联合索引和搜索的功能。集群有一个唯一性标示的名字,默认elasticsearch,集群名字很重要,每个节点是基于集群名字加入到其集群中的。因此,确保在不同环境中使用不同的集群名字。一个集群可以只有一个节点。强烈建议在配置elasticsearch时,配置成集群模式。

节点:节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能。像集群一样,节点也是通过名字来标识,默认是在节点启动时随机分配的字符名。当然,你可以自己定义。该名字也很重要,在集群中用于识别服务器对应的节点。节点可以通过指定集群名字来加入到集群中。默认情况,每个节点被设置成加入到elasticsearch集群。如果启动了多个节点,假设能自动发现对方,他们将会自动组建一个名为elasticsearch的集群。

索引:索引(库)→类型(表)→文档(记录)

分片和副本:在实际情况下,索引存储的数据可能超过单个节点的硬件限制。如一个10亿文档需1TB空间可能不适合存储在单个节点的磁盘上,或者从单个节点搜索请求太慢了。为了解决这个问题,elasticsearch提供将索引分成多个分片的功能。当在创建索引时,可以定义想要分片的数量。每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上。每个索引可以被分成多个分片。一个索引也可以被复制0次(意思是没有复制)或多次。一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主分片的拷贝)之别。分片和副本的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变副本的数量,但是你事后不能改变分片的数量。默认情况下,Elasticsearch中的每个索引被分片5个主分片和1个副本,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个副本分片(1个完全拷贝),这样的话每个索引总共就有10个分片。

2.3、Logstash是一款强大的数据处理工具,可实现数据传输、格式处理、格式化输出、数据输入、数据加工(如过滤,改写等)以及数据输出。
Logstash主要组件为Shipper、Indexer、Broker、Search and Storage、Web Interface

Shipper:日志收集者,负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可
Indexer:日志存储者,负责接收日志并写入到本地文件
Broker:日志hub,负责连接多个shipper和多个indexer
Search and Storage:允许对事件进行搜索和存储
Web Interface:基于Web的展示界面

2.4、Kibana是一个针对Elasticsearch的开源分析及可视化平台,可以搜索、查看存储在Elasticsearch索引中的数据通过各种图表进行高级数据分析及展示
Kibana主要功能:Elasticsearch无缝之集成、整合数据、接口灵活分享更容易、配置简单可视化多数据源、简单数据导出

原文地址:https://www.cnblogs.com/sobk/p/14058915.html