酷!在终端上使用命令行可视化分析日志

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
日志服务 SLS,月写入数据量 50GB 1个月
简介: 运维工程师在通过日志调查问题时,或者通过日志搭建监控系统时,不仅需要查看原始的日志内容,还需要把日志经多深度加工分析,例如计算每分钟的延时,每分钟的流量等等监控。这些数字指标,如果能够通过可视化的手段直观的展示出来,会更直观、有效的理解监控数据。今天我们介绍一种比较简洁、也比较酷的可视化方式,就是在终端上直接通过命令行可视化分析日志。
+关注继续查看

可视化分析日志的需求


运维工程师在通过日志调查问题时,或者通过日志搭建监控系统时,不仅需要查看原始的日志内容,还需要把日志经多深度加工分析,例如计算每分钟的延时,每分钟的流量等等监控。这些数字指标,如果能够通过可视化的手段直观的展示出来,会更直观、有效的理解监控数据。今天我们介绍一种比较简洁、也比较酷的可视化方式,就是在终端上直接通过命令行可视化分析日志。

这种方式的好处在于:

  • 直接通过终端,无需打开控制台。
  • 通过SQL就能实现可视化,无需配置一大堆可视化参数。

什么?命令行里边也能可视化? 是的,命令行里边能够实现可视化! 实现方式是:通过mysql客户端,连接sls服务,使用SQL中颜色函数,直接在终端上分析。下文将以Nginx的访问日志为力,演示如何在终端可视化分析。


分析每一种Http Method的占比大小


先看效果图,这个颜色条块是在终端上显示出来的:

image

上图中,分别展示了,method、pv、占比、和大小的柱状图。是不是很酷?我们可以直接在终端上可视化展示数据的大小。怎么做到的呢?


首先,通过mysql协议连接到SLS,通过10005端口连接到SLS, 用户名是accessKeyid, 密码是accessKeySecret,  SLS 的project作为database,参考文档

mysql -hcn-hangzhou-intranet.log.aliyuncs.com -P10005 -u******** -p*********   projec_name

然后在mysql命令行中输入以下SQL:

select *, bar(percent, 40) from(select *, pv*1.0 / (sum(pv) over()) as percent from(select method ,count(1) pv  from access-log  where __time__ between to_unixtime(now())- 600 and  to_unixtime(now())  group by method order by pv ));

上述SQL主要做了几件事情:

1: 按照method group by计算每一个method的pv。

2: 外层嵌套查询,通过sum(pv) over() 计算出所有method的pv的总和。这里用到了窗口函数,对于窗口函数的语义,请参考文档。 简单而言,窗口函数在计算上是聚合函数,在结果上是转换函数,也就是计算窗口内所有行的聚合结果,再把结果写回每一行。因而窗口函数计算后,总行数没有改变,还是有3行。

3: 计算每个method的pv占总pv的比例,pv*1.0 / (sum(pv) over()) 。

4: 最后一步就是根据比例信息渲染出柱状图, bar(percent,40)。


bar函数的语义包含两个参数,分别是百分比和最大长度。 最大长度指定柱状图的最大长度, 上边的样例中,就是40个字符的长度, 然后根据百分比,把柱状图展示等比例的长度。


换一种可视化形式

上边我们用柱子的长度来代表pv的大小。那么我们换一种方式,用单纯的颜色来表达呢?


image


在上图中,绿色部分越多,代表占比越高。红色部分越多,代表占比越低。是不是更酷了?怎么做到的呢?上述SQL其他部分不需要改动,只需要改动bar函数的调用:

bar(40, 40,color(percent, 0,1 ,  rgb(255,0,0), rgb(0,255,0)), rgb(0,255,0))

bar函数增加了两个参数,分别是起始的颜色和结束的颜色。 那么我们可以定制起始位置的颜色。在这里使用一个动态颜色来表示:color(percent, 0,1 ,  rgb(255,0,0), rgb(0,255,0)) ,也就说percent取值在0到1之间,如果percent靠近0,那么就颜色就靠近  rgb(255,0,0)红色 ,如果percent靠近1,颜色就靠近rgb(0,255,0)绿色。根据percent的位置,输出动态的颜色。

因为上边界是静态的颜色(绿色)。所以我们如果percent比较小,那么条块的颜色就比较多。如果percent比较大,那么条块就更接近于绿色。那么我们也可以把上边界也设置成动态颜色,效果是什么样的呢?欢迎亲爱的读者亲自试一下呢

不过用颜色来表示柱状图,不如用长度来表达的语义更加直观。像第一个例子,既有颜色,又有长度表达信息,可以更加快速的了解数字的大小信息。

延伸阅读

上文介绍了如何用mysql协议可视化分析日志, 当日志数据量比较大的时候,可能会遇到查询不完整,或者延时变高的问题,欢迎深入了解SLS增强SQL,为千亿日志分析的实时计算引擎。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6天前
|
存储 SQL 监控
从 Elasticsearch 到 SelectDB,观测云实现日志存储与分析的 10 倍性价比提升
SelectDB 助力观测云完成日志数据存储和分析架构升级,实现整体性价比 10 倍提升,为日志存储和分析场景服务提供强大动力。
|
1月前
|
存储 监控 安全
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
Apache Doris 助力奇安信建设全新日志存储分析平台,提升系统安全性与快速响应能力!
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
|
2月前
|
Linux Perl
Linux 系统快速分析日志定位故障原因的 10 个方法
在 Linux 系统中,日志是一种非常重要的资源。系统管理员可以通过日志记录的内容来检测系统的运行状况,分析问题,做出相应的调整和优化。由于日志文件数量庞大,内容复杂,因此需要使用一些工具和技术帮助管理员进行快速分析和查找。 本文将介绍 Linux 系统中快速分析日志、定位故障的 10 个方法。
434 1
|
2月前
|
SQL 监控 关系型数据库
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
96 0
|
2月前
实际案例分析 - 根据应用程序日志的记录,反查出哪一行 ABAP 代码产生的这条日志试读版
实际案例分析 - 根据应用程序日志的记录,反查出哪一行 ABAP 代码产生的这条日志试读版
14 0
|
3月前
|
消息中间件 分布式计算 大数据
大数据Spark实时搜索日志实时分析
大数据Spark实时搜索日志实时分析
67 1
|
3月前
|
监控 安全 BI
使用日志服务SLS进行OSS可观测分析
本场景主要介绍如何使用SLS提供的CloudLens for OSS功能针对对象存储OSS进行可观测分析,包括资源用量、访问分析、安全分析、异常检测等角度。
242 0
|
3月前
|
关系型数据库 物联网 PostgreSQL
沉浸式学习PostgreSQL|PolarDB 11: 物联网(IoT)、监控系统、应用日志、用户行为记录等场景 - 时序数据高吞吐存取分析
物联网场景, 通常有大量的传感器(例如水质监控、气象监测、新能源汽车上的大量传感器)不断探测最新数据并上报到数据库. 监控系统, 通常也会有采集程序不断的读取被监控指标(例如CPU、网络数据包转发、磁盘的IOPS和BW占用情况、内存的使用率等等), 同时将监控数据上报到数据库. 应用日志、用户行为日志, 也就有同样的特征, 不断产生并上报到数据库. 以上数据具有时序特征, 对数据库的关键能力要求如下: 数据高速写入 高速按时间区间读取和分析, 目的是发现异常, 分析规律. 尽量节省存储空间
342 1
|
4月前
feign如何开启日志及分析
feign如何开启日志及分析
163 0
|
5月前
|
JSON API 数据安全/隐私保护
【Django学习】(十五)API接口文档平台_项目流程分析_日志器_认证_授权
【Django学习】(十五)API接口文档平台_项目流程分析_日志器_认证_授权
相关产品
日志服务
推荐文章
更多