先快速介绍一下十二赞的日志收集系统:十二赞的日志收集系统,分为两块,一块是线上系统的各种报错、异常的日志收集,主要是各种线上代码运行期间产生,我们称之为log-collect,一块是用户行为操作的日志收集,主要是由各个业务系统根据用户的行为来上报,比如用户A访问了xx页面,用户B收藏了某某商品等,我们称之为eventdb。

基于这两块的日志收集,我们实现了一些自己非常自豪的特性。比如,基于log-collect,我们做到了能够主动去发现问题,抢在大多数客户发现异常之前,就把问题处理掉,从而做到不断地提高Saas系统的可用率和稳定性;基于eventdb,我们能做到非常完善的行为收集,将我们的返利模块、分销模块的准确度、实时性大幅度提高。

下面我们介绍一下系统的架构。

从需求上,我们认为log-collect是为了及时发现问题,并马上解决掉。但是这些日志,在我们解决掉问题之后,是不需要再保留这个日志的。比如,举个例子,用户注册的时候,可能输了一个12012345678的号码,这个号码是不对的,导致我们的验证短信发不出去,短信模块就会报错。我们的log-collect会收集到这条报错日志,马上告警。开发同学收到告警通知时,就马上去处理这个问题,用户输入120这个号段时,提示用户该号段是不被支持的,以后就再也不需要处理这个了,因为这条告警日志,我们是不存的,只存档15天就丢弃掉。

但是对于eventdb,我们的目标是为了对这些数据做分析,这些行为一般会跟财务相关,比如用户A通过用户B分享的链接进到了系统,5分钟之后有户A购买了商品付款了200元,2天后用户A退掉了其中的80元。这些数据,会影响到商家给用户B结算cps款项。类似这些数据,我们是永久存储的,不会抛弃。同时,这类数据,我们是要在保证准确性的基础上不断提高实时性的。所以对这类数据,我们有两条线来处理,一条是在线实时,一条是离线的一个小时跑一次数据的。

log-Collect

基于这种差异,我们在架构上也有不同。下面是log-collect的架构图:

https://ylpicture.oss-cn-beij...

我们每一台服务端机器上都有一个live tail,实时监控日志文件,一旦日志文件有新的写入,就立刻发送到http的一个日志网关。这个网关就立刻把这条件日志推送给一个广播服务器,并写入到一个数据库(数据库会清掉7天之前的数据。)这个数据丢给广播服务器了之后,会在特定的频道进行广播。我写了一些客户端,订阅广播,根据日志内容的不同,将日志发给倍洽上不同的告警频道。(关于bearychat/中文名倍洽,大家可以自行去其官网上了解)。手机上装了倍洽,就可以随时接受告警通知了:

https://ylpicture.oss-cn-beij...

eventDB

下图是eventDB的架构图:

https://ylpicture.oss-cn-beij...

与log-collect相同的,收到新的行为事件后,网关也会在一个特定的频道进行广播。不同的有两点,一点是另一条链路先把行为事件写入到阿里云的oss存储起来,然后写了crontab每小时、每天定期从oss文件里导入到eventDB这个数据库;另一点是广播客户端工作的事情也变成了实时写入到eventDB这个数据库。

在事件收集上,也不一样,log-collect是在所有的服务器上部署了LiveTail来从日志文件中读取,而eventDB是需要各个业务系统自己向日志网关来汇报事件的。

存入数据库之后,后续就是再对这些数据进行分析,查找用户的来源渠道,计算佣金等等操作了。
【原文链接】

十二赞日志收集与报警系统一览相关推荐

  1. Golang 在十二赞的深度应用

    Golang 在十二赞的深度应用 我们是"十二赞",一个致力于帮助电商卖家进入小程序的小团队,我们的主页是http://www.12zan.cn/.在实际运行中,我们使用了大量由g ...

  2. 今日新闻早报 简报十二条 最近的新闻大事一览 1月30日

    今日新闻早报,365资讯简报十二条,最近的新闻大事一览 [365资讯简报]每天一分钟,知晓天下事!2021年1月30日 星期六 农历腊月十八 1.外交部:1月31日起中方不再承认BNO护照作为旅行证件 ...

  3. web自动化笔记十六:日志收集

    日志的作用:     -调试程序     -了解系统程序运行情况,是否正常     -系统程序运行故障分析与问题定位     -用来做用户行为分析的数据统计 日志级别:是指日志信息的优先级.重要性或者 ...

  4. go语言日志收集系统

    0.项目地址 完整项目的GitHub地址 https://github.com/taw19960426/learning-go-language/tree/main/go-log-collect 一. ...

  5. rsyslog 日志收集

    rsyslog 无论在性能还是部署上都优于其它日志收集应用,因系统自带,需要新功能只需要做升级即可,方便部署! 一.Rsyslog特性 Multi-threading, high availabili ...

  6. 基于Flume的美团日志收集系统(二)改进和优化

    在<基于Flume的美团日志收集系统(一)架构和设计>中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计.在本节中,我们将会讲述在实际部署和使用过程中遇到的问 ...

  7. 第十二章 使用日志监控 - 日志监视器错误和陷阱

    文章目录 第十二章 使用日志监控 - 日志监视器错误和陷阱 日志监视器错误和陷阱 第十二章 使用日志监控 - 日志监视器错误和陷阱 日志监视器错误和陷阱 由于段冲突(访问冲突)导致进程停止. < ...

  8. JavaEE学习日志(六十二): jQuery遍历,jQuery事件,省市联动,左右互选

    JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇) JavaEE学习日志(六十二) jQuery jQuery遍历 传统遍历 jQuery对象遍历 jQuery全局函 ...

  9. ELK+Kafka 企业日志收集平台(二)这是原版

    上篇博文主要总结了一下elk.基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程.下面我们接着下面这个未完成的几个主题 4.Kibana部署; 5 ...

最新文章

  1. 单链表-删除单链表L中奇数号节点(双指针法)
  2. UC伯克利博士尤洋回国创业,求学期间破ImageNet纪录!已获超千万种子轮融资
  3. Linux - MiniFtp实现
  4. CSS进阶(10)—— 深入理解BFC结界
  5. Jmeter5.3(windows下)安装过程问题总结
  6. jdk8和hotspot_HotSpot的-XshowSettings标志的简单性和价值
  7. 若依的框架怎么样_若依框架的功能代码
  8. python mss_Python实现的连接mssql数据库操作示例
  9. css 语音,纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
  10. dreamweaver排列顺序怎么用_「化妆教程」粉底液是怎么用的?用在哪个具体步骤顺序...
  11. android字体等宽,Android等宽字体大小
  12. 论文润色软件Stylewriter,whitesmoke,1check使用亲测
  13. Python量化资源大合集
  14. 电脑装两个硬盘在计算机只显示一个,电脑有两个硬盘,如何去掉机械硬盘中的那套系统?...
  15. 淮安万达机器人_淮安万博机器人 万达上班时间【输入网址YB7888.vip】angmi_PP视频搜索-PP视频-原PPTV聚力视频...
  16. PERCENTILE_CONT
  17. ASP.NET中 RadioButtonList(单选按钮组)的使用
  18. 软件开发过程与项目管理(10.软件项目人员与沟通计划)
  19. pytest【运行单个测试用例】
  20. cs230 deeplearning.ai 2: CNN

热门文章

  1. C语言格式控制符/占位符 - C语言零基础入门教程
  2. 计算机原理 信息化教学设计,小学数学信息化教学设计
  3. 登和平视显示无法连接服务器,提醒信息的推送方法和装置、平视显示器HUD及服务器...
  4. vue 判断两对象是否一致_你的.vue文件就已经是你的文档了
  5. w3c html规范规范文档,前端开发规范
  6. stm32滴答计时器_STM32的系统滴答定时器(Systick)
  7. java this关键字表示当前对象,可以访问属性、方法、构造方法
  8. java单词测试,java单词 - 在线打字测试(dazi.kukuw.com)
  9. python attention机制_从零开始学Python自然语言处理(26)—— 强大的Attention机制...
  10. php tp5清空数据表并主键,tp5数据库——更新数据