免费数据分析工具:secsoso
Posted zhulinu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了免费数据分析工具:secsoso相关的知识,希望对你有一定的参考价值。
前段时间思考了理想数据分析平台,之后我们根据这个思路开发了spl语言并提供了一个数据分析平台,这个平台主要用在搜索ES,数据库索引中的数据。但后来发现对文件的事后处理也是个非常重要的事情。当问题发生后,很多时候需要对文件进行分析取证。在linux下还有一堆的命令可以使用,但很多时候使用起来也比较麻烦。在windows基本没有啥好的工具。在这种情况下我们开发了一款免费的对文件分析的小工具secsoso.
先举一个示例:列出当天访问次数最多的IP命令。
在Linux下可以用如下命令:
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20
用secsoso的命令为:
secsoso ‘access.log|stats count($1) by ip|sort 20 -count_ip’
通过对比发现,两者有类似的地方,也有不同的地方,类似的地方都是用|作为管道来进行操作,不同的地方是secsoso只有一个命令,其他的都是内部的参数使用,而且这个参数命令和sql有些类似,方便学习和记忆。
secsoso不仅仅是linux命令的一些替换,有时候用linux命令不太好实现的事情用secsoso也能实现,举例如下:
统计每个小时的访问次数
secsoso 'access.log|eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats count(date) by tspan(date,"1h")'
这个是对日志中的时间进行了转换,通过转换后的时间可以用到时间统计的一些方法。这种场景用linux脚本实现可能会比较麻烦。
在举例几个复杂的场景来验证下secsoso的功能:
统计具有cc攻击的用户ip(单位时间内访问次数超过阈值的用户),每小时大于100
secsoso 'access.log|eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats $1 as ip,count(date) as count by tspan(date,"1h"),$1|search count>100'
结果如下:
tspan_date ip count
2013-09-18 08:00:00 114.252.89.91 79
2013-09-18 08:00:00 116.24.236.137 68
2013-09-18 08:00:00 202.84.17.41 84
2013-09-18 08:00:00 203.192.6.59 83
网站登录密码猜测
比如5分钟大于10次同一个ip登录密码错误,认为是密码猜测,然后把所有IP找到,日志示例:
114.221.137.86 - - [11/Sep/2019:10:25:39 +0800] "POST /login HTTP/1.1" 200 1111 https://secilog.secisland.com/login Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/73.0.3683.105 Safari/537.36 Vivaldi/2.4.1488.40
secsoso 'access.log $6="*POST" $7="*/login" $9="200"| eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats count($1) as count by tspan(date,"5m"),$1| search count>10|stats sum(count) by $1'
结果如下:
$1 sum_count
111.192.165.229 14
通过以上分析可以发现,secsoso可以满足日常生活的很多统计分析功能。可以作为linux或者windows平台上的一个有利的补充。
赛克蓝德是一家数据分析公司,本着数据改变生活的理念,致力于提供方便好用的数据分析产品。
以上是关于免费数据分析工具:secsoso的主要内容,如果未能解决你的问题,请参考以下文章