日志服务+函数服务实战(1): 访问日志地域、运营商实时分析

概述

ETL(Extract-Transform-Load)用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。

传统ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

在今天,随着业务需求的日益增加,不同系统的相互大批量数据交互也已成为常态。数据在不同系统中流动起来,有助于充分发掘日志大数据的价值。

在云上,AWS Glue是一个功能完备的ETL产品,通过DevEndpoint、Crawler、MetaStore等模块,分别在ETL函数编写、数据识别加载、meta管理等方向做到了不错的用户体验。如同大部分业界方案,Glue也是batch触发的ETL模型,建议数据源是S3。但对于流式数据(如Kinesis Stream)则不能直接使用,提供的方案是:用户先将数据导入到S3,再使用Glue分析S3上的数据。

日志服务的LogHub是流式的数据中心,日志写入后可实时消费。日志服务ETL面向的正是这些流式写入的数据,提供准实时(1分钟级别)的ETL作业。

日志服务ETL

两个场景

  • 一站式建模分析

通过日志服务,快速完成日志采集、加工、查询、分析。

  • 数据交换

为数据的目的端落地提供支撑,构建云上大数据产品间的数据管道。

ETL模型

实时数据流处理,基于流的模型。ETL Trigger轮询源logstore下各shard的写入位置,并定时生成三元组信息触发函数执行,该三元组用于标识本次ETL任务所应该处理的数据范围。

通过shard的并发做到水平扩展,shard弹性伸缩保证了ETL的动态伸缩,通过定时器触发作业完成持续的数据加载。

在ETL任务执行层面,考虑UDF的灵活性,加工逻辑会跑在函数服务的函数上,而函数服务提供了按需付费、弹性伸缩能力以及自定义代码执行功能,正是很多云上用户所需要的。另一方面,从用户数据端到端延时、大数据吞吐、SQL易用性角度,日志服务未来也考虑把ETL的runtime扩展到流计算引擎(例如阿里云流计算)上,去服务更多的用户场景。

ETL日志

  • ETL过程日志

这是一类是执行过程日志,这一部分日志是在ETL执行过程中每执行一步的记录关键点和错误,包括某一步骤的开始、结束时间、初始化动作完成情况,模块出错信息等。记录日志的目的是随时可以知道ETL运行情况,如果出错了,可以知道哪里出错。

函数运行产生的日志记录了数据加工过程中关键点、异常:

  • ETL调度日志

调度日志只记录ETL任务开始的时间、结束时间,任务是否成功以及成功返回的信息。如果ETL任务出错了,不仅要形成ETL出错日志,而且要向系统管理员发送报警邮件或短信。

在调度日志的基础上,可以构建出报表统计ETL的总体运行状况,会在下文实践部分介绍。

“日志服务+函数服务”ETL的优势

  • 一站式采集、存储、加工、分析
  • 全托管加工任务,按时间触发,自动重试
  • 资源按shard水平扩展,满足大数据需求
  • 基于函数服务提供数据加工,弹性资源,按需付费
  • ETL对用户透明,提供日志、报警功能
  • 持续增加内置函数模板,降低主流需求下的函数开发代价

日志服务ETL实战

对于数据分析工程师而言,ETL过程往往占据整个项目工作60%~70%的工作量。日志服务的目标是使用内置的函数模板的前提下,将构建ETL的时间缩短到15分钟内。

题目:ip归属查找

通过Nginx、apache等HTTP服务器构建的软件,可以记录每一个用户访问日志。本次实践的题目是:看看我们到底服务了哪些地区的用户,这些用户通过什么链路访问我们的服务。

第一步:日志集中化存储

我们使用日志服务的Logtail客户端快速接入机器上的日志文件。本节请参考日志服务实时采集数据,本文不作赘述。

客户端采集nginx访问日志将会集中存储到日志服务的一个logstore中,如下图,forward字段的ip记录了用户请求的来源:

第二步:云端数据加工

1. 登录函数服务控制台创建service

在高级配置中,建议为ETL function配置加工过程中的日志记录的存储logstore,方便通过日志来定位加工过程中的异常行为。为函数授予日志服务AliyunLogFullAccess权限,函数在运行过程中会读源logstore数据,数据处理后再写到目标logstore。

2. 通过内置模板创建函数

默认的函数配置如下:

3. 在函数上新建日志服务触发器

日志服务触发器配置如下:

指定数据源为第一步中采集到中心化nginx日志logstore,例如本例子的project:etl-test/logstore:nginx_access_log。

日志服务将轮询logstore的数据,当数据持续产生时,每60秒(3秒~600秒,可配置)创建一次ETL任务,并调用函数执行。触发函数执行以及函数执行结果将会记录到触发器日志logstore:etl-trigger-log中。

函数配置因不同函数的实现和功能而已,ip-lookup的详细配置项说明请参考README

4. 保存配置,等待1分钟后ETL任务开始执行

可以关注一下ETL过程日志、调度日志,按如上配置,分别在logstore:etl-function-log、etl-trigger-log。

可以通过查询语句构建出如本文日志部分所示的报表:

左上图是每分钟调度函数执行的触发次数,构建自查询语句:

project_name : etl-test and job_name : ceff019ca3d077f85acaad35bb6b9bba65da6717 | select from_unixtime(__time__ - time % 60) as t, count(1) as invoke_count group by from_unixtime(__time__ - time % 60) order by t asc limit 1000

右上图是ETL任务成功、失败的比例,构建自查询语句:

project_name : etl-test and job_name : ceff019ca3d077f85acaad35bb6b9bba65da6717 | select task_status, count(1) group by task_status

左下图是每5分钟的摄入的日志字节数,构建自查询语句:

project_name : etl-test and job_name : ceff019ca3d077f85acaad35bb6b9bba65da6717 and task_status : Success | select from_unixtime(__time__ - time % 300) as t, sum(ingest_bytes) as ingest_bytes group by from_unixtime(__time__ - time % 300) order by t asc limit 1000

右下图则是每5分钟摄入处理的日志行数,构建自查询语句:

project_name : etl-test and job_name : ceff019ca3d077f85acaad35bb6b9bba65da6717 and task_status : Success | select from_unixtime(__time__ - time % 300) as t, sum(ingest_lines) as ingest_lines group by from_unixtime(__time__ - time % 300) order by t asc limit 1000

第三步:加工后数据建模

机器上的nginx日志经由Logtail实时采集到源logstore,再由ETL准实时加工后写出到目标logstore。经函数处理后带ip信息数据如下:

对比加工前后,我们发现,新的数据增加了四个字段(country、省province、city、isp),可以知道:ip源117.136.90.160的请求来自中国山西太原,运营商是中国移动。

接下来,使用日志服务的日志分析功能查询一个时间段内请求ip的城市和isp分布。通过如下两个查询语句构建报表:

* | select city, count(1) as c group by city order by c desc limit 15
* | select isp, count(1) as c group by isp order by c desc limit 15

至此,本节的实践内容结束。欢迎大家试用自定义ETL。

时间: 2025-01-01 06:55:54

日志服务+函数服务实战(1): 访问日志地域、运营商实时分析的相关文章

自己动手玩访问日志(1):API网关访问日志

访问日志(Acccess Log)是由web服务生成的日志,每一次api请求都对应一条访问记录,内容包括调用者IP.请求的URL.响应延迟.返回状态码.请求和响应字节数等重要信息. 阿里云API网关提供API托管服务,在微服务聚合.前后端分离.系统集成上为用户便利的产品. 访问日志对于API网关的意义尤为重要,它可以帮助使用者打破黑盒,了解其web服务的运行状况.但实际上,云服务厂商为其用户提供访问日志确实不小的挑战: 日志分发到用户空间的实时性:从用户访问服务产生日志到日志对用户可见,业界不少

10分钟精通Nginx访问日志分析统计

简介 很多个人站长在搭建网站时使用nginx作为服务器,为了了解网站的访问情况,一般有两种手段: 使用CNZZ之类的方式,在前端页面插入js,用户访问的时候触发js,记录访问请求. 利用流计算.或离线统计分析nginx的access log,从日志中挖掘有用信息. 两种方式各有优缺点: CNZZ使用起来比较简单,各种指标定义清楚.但这种方式只能记录页面的访问请求,像ajax之类的请求是无法记录的,还有爬虫信息也不会记录. 利用流计算.离线计算引擎可以支持个性化需求,但需要搭建一套环境,并且在实时

《ELK Stack权威指南(第2版)》一3.1 Nginx访问日志

第3章 场 景 示 例 前面虽然介绍了几十个Logstash插件的常见配置项,但是过多的选择下,如何组合使用这些插件,依然是一部分用户的难题.本章将列举一些最常见的日志场景,演示针对性的组件搭配,希望能给读者带来启发. 本章介绍的场景包括:Nginx访问日志.Nginx错误日志.Postfix日志.Ossec日志.Windows系统日志.Java日志.MySQL慢查询日志.Docker容器日志. 3.1 Nginx访问日志 访问日志处理分析绝对是使用ELK stack时最常见的需求.默认的处理方

log-如何配置tomcat把访问日志也输出到tomcat命令窗口

问题描述 如何配置tomcat把访问日志也输出到tomcat命令窗口 目前我用的是tomcat7或8,请问各位配置把localhost_access_log.txt的日志也输出到tomcat命令窗口. tomcat命令窗口的日志存放在Tomcat 8.0logs目录下,该目录下有多个文件?,都是记录日志的,我发现 localhost_access_log.txt的?日志只会记录在该文件中,请问怎么配置让它也可以输出到tomcat命令窗口? 解决方案 配置Tomcat的访问日志格式化输出配置Tom

Acision 将面向移动运营商推出其云服务交付模式

移动数据全球领导商 Acision 今天公布了其云服务交付模式的重要细节,并计划从十月份开始推出相关解决方案.Acision 新的http://www.aliyun.com/zixun/aggregation/13763.html">软件即服务 (SaaS) 部署方式让移动运营商能够从云端获得并向客户提供新的增值服务,同时最大程度地挖掘他们的增收潜力,从而更快.更具成本效益地跟上日新月异的技术进步和终端用户的喜好. 分析师在 Visiongain 2011 中预计,全球云计算市场到2016

RIM发布近距通信功能 提升运营商服务

RIMhttp://www.aliyun.com/zixun/aggregation/32086.html">首席执行官Jim Balsillie日前证实,公司将紧随谷歌的脚步,销售配备近距通信技术的黑莓设备.Balsillie在移动世界大会上称,近距通信技术将成为RIM 战略的一部分,该技术将使得黑莓智能手机用户很方便的访问各种服务,问题的关键是运营商服务的消费以及扩宽服务的可用性.Balsillie还称,运营商对于应用商店的联合计费对于驱动移动平台中的服务十分必要.系统提供的针对黑莓应

云计算综合服务提供商:电信运营商的未来之路

过去几年,云计算的迅猛发展成为了电信.互联网和IT业瞩目的焦点,尽管还存在着一些争议和需要跨越的障碍,但未来将是一个"云"的时代已经成为了业界的共识,这对正在积极寻求转型之路的电信运营商来说,既是一个新的机会也是更大的挑战,如何适应云计算带来的业务模式的变革,调整自身的转型战略以顺应产业的发展趋势,成为运营商面临的当务之急.为此,本刊记者采访了北京邮电大学管理学院副院长潘煜教授,他认为云计算的出现为运营商转型提供了一个新的大思路,向云计算综合服务提供商转型或许是未来运营商转型的方向.

运营商SDN中的服务保障案例

业界对运营商SDN以及对电信运营商迁移到运营商SDN的原因有很大的兴趣,最近的关注点是技术和经济可行性与一些有前途的试验,尽管SDN/NFV的大部分商业目标依赖于这些缺失的部分,但是服务保障的主题在业界的讨论中几乎不存在. 软件定义网络有很多强大的功能,最重要的是他们在为云应用程序动态提供服务时做出智能服务部署决策的能力.SDN网络可以在需要时自动使宽带可用,以满足特定云应用程序的需求.在不可预测的云环境中,网络资源按需消耗和释放,并且流量模式可能在瞬间发生变化,这种智能资源分配至关重要. 然而

运营商增值服务面临新问题

本刊记者 徐超 2009年3月,中消协发布报告称,全国电信服务和移动电话在2008年均排在了投诉下降的前十位,其中电信服务投诉比例下降为18.1%,移动电话投诉比例下降16.9%. 经过三年的不懈整顿,电信增值服务中的投诉率稳步下降.违规SP的存在空间已经大大压缩了.一位已从业6年的SP人士告诉记者,"这两年倒下了不知道多少中小SP,以前靠打监管擦边球生存的SP大批消失,没消失的也都在努力转型,整个行业的性质已经完全改变了." 关于电信增值业务的"重拳"整顿正在深刻