日志分析系统/监控系统后端实现

公司领导想要看到系统按省份、成功率、业务来分类的时时访问监控图像,虽然说是个没啥用的项目,既然老板发话了,还是去做吧,前端显示页面不是自己开发,前端只需要来数据库抽取我时时计算出的结果展示出来就行了,心里一万只草泥马,那就意味着后端所有斗得自己做了。

想了下咋实现呢,监控访问量嘛,最简单通用的方法无非就是读取端口日志,查了下日志,刚好包含了有我所需的字段,所以问题就从0头绪变成了-----日志分析实现监控

有了日志文件,怎么能做到计算后写道数据库呢,还要求几乎是时时(5秒一次更新)的需求,这时候就要用到消息队列了

原理是:

把日志抽取成一条条信息发送到处理代码中计算出结果,最后再写入数据库。

看似一句话,其实需要实现的有:

1、日志抽取

2、消息传递

3、计算逻辑

4、数据库

 

按以上大方向往下走,慢慢逐个分析

日志抽取:ELK什么的就不谈了,因为我有自己计算代码,所以没用ELK的抽取,用的是filebeat这个超级轻量级日志抽取工具。

filebeat仅是抽取功能,抽到了数据,接下来要传递了,这种批量数据处理更新肯定不能是时时传递处理,所以要用到消息队列

消息队列各种都行,我用的是kafka,优势是有数据持久化和对python友好的对接模块

所以说我的代码是用python来写的,当然为了避免数据库端口压力(避免给自己找坑),数据是在python中批量缓存计算出结果后再写入数据库,这里就要用到pandas模块、json模块等

最后通过pyMySQL写入到MySQL中

内容多又杂,花了一个周实现了后端从0开始搭建(filebeat、kafka、数据库都是新搭建配置)。先在这里纪录下大概,之后会对filebeat搭建与配置、kafka搭建与配置、python-kafka模块使用、pandas模块、json模块、pymysql模块、计算逻辑都会单独纪录


 2019.3.21更新:

今天突然闲了一下,顺手继续纪录这篇文章。

先从filebeat开始谈起。常用的日志管理套件ELK应该是很出名的了,其中L代表logstash,logstash是ELK的日志抽取工具,所以,日志抽取其实可以采用logstash。我没有采用logstash的原音是,数据不是走到ELK,所以相对logstash来说,基于相同底层开发的filebeat这个工具更加轻量化,系统资源吃的更少。当然如果是做ELK的,无缝对接用logstash也是不错的选择。

filebeat安装很简单,直接yum就可以了,当然也有下载包解压后使用的。yum安装后在/etc/filebeat目录下有相关的配置文件。

[root@localhost ~]# cd /etc/filebeat/
[root@localh
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值