摘要:基于算是云计算时代拥有划时代意义的项目了,关于的介绍与资料非常多。
1. 为什么要分析日志
传统的Web开发中,日志可能并不被重视,只有应用出现问题后,才会适时性的去看一眼。而且日志的储存方式也很简单,直接写入一个文本文件或者扔到数据库中就了事了。这样对于单机应用来说没有什么不可以的,可是当系统架构分布式后,官网、论坛、社交、交易等各个大大小小的子系统越来越多,再加上操作系统、应用服务、业务逻辑等等,日志的管理与查看就越发的麻烦,面对大量的日志数据而且又是分布在各个不同的机器甚至不同的机房,如果我们还是按照传统的方式登录到某一台机器上去查看日志,然后再汇总起来,再做个跨机房的排序,那这样感觉就太糟糕了。所以一套集中式的实时日志分析平台就显得非常重要了,而一套日志分析平台至少要包括一下几个特点:
收集, 可以收集不同来源的日志,包括Web日志,请求日志,本地机器,跨机房机器等
存储,稳定的存储日志信息并索引起来
分析,支持各种层面的分析,而且可以以UI展示出来
警告,根据日志内容进行不同错误级别的报警
2. ELK协议栈其实市面上的日志分析产品很多,简单的Rsyslog,商业化的Splunk,开源的Scribe,Apache的Flume,Cloudera 的ELK。这里采用的是ELK这个体系架构,ELK(Elasticsearch, Logstash, Kibana)经过这么多年的发展,一直到现在的6.0.0版本。能够发展这么快,其中肯定有他的原因所在。简单介绍一下这三个软件的特点:
Elasticsearch 高可用性,实时索引,拓展简单,接口友好
Logstash 是一个具有实时的数据收集引擎,几乎可以收集所有的数据
Kibana 提供分析和可视化的Web平台,用来查询分析以及生成各种报表
通过架构图可以看到,整体日志平台的原理其实并不难,日志的生产者作为Shipper产生各种各样的日志,然后传输到Kafka中,这里传输也是从生产者中读取然后传输通过 Logstash 到 Kafka, 再者Logstash通过读取Kafka中的日志数据,储存到ElasticSearch。只在中间再增加了Kafka做为缓冲层,因为Logstash会同步把日志传输到Elasticsearch,一旦ElasticSearch挂掉数据就有可能会丢失。于是,我们考虑利用Kafka作为缓冲区。
3.基于Docker这里选择Kafka的原因是因为与大多数消息系统比较,Kafka有更好的吞吐量,内置分区,副本和故障转移,这有利于处理大规模的消息,因为互联网应用日志基本上都是海量的。
Docker算是云计算时代拥有划时代意义的项目了,关于Docker的介绍与资料非常多。特别是docker-compose相当于给Docker插上了翅膀。Docker相对于传统的虚拟化技术,Docker应用运行于宿主内核,无需启动完整的操作系统,可以做到秒级、甚至毫秒级的启动时间,大大的节约了开发、测试、部署的时间。并且确保了运行环境的一致,「这段代码在我机器上没问题啊」这一些的问题再也不会出现。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27144.html
摘要:基于的好处还有一个就是不用去考虑环境的搭建,直接一个就可以直接搞定了,而且现在的热门开源软件,都有官方维护的镜像。这里基于和这两个基础镜像制作。官方给的解决办法是在的配置文件中写入的帐号密码,这样第一次可以登录,第二次又会不行。 基于Docker的好处还有一个就是不用去考虑环境的搭建,直接一个Dockerfile就可以直接搞定了,而且现在的热门开源软件,都有官方维护的镜像。这里基于do...
摘要:简介在出之前,对于的监控有着五花八门的解决方案,官方的插件也是各种变化,不仅名字乱而且还要一个个安装。总共包含安全,警报,监控,监控,报告,图表这五个功能,这里简单介绍下安全监控与报警。 X-Pack 简介 在 ElasticStack 出5.0之前,对于 ELK 的监控有着五花八门的解决方案,官方的插件也是各种变化,不仅名字乱而且还要一个个安装。当然,官方也考虑到了大家的疾苦,于是推...
阅读 2077·2021-11-23 10:13
阅读 2786·2021-11-09 09:47
阅读 2736·2021-09-22 15:08
阅读 3310·2021-09-03 10:46
阅读 2228·2019-08-30 15:54
阅读 907·2019-08-28 18:09
阅读 2427·2019-08-26 18:26
阅读 2339·2019-08-26 13:48