基本日志架构
实现功能
日志采集
日志存储
日志查询功能
日志数据计算/分析
日志采集模块:
我们的服务时刻产生着日志,有一个log_agent部署在与服务相同的机器上,采集服务的日志,然后写入到kafka中。log_agent的实现方式不同,可以在业务服务中内嵌,也可以单独部署与服务分开。
日志传输模块:
kafka是一个数据流处理平台,也是一个消息系统,将日志写入消息系统几个好处:
kafka性能出众、稳定可靠
高峰期用于削峰
不同的数据处理job都可以订阅日志消息
日志处理模块:
将原生的日志进行数据处理,比如过滤不必要的数据,数据格式处理,将不同种类的数据切分,数据异构等。将处理好的数据按要求写入存储系统。
日志存储模块:
用于日志存储,通常使用ES集群即可。同一份日志数据可以根据要求写到不同的库里。
日志统计模块
用户根据需求查询日志数据。比如将erro级别的日志单独存储,查error日志效率就高了许多。还可以根据日志数据做特定的job服务,实现告警功能。