天天看点

在线日志分析项目解读

1,日志的采集

<a href="https://s2.51cto.com/wyfs02/M01/A5/BB/wKioL1nCY_ygfuISAAS8mKLoUQQ569.png" target="_blank"></a>

从flume agent 上的数据一般分到两条线上一条是kafka 集群 ,后期可以用流式处理(spark streaming 或storm 等等)一条是到hdfs,后期可以用hive处理,

业界叫lambda架构 architecture (一般公司的推荐系统,就是用这种架构)

flume-ng agent 采集收集日志后,聚合在一个节点上(也可以不聚合)

为什么要聚合?为什么不直接写到kafka集群?

假如公司规模比较大,有无数个flume节点,这么多都连kafka,会增加复杂度,有个聚合节点(会是多个节点组成,防止单节点挂了),还可以对日志格式统一处理,筛选不要的数据

<a href="https://s5.51cto.com/wyfs02/M01/A5/BB/wKioL1nCaULQAl0mAAQ0BhPT25w337.png" target="_blank"></a>

hdfs 可以永久保存数据,mr 可以处理多久数据都行

kafka 集群数据可以存储一定时间不能长期存储,sparkstreaming 只能处理一定时间访问内数据

storm 流

数据源 nginx 日志,mysql 日志,tomcat 日志等等-&gt;

flume -&gt;

kafka 消息件 消息发送到这里缓存数据一段时间  -&gt;

spark streaming+spark sql on yarn cluster (实时计算) -&gt; 存储

1.-&gt;redis adminLTE + flask 前端组件 + echarts3 集成到监控的系统上

2.-&gt;influxdb 时序分布式数据库 grafana 可视化组件(这两种结合比较好)

(elk kibana  )

存储+可视化分析

画图工具

<a href="http://www.processon.com/" target="_blank">http://www.processon.com/</a>

<a href="https://s3.51cto.com/wyfs02/M01/07/21/wKiom1nDtiTjDoinAAktxxUTt34457.png" target="_blank"></a>

<a href="https://s3.51cto.com/wyfs02/M00/07/23/wKiom1nD0uqyil1BAAcOiVCa7cI872.png" target="_blank"></a>

<a href="https://s1.51cto.com/wyfs02/M00/A6/2F/wKioL1nKZdOyqk0bAAdbhYDQ-ck297.png" target="_blank"></a>

<a href="https://s5.51cto.com/wyfs02/M02/07/7E/wKiom1nKZ0OjDGNjAAWKNw4z7wg702.png" target="_blank"></a>

本文转自 skinglzw 51CTO博客,原文链接:http://blog.51cto.com/skinglzw/1967271,如需转载请自行联系原作者