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

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: 在实际生产中,通过灵活组合文内几种使用方式,运维团队可以很好地排除日常观测、故障定位过程中的干扰因素,更快的定界甚至定位问题根因。

作者:陈陈


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


随着 IT 架构改变与云原生技术实践,融入开发与业务部门视角,运维团队具备比原有监控更广泛、更主动的可观测能力。日志作为可观测三支柱(Tracing、Metrics、Logs)之一,帮助运维团队追踪程序运行状态、定位故障根因、还原故障现场。以故障发现和故障定位为目的使用日志场景可大致分为日志搜索和日志分析两类:


1. 日志搜索:


  • 通过日志关键字搜索日志;
  • 通过线程名、类名搜索日志;
  • 结合 Trace 上下文信息,衍生出根据 TraceID、根据 spanName、parentSpanName、serviceName、parentServiceName 搜索日志。 


2. 日志分析:


  • 查看、分析指定日志数量的趋势;
  • 根据日志内容生成指标(比如每次交易成功打印一条日志,可以生成关于交易额的一个指标);
  • 自动识别日志模式(比如查看不同模式的日志数量的变化,占比)。 


在实际生产中,通过灵活组合以上几种使用方式,运维团队可以很好地排除日常观测、故障定位过程中的干扰因素,更快的定界甚至定位问题根因。


常见开源日志解决方案的不足


常见的日志解决方案多是利用主机上安装日志采集 Agent,通过配置日志采集路径的方式将日志采集到第三方系统存储、查询、展示、分析。较为成熟的有 ELK(Elasticsearch、Logstash、Kibana)开源方案,其活跃的社区、简单的安装流程、便捷使用方式等优势吸引了不少用户。


1.png


但 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 并挂载)。


2.png


2. 在 ARMS 控制台应用列表页,点开需要开启日志采集功能的应用,点击左侧最下方应用设置,点到自定义配置页,打开日志采集开关并根据实际场景配置相应参数,最后点击保存。


  • 对于直接采集的日志,是通过 ARMS 探针采集日志框架的输出并直接推送到 ARMS 的日志分析中心。 


3.png


  • 如果您需要将应用的日志采集到日志服务 SLS,并在 ARMS 应用配置中配置相应的 Project 和 Logstore,ARMS 会内嵌日志服务的页面方便您进行日志分析。 


4.png


功能应用演示


1. 根据 TraceID 搜索日志


5.png


2. 查看包含置顶关键字的日志条数变化趋势


6.png


3. LiveTail


点击下方链接,查看操作视频:

https://developer.aliyun.com/live/250112


4. 日志聚类下图中上方左侧是识别出来不同模式的日志条数变化趋势,右图是不同模式日志选择时间段内总条数降序排序,下方是不同模式下的日志原文,可通过在 search 中搜索不同日志模式查看该模式下的日志原文样本。


8.png


ARMS 日志功能更多案例可查看 ARMS 官方文档:


https://help.aliyun.com/document_detail/432298.html


最佳实践


下面简单介绍两个阿里云可观测团队在云服务 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 月产品能力动态


9.png


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

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文探讨了日志管理中的常见反模式及其潜在问题,强调科学的日志管理策略对系统可观测性的重要性。文中分析了6种反模式:copy truncate轮转导致的日志丢失或重复、NAS/OSS存储引发的采集不一致、多进程写入造成的日志混乱、创建文件空洞释放空间的风险、频繁覆盖写带来的数据完整性问题,以及使用vim编辑日志文件导致的重复采集。针对这些问题,文章提供了最佳实践建议,如使用create模式轮转日志、本地磁盘存储、单线程追加写入等方法,以降低日志采集风险,提升系统可靠性。最后总结指出,遵循这些实践可显著提高故障排查效率和系统性能。
673 20
|
5天前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
|
4月前
|
监控 安全 Linux
AWK在网络安全中的高效应用:从日志分析到威胁狩猎
本文深入探讨AWK在网络安全中的高效应用,涵盖日志分析、威胁狩猎及应急响应等场景。通过实战技巧,助力安全工程师将日志分析效率提升3倍以上,构建轻量级监控方案。文章详解AWK核心语法与网络安全专用技巧,如时间范围分析、多条件过滤和数据脱敏,并提供性能优化与工具集成方案。掌握AWK,让安全工作事半功倍!
93 0
|
7月前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
153 3
|
8月前
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
843 28
|
7月前
|
运维 监控 虚拟化
除了实时性能监控,Hyper-V还支持日志记录和警报功能你知道吗?
Hyper-V不仅支持实时性能监控,还具备强大的日志记录和警报功能。通过事件查看器可访问详细的日志文件,涵盖虚拟机管理、配置及Hypervisor事件,帮助故障排查和性能分析。警报功能支持预定义和自定义规则,可通过多种方式通知管理员,确保及时响应问题,保障虚拟化环境的稳定运行。
|
7月前
|
SQL 存储 自然语言处理
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
131 1
|
9月前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
381 3
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
7月前
|
SQL 数据库
【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
|
7月前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
网络安全视角:从地域到账号的阿里云日志审计实践
141 0

相关产品

  • 应用实时监控服务