kubernetes|智汇华云 | 集群日志动态采集方案


kubernetes|智汇华云 | 集群日志动态采集方案
文章图片


日志中心是一个统一的日志管理平台,全面收集、管理和分析云平台日志数据。本期智汇华云,为大家介绍日志中心的基础架构和业务流程。

背景

平台或资源出现异常或故障时,管理员可通过运维门户的日志功能,在线查询、搜索日志异常的原因,快速的进行问题定位,无需登录云管后端或来回切换到每一个节点的后端查询日志。也为了方便对日志统一存储、实时检索、查询和分析、监控告警,因此需要建立一个统一管理,可动态配置的多集群日志采集服务——logcenter。

功能
【kubernetes|智汇华云 | 集群日志动态采集方案】
聚合华云云管理平台(含k8s等高级组件)、纳管集群的系统日志、资源日志进行统一管理,可视化展示支持根据自定义时间段进行单关键字、组合关键字全局(文)搜索能力
可选择在指定集群、节点、单资源、单服务范围等对日志进行搜索支持对对关键字、时间搜索保存
作为预置搜索项可根据日志的严重性进行筛选,如:紧急、警报、错误、信息等
支持对自定义时间内的相同异常日志数量、类型进行统计,绘制走势图

架构

kubernetes|智汇华云 | 集群日志动态采集方案
文章图片


整体架构在ELK Stack开源框架的基础上,增加logcenter微服务来统一管理每个集群中filebeat的采集配置,云管理平台后端服务的采集配置是有初始模板的,并且可以在功能页面上编辑不同微服务的模板来动态修改采集的日志数据,新建或者导入的K8S集群采集配置需要每次调接口生成。对filebeat做了二次开发,使其通过定时调用logcenter接口来获取采集配置,配置在初始化之后都是存储在分布式缓存etcd中,来保证多集群环境下采集配置同步。

在云管理平台、超融合、裸金属服务器环境中,filebeat都是通过docker容器的形式运行,通过将宿主机中的日志目录挂载到容器中来让filebeat得到要采集的数据源,而在K8S集群中,filebeat是通过DaemonSet的形式部署的,确保全部Node 上运行一个 Pod 的副本。

filebeat采集的日志通过网络传输给logstash,logstash会对数据做处理之后再传输到elasticsearch保存。

流程

kubernetes|智汇华云 | 集群日志动态采集方案
文章图片


通过流程可以发现,日志中心是集群日志采集方案的核心,所有的采集配置都是通过日志中心创建并维护,filebeat拉取配置的定时任务每隔5秒执行一次,用户在平台功能页面更新指定配置,日志中心服务会更新缓存数据,基于缓存的存储可以更快的响应filebeat拉取配置的请求。

采集配置中不仅有采集规则,还有一些业务配置,比如日志的最大保存时间和最大保存容量,所以在日志中心中有定时任务定时去清理elasticsearch中的日志数据,减少系统内存的占用。同时也有日志告警相关的设计,保证一些重大的故障可以尽早发现。

用户在检索日志的时候也是通过调日志中心的接口,日志中心根据请求参数去elasticsearch拉取数据并整理方便查看的日志格式返回。

总结

日志中心解决了多集群环境下需要统一收集日志数据,动态配置采集内容的场景,帮助用户提升运维、运营效率,快速查找和定位问题,采用高可扩展性的分布式系统架构设计,可以很灵活的开启和关闭指定集群的日志采集。

页面查询只需要使用简单的查询语法,通过可视化界面配置分析报表,降低用户使用门槛。

    推荐阅读