作者:陈陈

日志在可观测场景下的运用

跟着 IT 架构改动与云原生技能实践,融入开发与事务部门视角,运维团队具有比原有监控更广泛、更主动的可观测才能。日志作为可观测三支柱(Tracing、Metrics、Logs)之一,协助运维团队追寻程序运转状况、定位毛病根因、复原毛病现场。以毛病发现和毛病定位为意图运用日志场景可大致分为日志查找和日志剖析两类:

  1. 日志查找:
  • 经过日志关键字查找日志;
  • 经过线程名、类名查找日志;
  • 结合 Trace 上下文信息,衍生出依据 TraceID、依据 spanName、parentSpanName、serviceName、parentServiceName 查找日志。
  1. 日志剖析:
  • 检查、剖析指定日志数量的趋势;
  • 依据日志内容生成目标(比方每次交易成功打印一条日志,能够生成关于交易额的一个目标);
  • 主动辨认日志形式(比方检查不同形式的日志数量的改变,占比)。

在实践生产中,经过灵敏组合以上几种运用方法,运维团队能够很好地扫除日常观测、毛病定位过程中的搅扰因素,更快的定界乃至定位问题根因。

常见开源日志解决计划的缺乏

常见的日志解决计划多是运用主机上装置日志收集 Agent,经过装备日志收集路径的方法将日志收集到第三方体系存储、查询、展现、剖析。较为成熟的有 ELK(Elasticsearch、Logstash、Kibana)开源计划,其活跃的社区、简略的装置流程、快捷运用方法等优势吸引了不少用户。

ARMS实践|日志在可观测场景下的应用

但 ELK 计划也存在着少许缺乏:

  1. 运维本钱高:搭建一套完好的 ELK 体系需求布置 ES 集群,kafka 集群以及 logstash 组件等等,以及跟着日志规划的增加带来多集群拆分、多集群晋级、稳定性等问题,往往需求投入更多人力。

  2. 资源开支大:ELK 架构中简直一切组件的资源开支都会跟着日志规划的增加线性增加,占用极大本钱。

  3. 企业级才能缺乏:日志中往往包含事务关键信息,需求一套完备的多租户阻隔以及细粒度的权限操控计划,这在开源免费 ELK 架构中是缺乏的。

依据 ARMS 的日志解决计划

相较于 ELK 开源自建计划,是否能够有更轻量、更容易运维的日志解决计划呢?

现在,运用实时监控服务 ARMS 供给一套简略易用的日志解决计划,让运维团队能够一键集成运用日志。相较于开源计划,丰厚功用性、压降本钱的同时,进一步提升易用性。

功用性

1. 主动富化日志

相关调用链上下文包含 TraceID、ServerIP、spanName,parentSpanName,serviceName,parentServiceName。全面满足依据TraceID查找日志、查找触发反常日志打印的上游运用、上游接口等需求将Tracing和 Logs 进行相关剖析的可观测场景。

2. 供给智能日志聚类才能

针对规划大、内容杂、且格局也难以做到统一规范的日志进行汇总、笼统聚类,使运维人员迅速发现反常日志与正常日志“类别”上的不同,从而快速定位反常日志、发现问题。

3. 供给 LiveTail 才能

针对线上日志进行实时监控剖析,毫秒等级推迟上报日志,最靠近tail -f的日志检查体会,有效减轻运维压力。

4. 依据 ARMS 的 Arthas 才能,运转时调整 logger 输出等级

5. 一键生成依据日志的报警、日志转目标的才能(内测中 即将上线)。

易用性

  • ARMS 操控台一键开通,即可运用日志相关全套功用;

  • 无需装置额外日志收集组件,避免运用改造;

  • 无需管理运维日志服务端以及日志,降低日常运维工作量;

  • 支持日志服务 SLS、及 ARMS 直接纳集的日志。

运维本钱

  • 日志功用处于公测阶段,完全免费;
  • 供给灵敏可装备的日志丢掉战略,从源头上削减很多无效日志;
  • 供给灵敏可装备的日志存储战略,可依据运用重要程度装备日志存储时长。

ARMS 日志功用展现 & 场景最佳实践

前置要求

  1. 晋级到2.7.1.4以及更高版别的 Agent(K8s 运用重启后会晋级到 2.7.1.4 版别 agent,非 K8s 运用需求用户手动下载最新版别 Agent 并挂载)。

ARMS实践|日志在可观测场景下的应用

  1. 在ARMS 操控台运用列表页,点开需求开启日志收集功用的运用,点击左边最下方运用设置,点到自定义装备页,翻开日志收集开关并依据实践场景装备相应参数,终究点击保存。
  • 关于直接纳集的日志,是经过 ARMS 探针收集日志结构的输出并直接推送到 ARMS 的日志剖析中心。

ARMS实践|日志在可观测场景下的应用

  • 如果您需求将运用的日志收集到日志服务 SLS,并在 ARMS 运用装备中装备相应的 Project 和 Logstore,ARMS 会内嵌日志服务的页面方便您进行日志剖析。

ARMS实践|日志在可观测场景下的应用

功用运用演示

  1. 依据 TraceID 查找日志

ARMS实践|日志在可观测场景下的应用

  1. 检查包含置顶关键字的日志条数改变趋势

ARMS实践|日志在可观测场景下的应用

  1. LiveTail

视频

  1. 日志聚类下图中上方左边是辨认出来不同形式的日志条数改变趋势,右图是不同形式日志挑选时刻段内总条数降序排序,下方是不同形式下的日志原文,可经过在 search 中查找不同日志形式检查该形式下的日志原文样本。

ARMS实践|日志在可观测场景下的应用

ARMS 日志功用更多事例可检查ARMS 官方文档:

help.aliyun.com/document_de…

最佳实践

下面简略介绍两个阿里云可观测团队在云服务 SRE 场景下运用运用 ARMS 日志功用的最佳实践。

事例:目标跌落问题排查

  • 布景

运用 A 首要担任接纳事务运用经过 RPC 上报流量信息、解析信息、简略处理后写存储。其间事务的流量信息包含时刻戳、事务运用名、接口名、一分钟的接口恳求量、一分钟的接口恳求总耗时。写入存储后,可在操控台检查该事务运用的流量监控信息。某日 某事务运用B反应扩容后流量监控信息跌落,随即开端排查问题。

  • 排查计划
  1. 首先翻开日志渠道。检查运用 A 相关日志。看到较多写存储限流反常,统计该反常数量最近3小时趋势发现无明显增加,阐明该反常态少数出现,无影响,持续排查。

  2. 置疑运用 A 部分节点 hang 死,导致运用 B 上报数据失利,随即检查运用 A 不同实例日志输出量。发现根本均匀,该置疑扫除。

  3. 此刻,根本扫除运用 A 的问题,开端置疑数据上报反常。因为运用B的流量监控信息仅仅跌落并未跌 0,置疑运用 B 部分节点数据上报反常。经过日志剖析,获得当时运用 B 当时正常上报数据的 IP 列表,给到用户,发现运用 B 新扩容机器均未成功上报数据,置疑新扩容机器网络反常。

  4. 经过日志渠道检查运用 B 日志,看到较多网络反常,检查该反常散布机器,均散布在新扩容机器上,与上一步结论吻合。随即登陆一台机器,发现到运用 A 的网络确实不通,随即联系网络同学康复该问题。

  • 场景总结

经过日志检索与日志剖析结合运用,终究定位到问题根因。

事例: 日志存储本钱降低

  • 布景

运用 C 因为开发人员众多,日志打印等级设置不合理,日志量很大,日志功用本钱开支很高,急需降本提效。

  • 管理计划
  1. 依据过往日志排查问题经验,很少需求检查一周前日志。因此,将日志存储时长战略缩短,由一个月调整为一周。

  2. 经过 ARMS 日志形式主动辨认的功用,检查当时 top-k 的日志形式,发现较多形式的日志归于无效日志。设置日志丢掉战略,将无效的日志丢掉。

  • 场景总结

结合存储时长调整和日志形式自辨认,日志整体本钱降低到以前的十分之一。现在,ARMS 日志运用功用已全面敞开,让运维团队快速拥有日志剖析与查找才能!

运用实时监控服务 ARMS 7 月产品才能动态

ARMS实践|日志在可观测场景下的应用

点击此处,当即免费试用!