日志分析

一、 应急背景

日志量过大,说明里面可能有扫描、爆破、爬虫等等操作,那么先提取出出现次数最多前几位IP,分析是否有以上行为。


二、日志分割

一般的编辑器无法直接打开大文件文本,如超过4个G大的log文本 。那么该如何做?直接拖到linux主机下用cat vim等相关命令加载,但是加载速度太慢,在此不做推荐。下面介绍利用shell下的split命令切割log文件。

split [-bl] file [prefix]  

split命令参数说明:

-b, 按大小进行切分。可以指定单位BB,KB,MB。-l, 按行数进行切分。
-d, 使用数字后缀。
-a, 指定后缀的长度。
prefix:分割后产生的文件名前缀。

这里我要分割1.log(大小为1个G左右)文件,分成每份300MB,并且前缀为file+三位的数字后缀,那么对应的命令是:

split -b 300MB 1.log -d -a 3 file

[5{YS72XTXIMLJI03JE_3@1.png6KW_V7EZHPS]A8~J[)(ADIN.png这里只做演示,其实1个G的文件,直接cat加载后进行后续操作简单些~比如剔除操作啥的。

二、日志剔除

我们可以看到日志的格式为酱紫的~ 也算符合常规的格式。38@]GZ}A}KN~XABN3BL}()J.png那么想要统计IP出现次数,就需要将每行 – - 之后的所有内容替换为空,使用命令为:

cat 1.log | sed -e 's/ - -.*//g' > out1.log

sed命令参数说明:

-e  以选项中指定的script来处理输入的文本文件(常用于正则表达式)
s   替换指定字符
g   替换每一行内的所有匹配
.*  表示后面任意长度的任意字符

我们打开剔除后的文件out1.log

48]YW)O1Y~DV9H8O7Y}QTLH.png三、日志排序

杂乱无章的日志IP,得将其排序后才能方便阅读。

使用sort命令如下:

sort out1.log > out2.log

打开out2.log,发现已经按照IP的ASCII排序

@C52PE_FM%(UD@PE055AJ_4.png

当然,也可以不用排序直接进行统计,只是为了演示~

四、日志统计

从这里开始,就可以对日志进行统计,附上python脚本:

本python脚本适用于常见格式的web日志。如格式不同,则需要自己修改使用。

提取出出现次数大于1000的IP。

]71[N4A`OC3_0M1)AY2]VKP.png

(H[~{R%SHZZ`8UA63SR`ETP.png  发现有两个IP的次数大于5000次,得重点关注下。

五、日志去重

如果想要将上述的日志排序后的结果进行去重,那么使用如下命令:

sort -u out2.log > out3.log

打开out3.log后:

1HK~P@RM5NL90VZVNLW(P2L.png已经去重完毕。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值