酷!在终端上使用命令行可视化分析日志-阿里云开发者社区

开发者社区> 云雷> 正文

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

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

可视化分析日志的需求


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

这种方式的好处在于:

  • 直接通过终端,无需打开控制台。
  • 通过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,为千亿日志分析的实时计算引擎。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
OSS实时日志查询——访问记录秒级查询与可视化分析
OSS新发布“OSS访问日志实时查询”,用户可在OSS控制台,对OSS访问日志,进行可视化的实时查询与分析统计。该功能可简化用户对OSS访问记录的审计、统计、事件回溯、运维分析、问题定位等工作,提升运维效率,挖掘日志数据价值,提高基于数据的决策能力,助力业务发展。
2312 0
linux命令行介绍及使用(二)
1.在终端输入gconf-editor打开“Apps->Metacity->Global Keybingdings”找到快捷键的设置,找到“Show desktop”可修改显示桌面的快捷方式,默认为d(注:Ctrl和Alt键之间的键为即Windows键) 2.
740 0
React中使用Echarts实现数据可视化的小案例(基础文章)
React中使用Echarts实现数据可视化的小案例(基础文章)
5 0
新功能:日志服务命令行工具ETL发布!
日志服务命令行工具ETL发布,解决数据采集、分析查询、投递归档、外部整合过程中的数据规整痛点,提供实时、可靠、可扩展、可管理的运行模式支持,以及全面简单的ETL规则,并支持丰富的扩展支持。
3026 0
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用(一)
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用
15 0
+关注
云雷
日志计算驱动业务增长 让天下没有难分析的日志
103
文章
2
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载