美文网首页程序员
lek日志系统学习笔记

lek日志系统学习笔记

作者: yellowone | 来源:发表于2020-02-27 22:09 被阅读0次

虽然作为一个后端开发,可能对日志系统lek的直接应用多过于学习维护,但是我们运维维护的elasticsearch总是崩,每次都说我用得不对,出于这个原因,决定对lek进行一次粗略的学习,对基本概念和使用方法记录和总结。

我们的lek

lek是三个工具,负责数据采集的logstash,负责存放和搜索的elasticsearch,负责数据展示的kibana,在我们公司还有用到一个负责数据上报的kafka,kafka也是logstash的数据来源。

按照我们现在的使用场景主要是:记录用户行为事件,我也是主要以存储用户事件为例来学习这三个工具,毕竟学了没有应用场景很难彻底掌握。

主要操作按照数据流向来讲。

用户操作调用外部接口,外部接口调用微服务,其中有些微服务是底层上报服务,而上报服务将kafka封装,约定一个kafka topic对应一个用户行为,比如登录,注册,产生消费。用户每个行为都会调用到这个上报服务,所以负载非常高,但是得益于kafka优秀的性能,我们的一些监听事件的需求得以实现,并且最重要的是可以解耦,比如当用户登录超过3天送代金券或者说用户登录时等级超过某个级别时送什么东西。每个服务之间相互独立,互不干扰,只需要监听相应的topic就完事了。

然后logstash也是监听了kafka的所有的用户事件广播,将kafka的广播内容转化成对应es中预先设定好的的数据类型,将数据过滤,拼接,批量之后,对es发起存储请求,将用户在什么时间段干了什么存进es中。

logstash存进elasticsearch的大量数据,通过elasticsearch的优秀搜索性能,在全文检索,日志分析这个场景上,es比mysql搜索起来快很多(为了提高数据可用性,我们还将同样的数据存储进一个分月分表的mysql中,但是很少用,搜索起来也比es慢很多),然后这些数据可以让我们数据中心分析,或者是做一些年度榜单,或者是用户个人年度总结的一些数据来源,又或者是用户统计。

kibana作为es数据可视话工具,在日常中用得比较多。比如经常有运营让我帮忙看某个用户是不是真的连续登陆能领取优惠还是在欺骗我们的运营,或者是测试说我们莫名其妙改了他的密码,我们会用他曾经干了什么来打他的脸,或者是被盗号了ip多次变化,或者是怎样的一些用户行为需要查询的。打开kibana,点一点就能把相关的数据轻松找到,而不用写脚本,或者复杂的es查询语句。

之后会每天学习一个工具,在此记录发表。

ps:在网上看到很多公司通过lek来记录服务日志,但是我们公司并没有那么多资源可以搭建满足所有服务日志采集的lek,所以只记录最重要的用户事件。。。要是有条件,可以通过logstash把所有日志都存进es,特别是针对微服务来说,这样,像是调用链的数据来源,可视化日志,日志分析都有可能实现。

相关文章

网友评论

    本文标题:lek日志系统学习笔记

    本文链接:https://www.haomeiwen.com/subject/sujfhhtx.html