日志是设备或者程序对自身状态和运作行为的记录,日志监控平台是包括日志采集,存储,分析,索引查询,告警以及各种流程管理的一站式日志服务,日志监控是监控体系中核心的建设,而且可以说是量最大的一项监控。

日志

日志是设备或者程序对自身状态和运作行为的记录。日志记录了事件,通过日志就可以看到设备和程序运行的历史信息,通过这些信息,可以了解设备和程序运行情况的变化,以更好的对于设备和程序进行维护。主要是在系统出现问题的时候,通过对于运行过程中发生的历史事件,可以查找问题出现的原因。

我们可以通过下图来对日志有一个直观的概念

日志平台

业内最常见的日志采集方案就是 ELK,在 ELK 出来之前,日志管理基本上都是通过登陆日志所在机器然后使用 Linux 命令或人为查看和统计 ,这样是非常没有效率的。

架构

这是一个最简化版的日志收集架构,很多基于ELK的日志架构是从它演化而来,比如中加上kafka等队列缓存,核心的问题就是日志数据都保存到ElasticSearch中。其实核心的是四大模块

  • 数据采集模块:负责从各节点上实时采集数据,建议选用filebeat来实现。
  • 数据接入模块:由于采集数据的速度和数据处理的速度不一定同步,因此添加一个消息中间件来作为缓冲,建议选用Kafka来实现。
  • 存储计算模块:对采集到的数据进行实时存储分析,建议选用ES来实现。
  • 数据输出模块:对分析后的结果展示,一般使用kibana。

采集

在日志采集方面,可以说是有很多项目的支持,从以一开始的logstash,Rsyslog到后来Flume,Fluentd,Filebeat等。采集越来越倾向于轻量级,性能越来越高。容器日志采集和寻常的采集也不一样,不同的方案有不同的适用场景。

2020.02.20

今天调研了grafana推出的loki也是处理日志,这边采集是promtail,具体可以查看loki调研

存储

在日志存储索引查询方面,目前只有ES一个核心技术站,并没有过多的选择。

2020.02.20

今天调研了grafana推出的loki也是处理日志,借鉴了prometheus的label和metrics理念,通过label完成检索,具体可以查看loki调研

展示

在数据展示报表方面,目前对日志也没有什么选择,只有kibana。Kibana主要负责读取ElasticSearch中的数据,并进行可视化展示。并且,它还自带Tool,可以方便调用ElasticSearch的Rest API。在日志平台中,我们通过Kibana查看日志。