前言
服务器,操作系统,应用程序会产生日志,每个独立的系统内部都会有一套日志系统,依靠这些日志才能在系统出现问题的时候进行排查修复,如何去利用好日志就成为了业务飞速发展道路上的一道难题。阿里云日志服务在提供一站式接入服务的同时,还具备强大的日志查询功能,下面就用几分钟来快速玩转日志数据挖掘。
初步预览
在日志服务控制台上完成数据接入后,海量的数据就可以在云上查询,打开查询分析页面后会看到页面上大部分的区域会显示最新原始日志的内容。
直方图(histogram)概览
首先在有产生日志的情况下,页面里会有一个绿色柱状图的图表,这个是概览日志情况的histogram,x轴显示了具体的时间,y轴显示了日志的数量。根据绿色柱形的波动就能看到这一段时间内日志产生的变化情况,如果当前的日志是服务器的访问日志,那就可以快速地发现这段时间内整个服务的负载情况以及用户访问pv情况。
当发现有一段时间内的数据增加的比较明显,我们提供了丰富的交互时间帮助您快速地定位问题。要想访问到更加细粒度的时间区间,除了右上角按钮调整时间区间外,还可以在histogram上进行鼠标操作,点击histogram上的每个柱状图就可以定位到更细粒度的时间区间,还可以如下图所示,拖动选择想要的时间区间,页面就会查询这段时间的原始日志。
同时在histogram下方会有当前时间区间内的日志总条数统计,还有查询状态的显示,默认的时间区间是15分钟前到现在。如果出现提示查询状态不准确的话,建议修改更细粒度的时间进行查询,比如5分钟等。同时,也可以对查询分析语句进行调整,增加limit的限制,只展示前100条数据,limit的语法请参考帮助文档。
分词钻取(drilldown)
第一次打开查询分析页面时,默认的功能tab是原始日志,页面中会有一列叫“内容”的数据列,里面就是从数据源采集上来的原始日志信息,根据logtail配置设置key-value的键值对。为了方便之后的查询,建议对这些值进行设置索引,设置索引的入口在右上角查询分析配置内。
设置如果索引的字段类型是text(文本)的话,分词符就会生效,原始日志的内容就会被这些分词符分割。
分割完的日志信息最大的好处就是能够对切分好的日志片段进行钻取并快速过滤,如果在日志信息中想针对性地排查包含某个字段的日志信息,就可以点击对应字符,然后查询语句框就会自动填充过滤语句进行查询。
自动生成索引
根据提取的key依次对应设置索引未免有些繁琐,在查询分析配置里还提供自动生成索引的功能。点击“自动生成索引”按钮后,会出现一个提示框,根据现有的第一条日志key-value情况进行配置索引,点击确定后就可以覆盖当前的索引属性。
精准分析
简单的日志显示加过滤好比是在服务器上tail/grep的原始操作,想要针对性地进行日志分析就可以采用日志服务的查询。
时间灵活选择
默认15分钟的查询肯定无法满足大部分的需求,点开右上角时间的按钮就可以进行灵活的时间配置。
- 相对时间
相对时间表示从当前时间往前推一定的区间,比如当前的时间是15:32:10,选择1小时,那么查询的时间区间就是14:32:10 ~ 15:32:10。 - 整点时间
整点时间会对当前选择的区间的单位进行取整,假设当前时间是15:32:10,选择15分钟的话,就会对分钟进行取整,得到的区间是15:17:00 ~ 15:32:00,选择1小时,则会对小时取整,区间为14:00:00 ~ 15:00:00 - 自定义时间
相对时间和整点时间都有自定义填写的选项,同时还可以自定义填写想要的时间范围,填写具体的开始时间和结束时间。
列设置,内容列显示
在快速查询出日志信息的同时,想要隐藏掉一些不必要的列信息,可以点击“列设置”按钮,然后在穿梭框内选择想要显示的key名称并确定保存。
保存完配置的原始日志就会单独显示message这一列的信息了。
有时候在单条日志长度比较长的时候,为了数据显示和页面的性能,key-value对会截断显示,在“内容列显示”内可以调整内容的截断信息,同时原始日志内截断的日志可以具有展开操作。
目前默认的折叠长度是1000个字符,点击展开后会自动展开当前value值所有的字符串。
上下文查询
在查询结果页中任一条日志的左侧有上下文浏览按钮,表明该日志支持上下文查看功能。
日志上下文查询是指定日志来源(机器 + 文件)和其中一条日志,将该日志在原始文件中的前若干条(上文)或后若干条日志(下文)也查找出来,尤其是在 DevOps 场景下对于理清问题来龙去脉来说可谓是一把利器。
在右侧弹出的页面里就会展示想要查看的目标日志的上下文信息,还可以在过滤框中输入关键字进行高亮显示和过滤。
快速分析
快速分析是日志服务给用户提供的一键式交互查询功能,能帮助用户快速分析某一字段在指定时间内的分布情况,降低用户索引关键数据的成本。功能的入口在原始日志内容的左侧,点击每个索引名称右边的小图标就能对该字段进行快速分析。
当前的levelname字段是text类型,快速查询会展示字段前100000条数据的前十项分组统计,更多的功能指南可以参考帮助文档。
分析结果持久化
在查询日志挖掘出价值的同时,如何保存分析结果,使结果持久化也是非常重要的,日志服务提供三种不同维度的方式:
- 记录查询语句(快速查询)
- 下载原始日志
- 可视化(统计图表)
快速查询
快速查询是日志服务提供的一键查询分析功能,用户在页面上输入查询语句后并且有查询结果,就可以另存为快速查询,点击右上角“另存为快速查询”按钮,并在弹出层中填写相关的配置并进行保存。
在左侧管理栏内打开该快速查询的时候,页面就会打开新的tab,然后自动填充之前保存的查询分析语句。
下载原始日志
对原始日志进行下载导出也是对挖掘数据持久化的一部分,日志服务提供的下载方式有:
- 一键导出当页日志
- cloud shell下载日志
- 命令行工具下载所有日志。
如果使用命令行工具的机器环境所在的region为<项目所在域>,建议切换endpoint为<内网endpoint>,这样下载的速度更快,而且不会产生额外的外网带宽费用。
统计图表
日志服务在提供快速分析能力的同时,也具备强大的可视化功能。统计图表页签中展示了查询分析语句的图形化分析,还可以针对数据源进行不同图表,不同维度的分析。
对图表进行组合,保存仪表盘,生成定制化大盘也是可视化分析的一大杀手锏。如何玩转日志服务可视化仪表盘请参考一下文章:
后记
查询分析是日志服务控制台针对日志挖掘提供的最基本的功能,但也是最简单直观的。如果能利好这个云上利器,会在日常的运维场景下更加省时省心。同时,日志服务在日志场景下还提供各种解决方案,比如数据加工,机器学习,可视化等。如果您有更多的需求也欢迎联系我们,期待您的意见和建议。