微服务业务日志收集方案
背景 日志内容复杂多样,如何去收集有价值的日志是我们重点关注的。日志的价值其实是取决于业务操作的,不同的业务场景下相同类型的日志的价值会截然不同。 根据以往的业务实践,结合企业级的一些业务需求,我们选定关注以下几类日志。 跟踪日志【trace.log】 Server引擎的调试日志,用于系统维护人员定位系统运行问题使用。 系统日志【system.log】 大粒度的引擎运行的入口、出口的日志,用于调用栈分析,可以进行性能分析使用。 部署日志【deploy.log】 记录系统启动、停止、构件包部署、集群通知等信息的日志。 引擎日志【engine.log】 细粒度的引擎运行日志,可以打印上下文数据,用于定位业务问题。 构件包日志【contribution.log】 构件包记录的业务日志(使用基础构件库的日志输出API写日志) 这里我们专门针对系统日志收集讨论几种收集方案 方案一:通过日志组件来收集 这里是指通过logback、log4j等日志组件来输出文件,然后再通过文件输出到logstash、kibana等日志组件中,通过这些日志组件来进行可视化统计与分析,这里需要统一关键日志输出格式方便日后统计搜索。 优点 操作简单,收集方便 减少业务依赖 粒度细 缺点 依赖于logstash、kibana 只能满足简单的日志操作,详细点或者个性化需求操作起来比较复杂 方案二