目录

  • ELK是什么?
  • ELK的特点:
  • 查看日志的方式:
  • ELK搭建完成之后的用法
  • 1.1 收集哪些日志
  • 1.2 收集到之后如何展示出来
  • 1.3 收集到之后该怎么做
  • 1.4 ELK的核心组件的功能
  • 1.5 ELK日志处理分析的步骤
  • 1.6 elasticsearch的介绍
  • 1.7Kibana


ELK是什么?

ELK通俗来讲,是一个Elasticsearch(日志存储和搜索)、Logstash(日志收集)、Kibana(日志查看),三个开源软件的作为主要功能的一个组合体。

ELK的特点:

  1. 实时搜索、实时分析
  2. 分布式架构、实时文件存储
  3. 文档导向,所有对象都是文档
  4. 高可用,易扩展,支持集训,分片与复制
  5. 接口友好,支持josn

查看日志的方式:

  1. cat /var/local/messages
  2. journalctl
    -n:可以查看尾部十行的日志
    -u:后面跟随服务的名字,可以单独查看。–since today是查看当天的日志

直接跟随脚本的路径名字,就能查看该脚本的日志记录

  1. systemctl status 服务名 #可以查看该服务的最新的五条日志

ELK搭建完成之后的用法

例如:kafka+zk(zookeeper):这种组合方式,来进行消息队列的统一编排与处理。以消息队列的形式在中间做缓冲、过滤等功能。以及还能兼容各种各样的接口。

ELK搭建完成之后,主要用于日志的收集,收集的条件、处理方式都在下面一一介绍

1.1 收集哪些日志

  1. 系统日志:(可以进行收集tomcat日志)收集系统日志,一方面是为了监控系统的系统状态,资源的使用量等等都来进行监控与收集日志。
  2. 服务日志:mysql等数据库产生的慢查询日志、错误日志、普通日志。以及数据流向所经过的一些服务所产生的的日志信息。收集到之后,将对这些日志进行分析。
  3. 业务日志:log4j;程序或者实际跑的业务,都会存储在log4J中。在日程生产环境中,业务日志必须是需要收集的,因为需要分析用户的访问情况。

1.2 收集到之后如何展示出来

  1. kibana:第一种是以kibana的方式显示出来
  1. 可以将收集到的日志进行分析之后,以的可视化的情况进行展示,减轻管理人员的分析处理的压力。支持以3D的方式进行显示。
  1. grafana:第二种是以grafana的方式显示出来
  1. grafana是跟kibana类似,可以将日志以可视化的情况显示出来,相对于kibana,在某些方面更加的完善。支持以3D的方式进行显示。

1.3 收集到之后该怎么做

  1. 分析日志,分析出错误日志等等可能会导致系统不能正常运转的日志信息
  2. 给予大数据分析,作为立体化展示的数据源
  3. 给研发使用(主要用于排障、解决bug等等)
  4. 统计数据流量、作为分析报告的数据源

1.4 ELK的核心组件的功能

收集、输出、格式化是由:Logstash

存储、创建/建立索引:Elasticsearch

作为日志收集之后的一个效果的展示:Kibana

1.5 ELK日志处理分析的步骤

  1. 将日志进行几种化管理(beat)
    基于filebeat、topbeat等功能实现
  2. 将日志格式化(logstash)
    将收集到的日志进行翻译
  3. 对格式化后的数据进行索引和存储(elasticsearch)
    基本功能存储,还有索引。
  4. 前端数据的展示(kibana)
    主要是支持的可视化的展示方式,但是不止是kibana这一种

1.6 elasticsearch的介绍

elasticsearch 的特性:

  1. 接近实时
  1. elasticsearch是一个搜索时间接近实时的搜索平台,从索引到指定的文档只需要及其轻微的延迟(通常是一秒左右)
  1. 集群化(cluster)
  1. 集群是由多个个体集合在一起的一个集合体
  2. 集群是为了高性能、高可用的一个目的性
  1. 节点(node)
  1. 集群中的一个部分,是集群中的一部分,是集群中单台服务器的一个标识作用
  1. 索引(index)
  1. 索引就是在里面拥有及其相似的文档的集合。可以非常方便的一次性查看
  1. 类型(type)
  1. 类型就是索引中的一个逻辑上的分区。通常是同一种类型的文件放在同一个索引中
  1. 文档(doucument)
  1. 在一个索引中的可以准备搜索的基础信息,同一种种类的文档就是一种类型

7. 分片和副本

做分片跟副本主要是为了扩展容量

1. 分割的主要原因

1. 水平分割扩展:横向扩展,可以增大存储容量
  2. 分布式并行跨分片操作:提高性能和吞吐量

2. 副本

elk配置不同类型日志写到不同索引 elk读取日志_java

如图,只是方便理解,实际环境中,可能并不是这种分配的方式。

1. 副本是对分片做的一个复制,在资源不充足的时候,会跟分片进行放在一起

  2. 在分片之后,每个分片都会做一个副本,但是在存储的时候,一般不会存放在本地,存放在另外的节点上,提供一定的冗余性

1.7Kibana

Kibana是一个针对elasticsearch的开源分析以及可视化的平台,用来搜索、查看等与存储在elasticsearch索引中的数据进行交互的操作。

Kibana的主要功能:

  1. elasticsearch无缝之集成:Kibana架构是为elasticsearch定制的架构,可以将任何结构化和非结构化的数据加入elasticsearch索引
  2. 整合数据:Kibana能够更好的处理海量的数据,并根据这些数据信息进行创建柱状图、折线图、散点图、直方图、饼图和地图等。
  3. 对复杂数据进行分析:Kibana能够提升elasticsearch分析能力,能够让其更加智能的分析数据,能够执行数学转换并且根据要求对数据切割分块。
  4. 让更多团队成员受益:强大的数据库可视化接口让各个业务岗位都能够从数据集合受益
  5. 接口灵活,分享更容易:使用Kibana可以更加方便的创建、保存、分享数据,并将可视化数据进行快速的交流
  6. 配置简单:Kibana的配置和启用方式都非常简单,用户体验非常友好。Kibana字啊带的Web服务器,可以进行快速启动并且运行。
  7. 可视化多数据源:Kibana可以非常方便地把来自Logstash、ES-Hadoop、Beats或者第三方技术的数据整合到elasticsearch,支持的第三方技术有:Apache、Flume、Fluentd等。
  8. 简单数据的发出:Kibana可以方便的导出对其感兴趣的数据,还可以将其与其他数据集合进行融合后再进行快速建模分析,发现新的结果。
    上面大致介绍了一些ELK的原理以及部分核心组件的功能,等等现在就简单的介绍一下原理。
    架构的搭建等等情况,等有时间再去整理一遍