十二赞日志收集与报警系统一览
先快速介绍一下十二赞的日志收集系统:十二赞的日志收集系统,分为两块,一块是线上系统的各种报错、异常的日志收集,主要是各种线上代码运行期间产生,我们称之为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是需要各个业务系统自己向日志网关来汇报事件的。
存入数据库之后,后续就是再对这些数据进行分析,查找用户的来源渠道,计算佣金等等操作了。
【原文链接】
十二赞日志收集与报警系统一览相关推荐
- Golang 在十二赞的深度应用
Golang 在十二赞的深度应用 我们是"十二赞",一个致力于帮助电商卖家进入小程序的小团队,我们的主页是http://www.12zan.cn/.在实际运行中,我们使用了大量由g ...
- 今日新闻早报 简报十二条 最近的新闻大事一览 1月30日
今日新闻早报,365资讯简报十二条,最近的新闻大事一览 [365资讯简报]每天一分钟,知晓天下事!2021年1月30日 星期六 农历腊月十八 1.外交部:1月31日起中方不再承认BNO护照作为旅行证件 ...
- web自动化笔记十六:日志收集
日志的作用: -调试程序 -了解系统程序运行情况,是否正常 -系统程序运行故障分析与问题定位 -用来做用户行为分析的数据统计 日志级别:是指日志信息的优先级.重要性或者 ...
- go语言日志收集系统
0.项目地址 完整项目的GitHub地址 https://github.com/taw19960426/learning-go-language/tree/main/go-log-collect 一. ...
- rsyslog 日志收集
rsyslog 无论在性能还是部署上都优于其它日志收集应用,因系统自带,需要新功能只需要做升级即可,方便部署! 一.Rsyslog特性 Multi-threading, high availabili ...
- 基于Flume的美团日志收集系统(二)改进和优化
在<基于Flume的美团日志收集系统(一)架构和设计>中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计.在本节中,我们将会讲述在实际部署和使用过程中遇到的问 ...
- 第十二章 使用日志监控 - 日志监视器错误和陷阱
文章目录 第十二章 使用日志监控 - 日志监视器错误和陷阱 日志监视器错误和陷阱 第十二章 使用日志监控 - 日志监视器错误和陷阱 日志监视器错误和陷阱 由于段冲突(访问冲突)导致进程停止. < ...
- JavaEE学习日志(六十二): jQuery遍历,jQuery事件,省市联动,左右互选
JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇) JavaEE学习日志(六十二) jQuery jQuery遍历 传统遍历 jQuery对象遍历 jQuery全局函 ...
- ELK+Kafka 企业日志收集平台(二)这是原版
上篇博文主要总结了一下elk.基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程.下面我们接着下面这个未完成的几个主题 4.Kibana部署; 5 ...
最新文章
- 单链表-删除单链表L中奇数号节点(双指针法)
- UC伯克利博士尤洋回国创业,求学期间破ImageNet纪录!已获超千万种子轮融资
- Linux - MiniFtp实现
- CSS进阶(10)—— 深入理解BFC结界
- Jmeter5.3(windows下)安装过程问题总结
- jdk8和hotspot_HotSpot的-XshowSettings标志的简单性和价值
- 若依的框架怎么样_若依框架的功能代码
- python mss_Python实现的连接mssql数据库操作示例
- css 语音,纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
- dreamweaver排列顺序怎么用_「化妆教程」粉底液是怎么用的?用在哪个具体步骤顺序...
- android字体等宽,Android等宽字体大小
- 论文润色软件Stylewriter,whitesmoke,1check使用亲测
- Python量化资源大合集
- 电脑装两个硬盘在计算机只显示一个,电脑有两个硬盘,如何去掉机械硬盘中的那套系统?...
- 淮安万达机器人_淮安万博机器人 万达上班时间【输入网址YB7888.vip】angmi_PP视频搜索-PP视频-原PPTV聚力视频...
- PERCENTILE_CONT
- ASP.NET中 RadioButtonList(单选按钮组)的使用
- 软件开发过程与项目管理(10.软件项目人员与沟通计划)
- pytest【运行单个测试用例】
- cs230 deeplearning.ai 2: CNN
热门文章
- C语言格式控制符/占位符 - C语言零基础入门教程
- 计算机原理 信息化教学设计,小学数学信息化教学设计
- 登和平视显示无法连接服务器,提醒信息的推送方法和装置、平视显示器HUD及服务器...
- vue 判断两对象是否一致_你的.vue文件就已经是你的文档了
- w3c html规范规范文档,前端开发规范
- stm32滴答计时器_STM32的系统滴答定时器(Systick)
- java this关键字表示当前对象,可以访问属性、方法、构造方法
- java单词测试,java单词 - 在线打字测试(dazi.kukuw.com)
- python attention机制_从零开始学Python自然语言处理(26)—— 强大的Attention机制...
- php tp5清空数据表并主键,tp5数据库——更新数据