SKYSUKA's Studio.

云服务器日志自动化分析与性能监控

字数统计: 885阅读时长: 3 min
2019/10/04 Share

最近发现一款颜值颇高的开源日志分析工具GoAccess,话不多说先上图,也可以直接查看本站的实时日志分析地址

于是也有了写作本篇blog的动机,用于收录一些实用的服务器日志分析工具,本篇blog也将不时更新内容。

更多好用的开发工具或技术文章可以查看我的TechRepo~

GoAccess

简介

GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.

分析日志文件对于管理员而言是一件不容易的事情,里面包含了非常繁杂的各种信息,目前Linux中有许多工具可以轻松的分析日志,GoAccess就是其中的一款。

正如头图一样,高颜值的可视化日志分析功能是GoAccess是其一大特点,除此之外还有如下功能:

  • 实时。终端200ms刷新,HTML输出1s刷新
  • 支持几乎所有Web Log格式。比如Apache, Nginx, Amazon, S3, Elastic Load Balancing, CloudFront
  • 跟踪页面的响应时间。特别适合发现哪些页面拖慢了整个网站的响应
  • 依赖安装少。GoAccess是用C写的,只需要安装ncurses即可运行
  • 多种输出形式。刚才头图给出的是HTML格式的输出,GoAccess还能提供终端输出:

安装与运行

GoAccess的安装具体可以查看官网,本处贴出centos上的安装方式:

1
2
3
4
5
6
$ wget https://tar.goaccess.io/goaccess-1.3.tar.gz
$ tar -xzvf goaccess-1.3.tar.gz
$ cd goaccess-1.3/
$ ./configure --enable-utf8 --enable-geoip=legacy
$ make
# make install

GoAccess的运行方式比较直接,安装完毕后,直接在命令行里输入如下指令即可:

1
goaccess /var/log/nginx/access.log -o /home/linqunshu.cn/www/report/report.html --log-format=COMBINED --real-time-html

关于服务器日志

通过分析日志可以发现有非常多有趣的现象,这一节分享一些在我的个人站点的日志中发现的故事。

Frequent Not Found URLs(404s)

从图中可以看到访问最多404的是/robots.txt,这是robots协议,它通常告诉网络搜索引擎的漫游器(通常称网络爬虫),本网站中的哪些内容是不应被搜索引擎获取的,哪些是可以被获取的,贴一段关于robots.txt的产生背景:

robots.txt并不是某一个公司制定的,而是早在1993、94年就早已出现,当时还没有Google。真实Robots协议的起源,是在互联网从业人员的公开邮件组里面讨论并且诞生的。即便是今天,互联网领域的相关问题也仍然是在一些专门的邮件组中讨论,并产生(主要是在美国)。
1994年6月30日,在经过搜索引擎人员以及被搜索引擎抓取的网站站长共同讨论后,正式发布了一份行业规范,即robots.txt协议。在此之前,相关人员一直在起草这份文档,并在世界互联网技术邮件组发布后,这一协议被几乎所有的搜索引擎采用,包括最早的altavista,infoseek,后来的google,bing,以及中国的百度,搜搜,搜狗等公司也相继采用并严格遵循。

其实从网站的访问量来看,我的个人主站每天400+的请求量中非常大一部分来自于搜索引擎的爬虫,比如Google,Bing的爬虫。

参考资料

CATALOG
  1. 1. GoAccess
    1. 1.1. 简介
    2. 1.2. 安装与运行
  2. 2. 关于服务器日志
    1. 2.1. Frequent Not Found URLs(404s)
  3. 3. 参考资料