精华内容
下载资源
问答
  • 日志采集之移动端日志采集

    千次阅读 2019-10-31 09:11:45
    移动端日志采集: 1)除了web页面日志采集的相关内容来提升用户体验外,还需要采集各种设备信息,以及各种设备的运行情况,协助开发者分析各类设备特有问题 2)移动端日志采集通过采集SDK完成,根据不同的用户行为...

    移动端日志采集:
    1)除了web页面日志采集的相关内容来提升用户体验外,还需要采集各种设备信息,以及各种设备的运行情况,协助开发者分析各类设备特有问题

    2)移动端日志采集通过采集SDK完成,根据不同的用户行为分成不同的事件,事件是移动端日志采集的最小单位,基于常用的分析,把事件分为页面事件和控件点击事件等。

    页面事件:
    在这里插入图片描述
    1)SDK提供三个接口,三种接口配合使用:

    ①页面展现接口,在进入页面时调用,记录相关状态信息

    ②页面扩展信息接口,给记录添加相关参数

    ③页面退出接口,在点击详情页 / 点击返回 / 退出软件时调用,用于发送日志给采集服务器

    2) 渗透参数:把当前页面的某些信息传递到之后浏览的页面,用于用户行为路径的还原。

    控件事件:
    1)采集用户交互信息,只需要把控件相关信息告诉采集SDK即可,具体包括:

    在这里插入图片描述
    2)用户自定义埋点类:包含事件名称、事件时长、事件携带的属性、事件对应的页面

    3)采集SDK默认埋点:包含自动捕捉应用崩溃、自动捕捉应用退出、自动捕捉应用前后台切换等与业务不相关但对于分析存在价值的数据捕捉

    特殊场景:
    在日志数据量巨大时,为了减少采集请求次数、采集服务器的压力以及网络压力,常常在采集SDK利用页面的生命周期进行聚合并选择适当的时机向采集服务器发送聚合请求。

    案例说明:购物主会场页面 >> 女装分会场 >> 女装店铺A >> (返回)女装分会场 >> 女装店铺B

    存在问题:第二次女装分会场的来源会被识别为女装店铺A,干扰用户行为分析

    解决方法:利用页面生命周期,识别页面复用,配合栈来识别是否是回退行为

    H5 & Native 日志:

    1)app分两种:

    ① Native app:纯app页面

    ② Hybrid app: 既有Native app页面,也有H5嵌入app

    2)由于Native页面与H5页面的采集方式、采集的内容以及采集服务器均分离开,需要对两种数据进行关联后在统一分析

    3)考虑到采集SDK可以采集更多移动设备信息;采集SDK 采集到数据后先还存在本地再择机请求,选择把H5日志归一到Native页面的方式

    H5 & Native 日志统一流程:
    1)H5特面中的日志采集与浏览器页面采集完全相同

    2)浏览器把javascript脚本采集到的数据打包成对象,调用WebView框架的JSBridge接口,把数据对象当作参数传入移动端采集SDK

    3)采集SDK把传入的对象数据转换成移动端日志格式,在app端统一进行日志处理缓存到本地然后择机上传

    日志传输:
    1)采集SDK日志收集完日志之后,进行日志择机上传:

    在这里插入图片描述
    2)移动端数据通过post请求发送给服务器,服务器对数据进行验证后,以Nginx的access_log方式存储

    3)考虑到后续数据处理以及特定时期的日志级别保障,根据应用、日志类型对日志数据进行分流。分流的好处在于双十一等日志数据量巨大的时期,可以集中资源处理日志级别高的日志数据。

    展开全文
  • flume日志采集

    2018-04-02 16:23:01
    这里详细的介绍了日志采集的流程,日志采集的步骤。。。
  • 2)页面交互日志采集:用来获取用户兴趣或者优化用户体验 页面请求流程: 1)用户在浏览器地址栏输入地址:如淘宝 2)浏览器解析用户请求,按照HTTP协议中约定的格式将请求转化为HTTP请求发送给淘宝服务器 一个标准...

    浏览器页面日志分类:

    1)页面浏览(展现)日志:浏览量 PV(page view)、访客量 UV(unique view)

    2)页面交互日志采集:用来获取用户兴趣或者优化用户体验

    页面请求流程:
    1)用户在浏览器地址栏输入地址:如淘宝

    2)浏览器解析用户请求,按照HTTP协议中约定的格式将请求转化为HTTP请求发送给淘宝服务器

    一个标准的HTTP请求构成:

    ①请求行:包含URL、HTTP版本号、请求方法

    ②请求报头:请求携带的附加信息,包含很多Header Field,最关键的信息为cookie记录了用户上次登录状态和身份信息

    ③请求正文:一般而言为空

    3)服务器收到请求后解析请求,进行相应的逻辑处理,将结果以HTTP响应的方式返回浏览器

    一个标准的HTTP响应构成:

    ①状态行:状态码,如200,404

    ②响应报头:服务器指示浏览器尽享相关动作,如新建某user的cookie或者更新cookie

    ③请求正文:页面HTML文档封装在正文内

    4) 浏览器接收相应内容,按照HTML文档规范解析内容并尽享渲染,最终展现在屏幕上

    上述第一、二步请求尚未到达服务器,第三步执行后无法确保用户打开页面,所以日志采集的动作在第四步。在响应文档的适当位置添加日志采集节点,当浏览器解析到采集节点时出发HTTP请求到采集服务器。

    页面浏览(展现)日志采集流程:采集-发送-收集-解析

    1)客户端日志采集:由嵌入在HTML中的一段javascript脚本执行,采集信息如下:

    在这里插入图片描述
    2)客户端日志发送:js脚本采集到日志数据后向日志采集服务器发起HTTP请求,采集到的信息以URL参数的形式放在HTTP请求的请求行内。

    3)服务器端日志收集:响应请求,把采集到的数据存入缓冲区。

    4)服务器日志解析:把缓冲过去中的日志数据逐条取出进行解析成标准日志文件,通过实时消息通道供其他后端程序使用。

    制定日志采集标准规范,格式化日志数据可以为后续处理打下基础

    页面交互日志采集:

    1)鼠标或者输入焦点的变化:代表用户关注内容的变化

    2)对某些交互的反应:判断用户体验是否简单易懂

    3)不同类别的交互日志千差万别,没有统一的采集内容,如:页面游戏交互与用户购物车交互所需记录的行为数据和数据类型都不相同,呈现了很高的自由度

    页面交互日志采集流程:(阿里巴巴“黄金令牌”是一个基于HTTP协议的日志服务)

    1)业务方在交互采集系统注册需要的业务、场景、交互采集点,系统生成与之对应的代码模板。

    2)业务方把代码模板嵌入HTML目标页面,把代码与交互行为做绑定。

    3)当用户进行制定操作,采集代码被触发执行并把采集到的数据通过HTTP请求发送给采集服务器。

    4)日志采集服务器收到交互日志,对于用户自定义的交互数据原则上不做处理,直接转存。随后由业务系统自行解析。

    页面日志的服务器端清洗和预处理:在时效性要求宽松的场景下,需要对采集到的数据进行离线预处理

    1)对日志进行合法性校验,通过算法进行识别归纳出对应的过滤规则


    2)数据缺项补正:包括取值归一、标准化数据处理、反向补正(根据日志数据对稍早的数据做回补或者修订)

    3)无效数据剔除:因业务变更或者配置不当造成部分无效数据,需要定时检查进行剔除

    4)日志隔离分发:处于对数据安全以及业务特征的考虑,某些日志数据在进入公共数据环境前需要进行隔离

    展开全文
  • syslog日志系统——日志采集

    万次阅读 2018-11-08 14:00:17
    日志采集的流程 客户端埋点 客户端埋点就是在客户系统植入日志发送的代码,可以是前端页面、app界面、后端服务等,把需要的日志信息发送到指定的日志采集接口。 日志的发送应该采用异步方式,这样不会对客户系统...

    日志采集的流程

    日志采集流程

    客户端埋点

    客户端埋点就是在客户系统植入日志发送的代码,可以是前端页面、app界面、后端服务等,把需要的日志信息发送到指定的日志采集接口。
    日志的发送应该采用异步方式,这样不会对客户系统代码的执行造成影响。

    日志采集

    日志采集接口把接收过来的日志数据写入到日志文件,日志文件以天为单位进行存储。

    日志采集接口代码

    接口采用@IgnoreToken标记不需要进行令牌校验。
    采用@CrossOrigin标记,让接口能够跨域访问,支持AJAX跨域请求。

        @ApiOperation(value = "提交日志")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "logData", value = "日志数据", dataType = "LogData", paramType = "body")
        })
        @RequestMapping(path = "/log/add", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
        @IgnoreToken
        @CrossOrigin
        public ResponseData addLog(@RequestBody LogData logData) {
    
            String logID = logService.logToFile(logData);
    
            return ResponseData.success(logID);
        }
    

    日志文件格式的设计

    日志以文本格式保存,每条日志按行写入。
    日志行的格式如下:

    时间戳|日志ID|日志数据JSON
    

    日志格式截图
    日志按行保存的好处是,可以利用BufferedReader的readLine方法进行日志的按行读取。
    日志按行保存,要对日志数据JSON部分进行处理,把换行符替换掉。

    日志按行保存的主要代码

        public String logToFile(LogData logData){
            LogGroupData groupData = getLogGroup(logData.getKey());
            logData.setGroupID(groupData.getGroupID());
    
            String date = ConvertUtil.formatDate(new Date(), "yyyyMMdd");
            String path = PathUtil.combine(logFolder, "LOG" + date + ".log");
    
            String uuid = UUID.randomUUID().toString();
            String json = JSON.toJSONString(logData);
    
            StringBuilder sb = new StringBuilder();
            sb.append("[" + ConvertUtil.formatDate(new Date()) + "]|");
            sb.append(uuid + "|");
            for (int i = 0; i < json.length(); i++) {
                char c = json.charAt(i);
                if (c == '\r' || c == '\n')//换行符替换为空格
                    sb.append(" ");
                else
                    sb.append(c);
            }
    
            FileUtil.appendLine(path, sb.toString());
    
            return uuid;
        }
    

    日志写入文件的主要代码

    利用RandomAccessFile类写入,用文件琐控制并发。如果是海量日志的场合,可以部署多几个采集点。

        public static void appendLine(String path, String line) {
    
            RandomAccessFile fout = null;
            FileChannel channel = null;
            try {
                File file = new File(path);
                if (!file.getParentFile().exists()) {
                    file.getParentFile().mkdirs();
                }
                byte[] bytes = line.getBytes("utf-8");
                fout = new RandomAccessFile(file, "rw");
                long filelength = fout.length();//获取文件的长度
                fout.seek(filelength);//将文件的读写指针定位到文件的末尾
                channel = fout.getChannel();//打开文件通道
                FileLock fileLock = null;
                while (true) {
                    try {
                        fileLock = channel.tryLock();//不断的请求锁,如果请求不到,等一秒再请求
                        break;
                    } catch (Exception e) {
                        logger.error("[FileUtil.appendLine]请求琐失败。");
                        Thread.sleep(1000);
                    }
                }
                fout.write(bytes);
                fout.writeChar('\n');
                fileLock.release();
                channel.close();
                fout.close();
    
            } catch (Exception e1) {
                logger.error(e1.getMessage(), e1);
            } finally {
                IOUtil.close(channel);
                IOUtil.close(fout);
            }
        }
    

    日志汇总

    通过定时任务,把各个采集点的日志文本导入数据库/大数据存储。

    展开全文
  • 构建规范制定–元数据注册–日志采集–自动化计算–可视化展现的一体化系统 场景一:日志分流 1)当代互联网经常出现短时间内流量热点爆发,集中统一的采集方案已不能满足需求。 2)在日志解析和处理的过程中必须...

    目前大型互联网企业每天日志量以亿为单位,面临的挑战已经不是采集的技术本身,而是如何实现日志数据的结构化。构建规范制定–元数据注册–日志采集–自动化计算–可视化展现的一体化系统

    场景一:日志分流
    1)当代互联网经常出现短时间内流量热点爆发,集中统一的采集方案已不能满足需求。

    2)在日志解析和处理的过程中必须考虑以下几点:

    ①业务分流:要求分离的业务之间没有明显影响,爆发热点不影响日常业务处理

    ②日志优先级控制

    ③根据业务特点的定制处理

    分治策略是核心。日志请求URL根据业务的变化而不同,尽早的进行分流,降低日志处理过程中的分支消耗。

    场景二:采集计算一体化
    随着数据量的增大,采集–分类–处理的流程是的系统维护成本猛增,同时传统的分类是通过URL路劲正则匹配的方式,大量的匹配会消耗巨大的服务器硬件资源,因此必须将采集–计算作为一个整体来设计系统。阿里制定了两套日志规范和与之对应的元数据中心。

    1)对于PV日志:通过简单的配置部署,用户可将任意页面的流量进行聚类分析并查询聚合分析的结果,包括:

    在这里插入图片描述
    2)对于交互日志:通过注册与所在页面独立的控件,用户可以获取对应的埋点代码,自动获取实时统计数据和可视化试图。

    场景三:大促保障
    1)服务器推送配置到客户端

    2)日志分流,结合日志优先级和日志大小拆分日志服务器

    3)实时处理的优化

    基于以上三点,在流量爆发时评估峰值数据量,通过服务器端推送配置客户端,对非重要日志进行限流,错峰后恢复。推送的配置包括:

    在这里插入图片描述

    展开全文
  • CX日志采集

    2018-05-26 16:31:48
    EMC CX设备日志采集,常规巡检,小白必备。老司机笔记
  • 【日志&运维】日志采集系统概述
  • 目前使用最广泛的、用于系统日志采集的海量数据采集工具有 Hadoop 的 Chukwa、ApacheFlumeAFacebook 的 Scribe 和 LinkedIn 的 Kafka 等。 以上工具均采用分布式架构,能满足每秒数百 MB 的日志数据采集和传输需求。
  • 【日志&运维】ELK日志采集系统介绍
  • 2-日志平台-日志采集

    千次阅读 2021-05-17 20:48:03
    日志采集: 流程 要做的事情 日志规范 固定字段定义 日志格式 日志采集 落盘规则 滚动策略 采集方法 日志传输 消息队列 消费方式 Topic规范 保存时间 日志切分 采样 过滤 ...
  • 一种日志采集装置和日志采集方法

    千次阅读 2016-01-09 10:42:29
    本发明涉及一种日志采集装置和方法。其中装置包括至少一个用于日志收集的客户端和至少一个用于日志记录的服务器;所述客户端和服务器之间通过网络进行实时的日志信息发送。方法包括:客户端生成日志信息并将日志信息...
  • 针对如何采集必要的日志数据同时尽可能降低其运行期开销的问题,文章首先提出日志采集粒度的概念,然后设计并编程实现一个面向云计算的粒度自配置日志采集平台。其中,平台构成模块包括:日志采集工具、存储日志采集粒度...
  • filebeat 6.3.0 轻量型日志采集器 当您要面对成百上千、甚至成千上万的服务器、虚拟机和容器生成的日志时,请告别 SSH 吧。Filebeat 将为您提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂
  • Filebeat日志采集

    万次阅读 2018-03-17 10:57:20
    Filebeat日志采集 Filebeat日志采集 一、软件介绍 Filebeat 1,概述 2,工作流程 3, 相关链接 二、安装部署 1,安装前准备 2,windows 3,linux 4,配置filebeat 1)filebeat模块 2)安装filebeat模块 3)...
  • 好用的系统日志采集工具
  • 海量日志采集、解析实践.zip
  • 海量日志采集、解析实践.pdf
  • 系统日志采集方法

    千次阅读 2020-07-18 22:53:30
    系统日志采集方法特征 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦。 支持近实时的在线分析系统和分布式并发的离线分析系统。 具有高可扩展性,也就是说,当数据量增加时,可以通过增加节点进行水平扩展...
  • java 游戏日志采集系统架构介绍。。
  • Kubernetes日志采集与分析的最佳实践 分享嘉宾:阿里云日志服务技术专家 元乙
  • 日志采集小工具

    2018-06-12 12:18:29
    之前使用过logstash来采集log4j的消息,发现采集到的数据会出现乱序,但是logstash的资料网上很少,用起来着实麻烦,,,而我需要的功能也很简单因此,我决定自己写一个日志采集工具首先,为了解决乱序问题,这个...
  • 网络游戏-日志采集服务器及数据包分发、日志聚类方法及网络.zip
  • 行业分类-物理装置-业务日志采集系统和方法.zip
  • Linux系统下改进的日志采集模块.pdf
  • evtsys服务器日志采集工具 win2003 32bit C:\WINDOWS\system32>evtsys.exe -i -h 192.168.1.1 -p 514 Cent OS 6.5 32bit 日志服务器 192.168.1.1 upd端口514
  • nxlog 日志采集

    2017-11-20 13:44:00
    Nxlog 主要用于各业务后端服务的日志采集,windows环境和linux环境都支持。 RPM 包:rpm -ivh http://nxlog.co/system/files/products/files/1/nxlog-ce-2.9.1716-1_rhel6.x86_64.rpm 检测: rpm -qa |grep ...
  • Linux:日志采集

    千次阅读 2018-04-16 22:59:25
    一·日志采集规则4.14*.* 文件名称日志类型.日志级别auth 用户登陆日志(pam产生日志)authpriv 服务认证日志(sshd认证)kern 内核日志cron 定时任务日志lpr 打印机日志mail 邮件日志news 新闻user 用户...
  • QQ空间日志采集器是智者软件推出的采集系列的首款软件,可以根据关键词、QQ号两种方式进行采集QQ空间日志,支持自定义过滤代码,支持自定义编辑,并支持自定义编码进行日志导出为TXT或HTM! QQ空间日志采集器截图
  • Flume日志采集多级Agent

    千次阅读 2017-06-15 14:39:10
    Flume就是这样的日志采集系统主要有三个组件: Source:消费web系统这样的外部数据源中的数据(一般就是web系统产生的日志),外部数据源会向flume发送某种能被flume识别的格式的事件,有以下几种类型:avro 、exec...
  • Flume日志采集框架

    千次阅读 2018-10-12 13:12:46
    Flume是Cloudera提供的一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。 Flume可以采集文件,socket数据包、文件夹等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,096
精华内容 31,238
关键字:

日志采集