日志在可观测场景下的应用
随着 IT 架构改变与云原生技术实践,融入开发与业务部门视角,运维团队具备比原有监控更广泛、更主动的可观测能力。日志作为可观测三支柱(Tracing、Metrics、Logs)之一,帮助运维团队追踪程序运行状态、定位故障根因、还原故障现场。以故障发现和故障定位为目的使用日志场景可大致分为日志搜索和日志分析两类:
1. 日志搜索:
- 通过日志关键字搜索日志;
- 通过线程名、类名搜索日志;
- 结合 Trace 上下文信息,衍生出根据 TraceID、根据 spanName、parentSpanName、serviceName、parentServiceName 搜索日志。
2. 日志分析:
- 查看、分析指定日志数量的趋势;
- 根据日志内容生成指标(比如每次交易成功打印一条日志,可以生成关于交易额的一个指标);
- 自动识别日志模式(比如查看不同模式的日志数量的变化,占比)。
在实际生产中,通过灵活组合以上几种使用方式,运维团队可以很好地排除日常观测、故障定位过程中的干扰因素,更快的定界甚至定位问题根因。
常见开源日志解决方案的不足
常见的日志解决方案多是利用主机上安装日志采集 Agent,通过配置日志采集路径的方式将日志采集到第三方系统存储、查询、展示、分析。较为成熟的有 ELK(Elasticsearch、Logstash、Kibana)开源方案,其活跃的社区、简单的安装流程、便捷使用方式等优势吸引了不少用户。