天天看点

轻松搞定实时分析及监控大屏

通过最佳实践帮助您实现上述案例效果

数据格式如下:

主要字段说明如下:

字段名称

字段说明

$remote_addr

发送请求的客户端ip地址

$remote_user

客户端登录名

$time_local

服务器本地时间

$request

请求,包括http请求类型+请求url+http协议版本号

$status

服务端返回状态码

$body_bytes_sent

返回给客户端的字节数(不含header)

$http_referer

该请求的来源url

$http_user_agent

发送请求的客户端信息,如使用的浏览器等

真实源数据如下:

2.1 数据采集概述

首先需要将该网站产生的日志实时采集上来才有下一步的加工分析可能。本文采用常见的开源工具:logstash,logstash是一种分布式日志收集框架,非常简洁强大适合用来做日志数据分析。最终目的是将log数据采集至datahub。

2.2 logstash安装与配置

配置前须知:

阿里云流计算为了方便用户将更多数据采集进入datahub,提供了针对logstash的datahub output插件。

logstash安装要求jre 7版本及以上,否则部分工具无法使用。

操作步骤:

步骤2: 通过如下命令解压即可使用:

步骤4: 配置logstash任务.conf,示例如下:

步骤5: 启动任务示例如下:

步骤6: 任务启动成功,如下示意图:

轻松搞定实时分析及监控大屏

【备注】启动logstash任务可以在datahub topic目标源创建之后。

2.3 小结

阿里云流计算为了方便用户将更多数据采集进入datahub,提供了针对logstash的datahub output插件。使用logstash,您可以轻松享受到logstash开源社区多达30+种数据源支持(file,syslog,redis,log4j,apache log或nginx log),同时logstash还支持filter对传输字段自定义加工等功能。

3.1 数据存储概述

通过logstash实时采集上来的日志数据存储在datahub中,通过阿里云数加·流计算处理的流数据将存储在云数据库rds中。在使用数据存储情况先,需要首先来在阿里云流计算中注册其存储信息,即可与这些数据源进行互通。

3.2 datahub配置

目前datahub都是定向开通,需要用户邮件申请。

创建project和topic

项目(project)是datahub数据的基本组织单元,下面可以包含多个topic。

轻松搞定实时分析及监控大屏

步骤2:点击新创建的project操作栏中的查看,进入project创建topic。

轻松搞定实时分析及监控大屏

步骤3:按照弹出框来填写相关配置项,具体如下图所示:

轻松搞定实时分析及监控大屏

配置项完成后,点击创建即可完成datahub具体project下topic的创建。

同样方式创建coolshell_log_detail、coolshell_log_fact两个topic(具体topic结构详见章节3.2 datahub配置)。

如下图所示:

轻松搞定实时分析及监控大屏

3.3 rds数据表创建

目前阿里云数加·streamcompute只支持rds for mysql数据源。

轻松搞定实时分析及监控大屏

3.4 小结

根据数据结构设计中涉及到的datahub topic以及rds表结构进行建表,为后续案例顺利展开提供准入条件。

接下来我们就需要对流数据进行加工和处理,目前阿里云数加·流计算支持stream sql语法预检查、sql在线调试、代码版本管理等ide开发环境。

4.1 角色授权(仅限首次开通)

此步骤仅适用于首次开通阿里云数加·流计算服务,需要给一个名称为aliyunstreamcomputedefaultrole的系统默认角色给流计算的服务账号,当且仅当该角色被正确授予后,流计算才能正常地调用相关服务。

步骤1: 首次登录 streamcompute将会有弹出框,点击前往授权。如下图所示:

轻松搞定实时分析及监控大屏

步骤2: 点击同意授权即可完成将默认角色aliyunstreamcomputedefaultrole授予给流计算 服务账号。此时即完成了授权的全部内容,如下图所示:

轻松搞定实时分析及监控大屏

4.2. 注册datahub数据存储

数据源在使用前必须经过流计算里面的注册过程,注册相当于在流计算平台中登记相关数据源信息,方便后续的数据源使用。

步骤1:登录 streamcompute,点击开发,并在左侧切换至数据存储。

轻松搞定实时分析及监控大屏

步骤2: 选择datahub数据源右键 注册数据源或 点击+,如下图所示:

轻松搞定实时分析及监控大屏

步骤3: 输入注册的数据源信息,单击 注册,如下图所示:

轻松搞定实时分析及监控大屏

步骤4: 注册成功的数据源信息,可以通过点击datahub数据源逐层展开,然后右键方式 查看数据详情,如下图所示:

轻松搞定实时分析及监控大屏

备注:细心用户会发现在topic数据预览中显示暂无数据,这是因为本文是模拟一个场景,并没有真实流数据进入所以logstash并不会进行采集。接下来我们将通过shell命令模拟数据流动。

注册信息说明:

project为datahub中具体对应的project为demo

4.3 注册rds数据存储

当前rds仅支持mysql引擎的数据库,其他的数据库引擎暂时不支持。

步骤1: 登录streamcompute,点击开发,并在左侧切换至数据存储。

轻松搞定实时分析及监控大屏

步骤2:选择rds数据源并右键点击注册数据源。

轻松搞定实时分析及监控大屏

步骤3:输入注册的数据源信息,点击注册。

步骤4:逐层展开rds数据源,可查看到已被注册在流计算的相关rds数据表。

轻松搞定实时分析及监控大屏

地域:选择rds地域,建议在购买rds资源的时候选择华东2或尽可能靠近华东地域。

instance:填写rds实例id。

databasename:填写需要连接的数据库名称。

username/password:数据库登录名称/密码。

4.4 创建stream sql任务

处理逻辑1

新建stream sql任务来对流数据进行分析和处理。先来处理coolshell_log_tracker到coolshell_log_detail的处理逻辑。

轻松搞定实时分析及监控大屏

步骤1:登录 streamcompute,点击开发,并新建文件夹(文件夹深度最大值为5)。

步骤2:输入需要新建的文件夹名称并选择存储位置,点击新建。

轻松搞定实时分析及监控大屏

步骤3:选择新建的文件夹右键选择新建任务。

轻松搞定实时分析及监控大屏

步骤4:输入要创建的任务名称,任务类型默认为stream sql,点击新建。

轻松搞定实时分析及监控大屏

步骤5: 创建流式源表,双击需要引用的源表coolshell_log_tracker,并点击表详情页中作为输入表引用。

轻松搞定实时分析及监控大屏
轻松搞定实时分析及监控大屏

步骤6:创建流式结果表,双击需要引用的datahub topic:coolshell_log_detai,并点击表详情页中作为结果表引用。

步骤7:编写stream sql处理逻辑。

编写完成的stream sql任务如下图所示。

轻松搞定实时分析及监控大屏

调试stream sql任务

数据开发为用户提供了一套模拟的运行环境,在该环境中运行stream sql可以实现和生产完全隔离和支持构造测试数据。

步骤1: 编写好stream sql任务后,点击 调试 对该任务进行调试。

轻松搞定实时分析及监控大屏

步骤2: 构造调试数据,首先下载调试模板至本地进行构造调试数据(只支持csv)。

步骤3: 本地构造好数据后,选择调试数据进行调试stream sql任务,点击 调试。

轻松搞定实时分析及监控大屏

步骤4: 查看调试结果,如下图:

轻松搞定实时分析及监控大屏

验证结果正确无误后,可右键点击调试结果将其下载到本地(csv文件)用于下一处理逻辑的调试数据。

处理逻辑2

接下来处理coolshell_log_detail到coolshell_log_fact的处理逻辑。如下示意图:

轻松搞定实时分析及监控大屏

步骤1: 同样在上述文件目录下新建stream sql任务,点击新建。

轻松搞定实时分析及监控大屏

步骤2: 创建流式源表,双击需要引用的源表coolshell_log_detail,并点击表详情页中作为输入表引用。

轻松搞定实时分析及监控大屏

步骤3: 创建流式结果表,双击需要引用的datahub topic:coolshell_log_fact,并点击表详情页中作为结果表引用。

步骤4: 编写流式数据处理逻辑,sql如下:

步骤5:同上的处理逻辑,选择上一环节中的调试数据,进行本次逻辑的调试。

轻松搞定实时分析及监控大屏

如调试结果所示,确认是否为自己业务所需要的正确结果。

处理逻辑3和处理逻辑4

同样安装上述步骤下来配置adm_refer_info到adm_user_measures的处理逻辑。主要sql如下:(统一引用输入数据源为coolshell_log_fact,输出结果数据源为rds表:adm_refer_info和adm_user_measures)

轻松搞定实时分析及监控大屏

---adm_refer_info中的处理逻辑---

--adm_user_measures中的处理逻辑---

附录:adm_region_measures和flyingline_coordinates处理逻辑

4.5. 上线stream sql任务

当您完成开发、调试,经过验证stream sql正确无误之后,可将该任务上线到生产系统中。

步骤1: 点击上线 即可将上述两个stream sql任务依次一键发布至生产系统。

轻松搞定实时分析及监控大屏

步骤2: 选择coolshell_log_detail任务,点击上线。

轻松搞定实时分析及监控大屏

步骤3: 选择coolshell_log_fact任务,点击上线。

轻松搞定实时分析及监控大屏

步骤4: 经过上述步骤已将任务上线至生产环境,但该任务处于未启动状态,需要进入运维中依次启动上述任务。

轻松搞定实时分析及监控大屏

步骤5:点击启动按钮,在启动coolshell_log_detail任务时弹出框中选择 指定读取数据时间 一定要小于实时采集任务的启动时间。点击按以上配置启动。

轻松搞定实时分析及监控大屏

任务处于启动中的状态。具体如下图所示:

轻松搞定实时分析及监控大屏

当任务正常启动后期状态如下图所示:

轻松搞定实时分析及监控大屏

也可点击操作栏中的查看,进行任务监控仪表盘。

轻松搞定实时分析及监控大屏
轻松搞定实时分析及监控大屏

步骤6:以同样的方式启动coolshell_log_fact任务,启动时间选择到上述任务正常启动时间前即可。最终配置的工作流如下图:

轻松搞定实时分析及监控大屏

从图中可以看出数据表与流式任务之间的处理逻辑和上下游关系。

步骤7: 以同样的方式将adm_user_measures和adm_refer_info两个流式任务上线。

4.6 确认结果输出

当所有流式任务跑起来后,需要确认datahub topic/rds结果表中的数据输出情况。

步骤1: 首先确认datahub结果情况,可通过点击进入某topic然后进行数据抽样。

轻松搞定实时分析及监控大屏
轻松搞定实时分析及监控大屏

步骤2: 其次确认rds表数据写入情况,登录dms for rds,如下图:

轻松搞定实时分析及监控大屏

4.7 小结

本章主要针对采集上来的日志数据进行流式任务处理和分析,并根据数据结果链路图中逻辑关系进行了一定程度的数据处理,最终将需要在大屏上展示的数据写入云数据rds中。在阿里云数加·流计算中提供与生产完全隔离的调试环境,当任务调试无误后在进行发布至生产系统中。

相较于传统图表与数据仪表盘(如通过离线日志分析的结果展现案例),如今的数据可视化更生动并可即时呈现隐藏在瞬息万变且庞杂数据背后的业务洞察。

轻松搞定实时分析及监控大屏

5.1 创建rds数据源

经过数据实时采集、流式数据的处理,将结果数据写入rds,为了较好的展现并洞察业务数据,我们需要在datav中新建数据源来源。

轻松搞定实时分析及监控大屏

步骤2:点击 datav数据可视化,进入datav开发页面。

轻松搞定实时分析及监控大屏

步骤3:在页面中找到数据源栏,点击+进行配置数据源。

轻松搞定实时分析及监控大屏

步骤4: 选择类型为云数据库rds版,并配置要连接的数据库信息,点击测试,测试成功后点击确定保存配置信息即可。

轻松搞定实时分析及监控大屏

5.2 创建datav大屏

经过数据实时采集、流式数据的处理,将结果数据写入rds,为了较好的展现并洞察coolshell网站的业务数据,我们需要在datav中新建数据源来源。

步骤1: 在项目栏中点击 新建 +,进行创建大屏项目。

步骤2: 进入模板页,可以选择具体模块进行,也可以选择空白页面进行创建。本案例选择第一个模板进行构建coolshell网站运营数据分析的大屏。

轻松搞定实时分析及监控大屏

步骤3:点击图表左上角删除按钮进行删除不需要的图表,并调整布局如下图所示:

轻松搞定实时分析及监控大屏

步骤4:需要修改模板中的元素。首先点击【中国公路物流指数】,在右侧中修改其显示内容为【coolshell.cn运营指数】,同样修改其他显示字样如下图所示:

轻松搞定实时分析及监控大屏

步骤5:配置日流量量数据。点击日流量并在右侧切换至面板数据tab。

轻松搞定实时分析及监控大屏

步骤6:选择数据源类型为上一章节配置的数据源。

轻松搞定实时分析及监控大屏

步骤7:编辑日浏览量翻牌器的sql如下:

轻松搞定实时分析及监控大屏

步骤8:编辑日请求来源翻牌器的sql如下,并勾选自动更新。

轻松搞定实时分析及监控大屏

步骤9:删除设备pv/uv趋势的现有柱状图替换为双轴折线图,并配置数据如下(勾选底部 自动更新)。

轻松搞定实时分析及监控大屏

步骤10: 删除请求来源占比的现有饼图替换为【指标-轮播列表】配置数据如下(勾选底部自动更新)。

轻松搞定实时分析及监控大屏

步骤11: 其中地图暂不进行设置(备注:有兴趣朋友可以根据logstash的geoip地址查询归类研究下pv或者用户的地域分布)。

步骤12:点击有上角预览 进行查看配置后的效果。

轻松搞定实时分析及监控大屏

预览效果如下所示:

轻松搞定实时分析及监控大屏

5.3 小结

如果您已经熟悉使用整套解决方案,可以根据个性化定制如下大屏并对接rds数据。

轻松搞定实时分析及监控大屏

常见问题

q:在使用logstash向datahub实时推送数据时发现报time out。

q:修改stream sql后也进行了上线,但是并没有生效。

a :一般情况下,点击上线后需要在【运维】中进行暂停任务->停止任务->启动任务,新代码才能才生效。

q:配置了数据可视化datav大屏后,在预览情况下发现数据不自动刷新。

a :需要在大屏配置中勾选数据底部的自动更新,并根据需求填写隔多少秒自动刷新一次数据。