【ELK】日志分析系统概述及部署

一、ELK日志分析系统

1、ELK的组成部分
E: Elasticsearch

L: Logstash

K: Kibana

2、日志服务器
优点

提高安全性
集中化管理
缺点

对日志分析困难
3、日志处理步骤
①将日志进行集中化管理

②将日志格式化(Logstash)并输出到Elasticsearch

③对格式化后的数据进行索引和存储

④前端数据的展示(Kibana)

二、Elasticsearsh概述

  • 提供了一个分布式多用户能力的全文搜索引擎

1、Elasticsearch特性

Elasticsearch的核心概念

接近时实(NRT)

  • 搜索速度非常的快,轻微的延迟。

集群(cluster)

  • 将一个或多个节点组织在一起,组成一个cluster集群。
  • 集群有一个唯一标志的名字,默认Elasticasearch,每个节点基于集群名字加入到集群中,且在集群中使用自己的名字来身份标识。

节点(node)

  • 每一个节点就是一台单台服务器。

索引(index)

  • 一个索引由一个名字来标识(必须全部是小写字母),并且当我们要多对应这个索引中的文档进行索引、更新、删除的时候,都要使用到这个名字。

类型(type)

  • 在一个索引中,你可以定义一个或多种类型。
  • 比如:当我们存储一个购物平台的数据时,可以定义一个用户数据类型,产品数据类型等。

文档(document)

  • 一个文档是一个可被索引的基础信息单元

#索引(库)----》类型(表)------》文档(记录)
 

2、分片和副本

什么是分片?

  • 索引存储的数据可能超过单个节点的硬件限制。
  • 为了解决这个问题,ES提供了将索引分成多个分片的功能,当在创建索引时,可以定义想要的分片数量,每一个分片就是一个全功能独立的索引。

为什么要分片?

  • 水平分割扩展,增大存储量
  • 分布式并跨越分片操作, 提高性能和吞吐量

什么是副本?

  • 为了健壮性,高可用性,可以故障切换。
  • es将分片复制一份或多份放在不同的节点主机上,称为分片副本。

为什么要副本?

  • 高可用性,以应对分片或者节点故障,出于这个原因,分片副本要在不同的节点上。
  • 性能加强,增强吞吐量,搜索可以并行在所有副本上执行

3、es和传统数据库的区别

①结构名称不同

  • 关系型数据库:数据库–>表–>行—>列

  • Elasticsearch:索引—>类型—>文档---->字段

②ES分布式,传统数据库遍历式索引

  • ES支持分片和复制,从而方便水平分割和扩展,复制保证可es的高可用与高吞吐。

  • 在es中,当你创建一个索引(数据库)的时候,你可以指定你想要的分片的数量,每个分片本身也是一个功能完善并且独立的索引(数据库),索引可以被防止到集群中的任何节点上。

分片的优点

1、允许你水平分割/扩展你的内容容量
2、允许你在分片之上进行分布式的,并行的操作,进而提高性能/吞吐量
3、分片的分布,它的文档怎么聚合回搜索请求,完全有Elasticsearch管理

③ES采用倒排索引,传统数据库采用B+树索引

  • 正排索引:id---->values
  • 倒排索引:values—>id

④ES没有用户验证和权限控制

⑤ES没有事务的概念,不支持回滚,误删不能恢复

⑥ES免费,完全开源,传统的数据库部分免费

二、Logstash概述

  • 一款强大的数据处理工具
  • 可实现数据传输、格式处理、格式化输出
  • 数据输入、数据加工(过滤、改写等)以及数据输出

由三个组件组成:Input、Output、Filter Plugin

  • Input:获取日志
  • Output:输出日志
  • Filter Plugin:过滤日志、格式处理

1、Log Stash主要组件

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

三、Kibana 概述

  • 一个针对Elastcsearch的开源分析及可视化平台
  • 搜索、查看存储在ES 索引中的数据
  • 通过各种图标进行高级数据分析及展示

1、Kibana主要功能

①Elasticsearch无缝之集成

  • kibana架构为ES 定制,可以将任意结构和非结构加入到ES索引。

②整合数据

  • 更好的对ES 数据进行分析处理 。能够处理海量数据,智能的分析数据。

③让更多团队成员收益

④接口灵活,分享容易

  • 使用Kibana可以更加方便地创建、保存、分享数据,并将可视化数据快速交流。

⑤配置简单

  • 自带web服务器,快速启动运行

⑥可视化多数据源

  • Kibana可以非常方便地把来自Logstash、ES-Hadoop、Beats或第三方技术的数据整合到Elasticsearch,支持的第三方技术包括Apache flume、 Fluentd 等。

⑦简单数据导出

  • Kibana可以方便地导出感兴趣的数据,与其它数据集合并融合后快速建模分析,发现新结果。

四、ELK的优点

**1、处理方式灵活:**Elasticsearch是全文索引,具有强大的搜索能力

**2、配置相对简单,**Kibana的配置非常简单,Eslasticsearch则全部使用Json接口,配置也不复杂,Logstash的配置使用模块的方式,配置也相对简单。

**3、检索性高,**ELK架构通常可以达到百亿数据的查询秒级响应

**4、集群线性扩展,**Elasticsearch本身没有单点的挂念,自动默认集群模式,Elasticsearch和Logstash都可以

5、灵活扩展

6、页面美观。

五、部署ELK日志分析系统

1、部署环境

1.1 了解架构部署

主机名 ip地址 主要软件 系统
node1 20.0.0.55 ElasticSearh、Kibana centos7.5
node2 20.0.0.56 ElasticSearh centos7.5
httpd 20.0.0.57 Logstash、Apache centos7.5

【ELK】日志分析系统概述及部署_第1张图片

日志分析系统原理

首先有Apache产生大量的日志在本机中,那么Logstash就会input获取日志,然后进行Filter Plugin(过滤日志和格式处理),最后将处理好的日志outpu发送日志到ES的cluster集群中。

ES将收到的日志进行索引和存储。

最后可以使用Kibana进行查看分析日志。
 

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