zl程序教程

您现在的位置是:首页 >  工具

当前栏目

分布式系统日志上下文查询功能

日志 查询 功能 上下文 分布式系统
2023-09-11 14:17:30 时间
日志查看方式

随着技术的发展,越来越多的系统从单机转向到分布式,同时对应的日志查看方式除了直接查看文件外,也发展出了各种集中日志管理方式。其中常见日志查看方式如下:

单线程程序

开发单机程序时诊断非常简单:设置断点,检查断点上下变量状态即可。
当程序部署线上后,可以把断点中内容以日志方式记录下来。出现错误后,还原日志上下文(Context)不难,只要把日志文件中前后N行拿到后都能容易找到问题

DingTalk20170609201400.png

多线程程序

当多线程出现后,还原上下文变得复杂一些,因为不同线程打日志顺序会造成一定干扰。我们可以在日志中记录、筛选线程(ThreadID)来排除其他线程干扰,拿到上下文

DingTalk20170609201456.png

分布式系统

在分布式场景下(比如Docker、LXC、多服务器等),进程会同时跑在不同服务器上,一般通过集中式日志管理(例如Splunk、ELK、日志服务)等查找定位日志。

DingTalk20170609201628.png

这种场景下查找日志非常方便(例如通过"Level:Error","Latency 100000 Method:HandleRequest"等能对上亿日志进行快速查找),但定位到关键日志后还原上下文却变得很难。因为日志采集、索引都是无序的,为了还原上下文,必须通过时间、机器、线程号来筛选和查找(这种方法一般不够精确),业界并没有好的方法。

日志上下文查看

今天日志服务(原SLS)LogSearch在查询分析基础上,提供了查看上下文的按钮,既可以在控制台上 完全精确 还原任意日志上下文(上下N条日志),并支持对指定内容(比如ThreadId)进行筛选,帮助你快速定位问题。整个过程如图所示:

DingTalk20170609202622.png

只支持使用Logtail客户端收集的日志 指定日志库(Logstore)必须开启索引功能 Dev在线上通过关键词查询,定位到一个异常日志

DingTalk20170612104019.png

点击上下文查询后,既跳转到前后N条上下文显示框

可以通过“更早”、“更新”等按钮加载更多上下文,也可以点击“返回普通搜索模式”进一步排查 通过筛选框筛选ThreadID,进行精准上下文的过滤
使用日志上下文聚合插件使能上下文查询及Livetail 日志上下文浏览是排查业务故障时常用的方式,但受限于Logtail插件系统的设计,在Logtail 1.2.1版本前,如果用户使用Logtail插件来处理日志或采集容器的标准输出,那么用户将无法使用上下文浏览及Livetail功能。为了解决这一问题,本文将重点介绍如何使用日志上下文聚合插件来使能上下文查询和Livetail功能。
日志管理系统,多种方式总结 好记性不如好Log。项目中日志的管理是基础功能之一,不同的用户和场景下对日志都有特定的需求,从而需要用不同的策略进行日志采集和管理,如果是在分布式的项目中,日志的体系设计更加复杂。
查看上篇文章通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤,我们开始在原来的基础上实现单条权记录的权限控制。 相信前面的列表权限控制,很多系统都可以做到,但如何在上面列表的权限过滤中实现通用性 原理:我们在权限过滤中,通过AOP接截相关记录,拦截的时候,我们先判断当前人员是否有角色权限,没有的话,我们生成查询权限的SQL,进行权限查找.
阿里云存储服务 193992 阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。