一款实用的日志分析工具:GoAccess

日志分析工具推荐Goaccess-fengzifz

说起日志分析工具,我们通常想起 ELK 日志分析工具,但不要为了 ELK 而使用 ELK,应该要看实际环境和业务需求而定,如果你的业务量是海量 + 分布式,日志分散难以查找,查询速度慢,并希望实时显示日志,那么才要考虑使用 ELK,否则,一般的小型的日志分析工具,甚至直接登录服务器看 log 也跟方便。

本文将介绍如何在 Ubuntu 下安装和使用 GoAccess。

1. 安装

GoAccess 是用 C 语言写的一个日志分析工具,Github 地址是:allinurl/goaccess,官网网站是:GoAccess 官网

注意:

  • 更加详细的安装方式请参考 github。本文以 Ubuntu 为例;
  • Ubuntu 下使用 apt-get install 安装,只能安装旧版本(v0.6),不建议使用这种方式直接安装;
  • 安装时,可能会提示没有 GeoIP 这个库 Missing development files for the GeoIP library,可以检查一下,提前安装好,可以参考 Install GeoIP

我们直接从 Debian & Ubuntu 的仓库获取最新的 GoAccess 的安装包来安装:

1
2
3
4
$ echo “deb https://deb.goaccess.io/ $(lsb_release -cs) main” | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O – https://deb.goaccess.io/gnugpg.key | sudo apt-key add –
$ sudo apt-get update
$ sudo apt-get install goaccess

安装完成之后,运行:

1goaccess –version

查看版本,我写这篇文章时,最新版是 1.2。

2. 使用

GoAccess 的使用也是非常简单,并且支持输入多种格式。

输出 html:

1goaccess /var/log/nginx/access.log -a > report.html

注意:输出报告时,请记得看终端提示,是否提示有 log-formattime-format 等格式错误,如果有,到 /etc/goaccess.conf 里面修改。

这样,我们把 report.html 放在可访问的 web 目录下面,就可以通过浏览器访问,可以查看这个 Live Demo

从 404 这一栏可以看出,服务器经常都会遭受到一些机器的嗅探,他们经常会使用一些开源框架/系统的一些常用路径,来嗅探你的服务器的数据库/管理员的路径等,如果服务器返回的是 200,那么攻击者可能就会采取进一步的行动。

除了 html 报告,像 cvs/json 这些常用的格式也可以输出,同样,GoAccess 也支持实时日志访问:

1goaccess /xxx/xxx/access.log -o /www/xxx/real_time_report.html –real-time-html

这样,你就可以访问 real_time_report.html 来查看实时的日志情况了。

3. 小结

对于日志分析工具,个人建议适合自己的业务和需求就好,在不同的阶段,做不同的事情,ELK 是十分强大,但在业务刚刚起步时,并不一定适合我们。围绕自己的业务,去解决事情,不要为了使用工具而使用工具。

前文也说过,在日志量相对较小时,直接登录服务器查看,或者写个脚本定期抓取分类也是可以的,这里就不在过多地说明了。

另外,有一款用 Rubu 写的超级 Geek 的日志分析工具:glTail.rb 官网 和 glTail.rb Github,也许以后有机会再尝试一下。

You May Also Like

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注