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 日志等等->
flume ->
kafka 消息件 消息发送到这里缓存数据一段时间 ->
spark streaming+spark sql on yarn cluster (实时计算) -> 存储
1.->redis adminLTE + flask 前端组件 + echarts3 集成到监控的系统上
2.->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,如需转载请自行联系原作者