轻量级分布式日志清理(脚本)系统设计

写在之前

最近轮到我值班了,值班的时候总是有需要立马清理的日志文件或其它事件。你可能会问:“怎么不用定时脚本呢?” 事实情况是,我们已经采用了定时脚本了。可是,有的时候,日志来的飞快,定时脚本还没起作用呢,就需要清理了。随着机器的越来越多,这就更是一个问题了。现在,我们所有模块的集群加起来,起码有60台机器了。如果这时候需要立马在服务器上搞个神马,想吐血的心都有了吧;也想过借助一些别的工具去实现,比如:采用zookeeper去管理配置文件挺合适的。但是,还需要搞个zookeeper服务,太麻烦了。没办法,人就是懒,想着能有个小工具该多好啊,能一键部署搞定多好啊,能轻量级到可以忽略该多好啊! 等等等...... 于是乎,便有了这个想法 - 写个简单的,能近似实时的,以分布式的形式执行一些立马需要做的工作。比如:运行脚本,清理特定类型的日志等等等等,诸如此类的琐事。 于是,就行动起来了,便有了这篇关于设计文章初稿。集思广益,如果你有同样的痛点,请发点善心,告诉我们你的需求。该小工具的第一个版本出来后,我们会开源给大家,好人不谢!

初稿设计架构图:

轻量级分布式日志清理(脚本)系统设计_第1张图片
Paste_Image.png

设计特点:

Agent服务:

1.1 Agent可以随意部署多节点
1.2 单线程,轻量级,跨平台
1.3 采用Http请求的方式pull配置文件和Report结果,最小占用系统资源,不维护任何长连接
1.4 不用开启任何端口号,完全不影响服务器的安全问题
1.5 支持多Agent部署在不同操作系统上

Config Center服务

1.1 基于部署服务的文件系统,不依赖于任何第三方中间件,服务(如:database, zookeeper等)
1.2 采用Spring Boot开发,基于Jar包的一键运行,分发容易
1.3 有可视化的UI配置,减少人工修改配置文件的可能性错误
1.4 可针对单独的Agent进行特色配置
1.5 超轻量级,跨平台,可部署于任意一台电脑上,各种系统上

重大设计特点:

  1. Config Center服务支持随时可以挂了。毕竟该服务可靠性要求不高,挂了就挂了吧,配合supervisor这样的工具也是能基本做到7x24不间断服务的。
  2. 部署平台依赖于JDK,不是写Java的码农们可以洗洗睡了!

你可能感兴趣的:(轻量级分布式日志清理(脚本)系统设计)