日志系统重构之多源聚合的采集器

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 最近对日志系统的采集机制进行了重构,增强了对单一主机上多个日志源采集的便捷性。 重构之前 重构之前的设计以日志类型为中心,一个日志类型对应一个独立的flume的配置模板,一个日志类型的一个日志源(具体到某个节点上特定的日志文件)对应一个flume配置文件(也即一个flume agent)。

最近对日志系统的采集机制进行了重构,增强了对单一主机上多个日志源采集的便捷性。

重构之前

重构之前的设计以日志类型为中心,一个日志类型对应一个独立的flume的配置模板,一个日志类型的一个日志源(具体到某个节点上特定的日志文件)对应一个flume配置文件(也即一个flume agent)。flume配置模板主要针对这个日志类型的日志文件名称是否存在多行日志日志首字符目标接收方有关的配置等固定属性。光靠这些配置还不够,因为这些日志类型所对应的日志会存在于各个具体的主机节点以及可能不同的文件系统路径下,所以针对某个日志类型的日志源还需要配置日志文件路径日志文件名称的模式采集器元数据存储路径等动态属性。

这里管控台的设计完全没有按照flume里sourcechannelsink区分开来。sink的配置是混合在flume配置模板里。

管控台的功能逻辑图:

console-design-before-refactor

重构前zk Path设计:

design-before-refactor

重构前采集器的物理部署图:

deploy-before-refactor

重构之后

我们的目标是减少同一个物理主机上采集器的部署成本,最好能一个物理主机部署一个采集器,而这个采集器支持多个日志源的采集。正好在当前版本的flume(v1.6.0)是支持 一个agent里多个日志流。因此,在重构的时候,改为以agent为中心,并重新规划了管控台的功能:

  • 采集源模板
  • 采集器
  • 采集源
  • 采集槽

重构之后管控台的功能逻辑图:

console-design-after-refactor

重构后的zk path设计:

design-after-refactor

重构后的物理部署图:

deploy-after-refactor

总结

其实不难看出,管控台的功能逻辑以生成flume配置文件为目标。所以设计的变更主要体现在管控台如何组织和管理这些元数据信息。


原文发布时间为:2016-02-10

本文作者:vinoYang

本文来自云栖社区合作伙伴CSDN博客,了解相关信息可以关注CSDN博客。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
26天前
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
351 69
Grafana Loki,轻量级日志系统
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
91 8
|
2月前
|
监控 测试技术 开发者
一行代码改进:Logtail的多行日志采集性能提升7倍的奥秘
一个有趣的现象引起了作者的注意:当启用行首正则表达式处理多行日志时,采集性能出现下降。究竟是什么因素导致了这种现象?本文将探索Logtail多行日志采集性能提升的秘密。
180 23
|
2月前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
121 2
|
3月前
|
存储 SQL 监控
|
3月前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
372 2
|
4月前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
107 1
|
4月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
97 3
|
4月前
|
监控 应用服务中间件 网络安全
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
65 4
|
4月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
86 1