异构技术栈,日志采集标准化程度不高。以Cobol、C、Java、JavaScript等各种开发语言为基础的业务应用难以制订统一的日志采集标准,对于业务日志采集和分析都带来了挑战。听听同行专家的一些建议和实施方案
我们的做法是在业务层定义一致的描述,在组织内推广,在实现上基于不同的方式实现,譬如C应用会自己输出日志,而Java应用更多采用无侵入的方案,如skywalking进行字节流的采集。
收起在环境内存在大量已有系统的前提下,强制完全一致的日志标准确实是不现实的。通常来说只能要求应用研发方面做到至少覆盖基础数据,采集方面做到对齐元数据,然后通过引入更高级的事后分析手段,来达到类似效果。
采集元数据,比如来源 IP、归属应用、软件路径和依赖等。基础数据,比如时间戳、日志级别、线程号、流水号等。facebook 在 2016 年曾经公开过一种方法,结合时移补全技术和剪枝推理算法,在只有流水号的大规模系统上近似的推导链路拓扑关系图。万不得已的情况下,可以作为一种参考。
收起