日志埋点
所谓埋点,就是在业务系统的程序中,植入一些收集事件数据的SDK(工具代码),进行各种事件的收集.
后端埋点
埋点代码可以植入到业务系统的后端程序中(比如java、php等)
前端埋点
也可以植入到业务系统的前端程序(原生app、页面js、微信小程序)中
数据通过埋点发送到日志服务器,日志服务器把日志数据记在本地磁盘,或写kafka
日志采集
通过flume读取日志文件,或kafka,转存到hdfs中
flume
Flume是一个分布式、可靠、和高可用的海量日志采集、汇聚和传输的系统。
Flume可以采集文件,socket数据包(网络端口)、文件夹、kafka、mysql数据库等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中
一般的采集、传输需求,通过对flume的简单配置即可实现;不用开发一行代码!
Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景
agent
Flume中最核心的角色是agent,flume采集系统就是由一个个agent连接起来所形成的一个或简单或复杂的数据传输通道。
对于每一个Agent来说,它就是一个独立的守护进程(JVM),它负责从数据源接收数据,并发往下一个目的地,如下图所示: