1,日志的采集

wKioL1nCY_ygfuISAAS8mKLoUQQ569.png

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

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

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

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

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


wKioL1nCaULQAl0mAAQ0BhPT25w337.png

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  )

存储+可视化分析

画图工具

http://www.processon.com/


wKiom1nDtiTjDoinAAktxxUTt34457.png


wKiom1nD0uqyil1BAAcOiVCa7cI872.png


wKioL1nKZdOyqk0bAAdbhYDQ-ck297.png


wKiom1nKZ0OjDGNjAAWKNw4z7wg702.png