0x01 前言
我使用ELK套件分析nginx日志,用kibana生成酷炫的可视化图表。作为站长的我们可能比较关心自己站点被搜索引擎爬行的数量,那么ELK可以达成你的愿望。
如果你还没有配置ELK,可以参考以下内容:
0x02 准备
在使用kibana新建图表之前,你需要有数量可观的nginx日志,并且日志内包含ua信息,并且ua信息内需要含有各种搜索引擎爬行的记录。例如:
#google 图片爬虫 66.249.65.102 - - [29/Dec/2016:19:43:41 +0800] "GET /wp-content/uploads/2016/12/1481342832.jpg HTTP/1.1" ngx.hk 200 25145 "-" "Googlebot-Image/1.0" "-" 127.0.0.1:8080 200 EXPIRED "image/jpeg" 0.021 > 0.021 #MJ12bot 爬虫 163.172.68.132 - - [29/Dec/2016:19:31:33 +0800] "GET /tag/%E7%9B%91%E6%8E%A7 HTTP/1.1" ngx.hk 200 17206 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-" 127.0.0.1:8080 200 MISS "text/html; charset=UTF-8" 0.915 > 0.915
还需要有一套配置完成的ELK套件,如果一切都完美地完成,那么处理完成之后的ua信息应该和下图类似:
![](https://ngx.hk/wp-content/uploads/2016/12/1483012603.jpg)
![](https://ngx.hk/wp-content/uploads/2016/12/1483012604.jpg)
0x03 图表
一切都准备就绪,就可以通过kibana建立相关图表。
单击kibana中的Visualize并点选pie chart建立圆饼图:
![](https://ngx.hk/wp-content/uploads/2016/12/1483012605.jpg)
然后根据实际情况选择索引:
![](https://ngx.hk/wp-content/uploads/2016/12/1483012606.jpg)
然后需要选择切片(Slice Size)的聚合模式、在切片分割中使用terms并选择通过字段(Field):ua.name进行分割:
点击顶部的run按钮,会发现所有ua.name都包含在内,然而这并不符合我们的要求:
我们还需要通过高级配置通过正则语法进行细致的匹配,点击下方的Advanced,在Include Pattern中添加以下内容:
.*bot.*|.*spider.*|.*crawler.*
再次点击运行,即可达成目标:
我的网站对于搜索引擎来说是一个新站,因为我换过好几次域名,在写这篇文章的前2天我再次更换了域名,从上面的图表可以看出,Google的蜘蛛真的很勤奋。
最后记得保存,点击顶部的save,赋予这个图表一个名称并保存即可。
0x04 结语
通过图表可以得知蜘蛛爬行的次数,还可以了解互联网中的各种爬虫,除了常见的Google、baidu、yandex和bing,原来还有许多少见的爬虫。