01. 企业级日志架构复杂度
一套企业级的日志平台架构建设复杂度体现在什么方面,总结归纳下来,主要有三个:采集端部署分散;服务端部署组件多;日志流对性能有一定要求。
1)采集端部署分散
比较常用的采集器是开源的filebeat,filebeat功能强大,安装配置也相对简单。但问题在于,一旦需要采集的对象数量多起来,种类多起来,或者这些采集对象是动态变化的,即使单节点安装简易的filebeat也会需要花费大量的精力来安装和维护。这也是很多企业在建设统一日志平台面临的一个实际问题。这时,运维往往会写脚本去批量下发,能做到部分解决问题,但是后期的配置维护、版本更新等等,都将带来新的问题。
那么,有什么方案可以解决呢?有,那就是采取集中管理的思路,由一个统一的控制中心,通过在不同节点上安装代理来收集信息+下发配置。一般一个中大型企业,基本都会有一套自己的agent来控制各方资源,agent往往是在虚拟机模板或者容器镜像中就已经打入,主要的作用也就是上报信息以及下发配置。日志的采集便可以利用好这种集中式的管理工具,基于agent做插件来充当采集端,统一管理采集配置(包括路径、级别、过滤、预处理等等)。
2)服务端部署组件多
对于个人开发者或小规模企业来说,部署组件多也许还可以接受。拿开源的ELK举例,日志服务端部署需要Logstash集群和ES集群,以及一个Kibana的前端,完整一套集群也许就可以解决相当体量的日志集中管理。
但对于一家中大型企业来讲,体量和业务复杂度上来之后