日志实时分析:从入门到精通
为什么要实时分析日志
做业务的人,常常需要面临以下问题:
- 产品的受欢迎程度怎么样?该重点投入到哪个功能中?
- 各个营销渠道的流量怎么样? 该向哪个渠道投入更多资源?
- 各个阶段的转化率、留存率有多少?有哪些瓶颈点需要优化?
如果没有数据,就只能够靠瞎猜,靠经验来判断。一旦业务方向走偏,一方面自己的业务量受影响,另一方面,耽误时间,给竞争对手以可乘之机。
日志是程序记录事件和状态的数据。通过日志数据的采集、存储和分析,我们可以很好地掌控产品的质量,辅助我们对开发、运营、运维等活动作出更加及时、更加精确的决策。在业务上,时间就是金钱,能够快速的实时分析出结果,能够及时的帮我们发现业务上的问题,节省我们的时间,帮助我们把业务能力提升不止一个量级。
那么,我们如何选择日志分析的架构呢?
日志分析:架构选型
在日志分析领域,用户可以选择开源的ELK方案,也可以选择阿里云日志服务。这篇文档在功能、价格方面对ELK、日志服务做了全方位对比,仅供参考。
一般选择技术架构的思路,我们从需求出发,再到落地成本呢,包括运维成本、财务成本,最终选择一个能够满足需求的最低成本的解决方案。具体到日志分析上,我们从这几点出发考虑:
功能的丰富程度,是否支持
- 关键字查询
- 聚合计算,表达式的丰富程度
- grouping 计算
- 多维数据join
性能和规模
- 数据写入吞吐量能达到多少?TB?PB?
- 数据计算一次计算能覆盖多大数据量?
实时性
- 从数据产生,到计算出结果,需要多久?秒级别?是实时的?还是离线的?
- 实时性和规模是不可调和的。
数据的重要程度
- 是每天运营的报表?一天算一次?还是要立刻拿到结果?
日志服务的分析提供哪些能力
日志服务分析语法,提供标准的SQL语法,可以同时使用sls的查询和SQL计算功能。
在API上,支持:
- 日志服务API
- JDBC,可对接任意开源JDBC协议客户端。
在功能上:
- 支持20+类别的函数,共150+函数,覆盖了常用的计算、统计、转换、安全审计功能。
- 支持可视化展示,可以实时的交互式查询,动态展示结果。
在性能上:
- 支持TB级别的计算能力。
- 秒级别内获取结果。
在生态上:
- 日志服务控制台,提供dashboard,提供线图、饼图、流图等多种类型的视图,对接文档
- 通过grafana插件连接日志服务,通过grafana可视化展示日志计算结果,对接文档。
- 无缝打通datav,通过datav大屏,展示日志的计算结果,对接文档。
开始试用Demo
若你没有账号,可以点击此处试用demo,查看分析功能,或者查看配置的各种仪表盘。
入门之路
日志服务是完全serverless的服务。只需要完成初次的对接,安装好客户端,配置好要采集哪些日志,日志接入参考文档。
之后即可在控制台完成分析功能。
开始使用日志分析之路:
- 打开日志服务控制台
- 选择对应的project
- 点击查询,进入查询页面
- 如果没有开启索引,请打开索引,如果没有没有创建列索引,则无法执行SQL,请在右上角查询分析属性,创建对应的列索引
- 在红框中输入查询条件
- 查询出结果后,添加到仪表盘
- 打开仪表盘,查看保存的查询结果
进阶之路
- 完整语法文档
一些精彩案例
- 5分钟搭建网站实时分析:Grafana+日志服务实战
- 使用jdbc访问日志服务分析和可视化日志
- AI驱动智能化日志分析 : 通过决策树给日志做聚类分析
- 增长黑客系列:今天比昨天增长多少?快使用环比函数来分析日志
- 分析用户的地理位置信息
- 搜索引擎背后的原理和中文日志检索
- 智能挖掘异常日志
- 流量骤增骤减,可以这样设置告警
- 游戏日志分析5:数据库与日志关联分析
- SQL老司机,在SQL中计算 array & map & json数据
- 日志OLAP:在SQL中使用UDF, lambda函数使用案例
- 丰富日志信息,日志服务和OSS外表进行关联分析
- SQL on log : 同比分析各种指标
- 精通日志查询: 如何翻页获取日志和计算结果