本文由ITSEO学员蔡亮授权ITSEO独家发布,转载注明出处!

 

常见的日志分析工具,功能太少,维度太少,无法定制,只能对一些特定格式的日志进行分析,效率低下,过大的日志需要很长时间或者根本无法分析。很多日志分析工具也只能一次性列出所有的数据,而不能看出一段时间内数据的变化情况,夜息叔叔也说了,日志分析要自动化,学习shell的过程中,也考虑了一下使用shell自动化分析日志的问题。虽然有用shell建立自动日志分析系统的想法,但现在失业,一时还用不上,暂时没有去把想法变成现实,如有错误欢迎砖拍。

详细的shell处理日志时的命令可以参考 ITSEO-老狼 同学的文章使用shell进行日志分析

1.自动运行

shell脚本只需要把所有命令放到一个文本之中就可以了,windowslinux都是能够实现sh脚本的定时运行的(具体方法请自行搜索)

2.日志获取

2.1shell是可以登录ftp下载文件的,只需要将已下载的日志文件名存储到固定的文本之中,下载时比对已经存在的文件名,下载新的日志文件就行了。具体步骤就是 登陆ftp--->进入固定目录----->获取所有文件名----->对比出新文件名------>下载。

3.数据存储

把需要长期监控的数据放到csv文件中,每日一行,用excel打开或者另存为excel后可以很方便的生成图表。(当然也可以存数据库,推荐用csv,简单有效)

4.数据获取

比较简单的方法就是需要的每个数据写一条命令去获取,第一条数据直接存储(用>),后面的追加(>>)到同一个文本文件中,然后再把每天的数据,添加到固定的csv文件末尾 awk '{printf $0}'  可以直接把竖排数据变横排)

5.周报问题(如果和日报需要的数据不同)

单独新建一个7天和30天固定运行一次的脚本,自动分析前七天和前30天的所有日志。从2中存储的已下载日志文件名的文本中,可以提取最后7天或者30天的日志文件名,然后进行分。析(和每日的日志分析相比,就是多了提取前7天的日志文件名,然后由cat 1变成了cat 1,2,3,4,5,6,7)

以上在个人的windows系统上也是比较容易实现的,以后每天就可以很方便收集网站的运行数据了。

补充:

Csv格式举例

日期

Bd抓取数

xx目录抓取数

Spider 404

Xxxx

date

10000

1000

100

1024

date

11000

1100

2000

1024

在存储好数据之后,还可以用awk取数比对最后两天的变化比例,超过多少就执行xxxx方法,比如在桌面输出一个命名为“警告!ddxxx数据波动”的文本文件

 

最好是直接把脚本放在服务器端执行,不同的数据可以制作多份csv文件,定时自动email给相关人员

缺点就是,中间很多过程可能很多数据需要存储到临时文件中,然后再用下一个命令读取,过程比较繁琐,重复的操作也比较多。还是推荐有能力强的同学用程序去实现,夜息叔叔还说过,搞seo最主要的就是和程序员搞基,把正确的需求提出来,让程序员基友去实现才是王道。