运行一个网站的挑战之一就是要知道网站服务器在做什么,虽然当网站服务器在高负载或页面响应慢的情况下运行时,各种监视应用程序都可以发出警报,但要完全理解所发生的事情,而要知道这些因素唯一的方法是查看网页日志。阅读日志数据页和理解发生的事情可能需要很多时间。这就是GoAccess的用武之地。GoAccess提供了对日志中发生的情况的实时概述,并提供了统计数据和可视化工具,以帮助传达这些信息。数据既可通过网络浏览器获得,也可在终端获得。本文Hostease美国服务器商主要就怎样使用GoAccess查看网页日志做相关介绍。
首先,需要安装GoAccess。在CentOS和Red Hat系统上,首先需要启用Fedora EPEL存储库,之后的安装非常简单:
sudo yum install goaccess
Debian或Ubuntu系统上存储库中的版本已经很长时间没有更新。不过GoAccess团队拥有自己的存储库,以下是如何安装GoAccess存储库:
echo “deb http://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
安装了GoAccess之后,就可以开始使用它来分析日志文件。默认行为是让GoAccess执行分析并在命令行中显示给定文件的内容:
sudo goaccess /var/log/apache2/access.log
在这种情况下,GoAccess将启动并请求该日志文件的文件格式。对于Apache访问日志,可以选择“NCSA组合日志格式”选项,这将解析该文件并显示要读取的输出。同时,可以用方向键上下滚动来查看信息。问号(?)可以打开一个帮助屏幕,其中包含了更多控件的信息。按q可以退出程序。
如果想在网络浏览器中查看日志输出,需要对配置文件做一些调整。默认情况下,这是 /etc/goaccess.conf文件。
sudo nano /etc/goaccess.conf
这是一个格式完整的文件,其中包含了对所看到内容的大量解释。因此,首先,在“时间格式选项”部分,需要取消对Apache/NGINX的时间格式行的注释:
time-format %H:%M:%S
然后在“日期格式选项”部分,取消对Apache/NGINX的日期格式行的注释:
date-format %d/%b/%Y
接下来,在“日志格式选项”部分,取消对NCSA组合日志格式行的注释:
log-format %h %^[%d:%t %^] “%r” %s Sb “%R” “%u”
现在保存并退出文件。请注意,如果计划查看不同的日志文件,则有许多用于各种日志文件格式的选项。
现在可以考虑用以下方法生成日志信息的网页:
sudo goaccess /var/log/apache2/access.log -o /var/www/html/goaccess.html
请注意,为了在浏览器中查看输出文件,需要将输出文件(用-o标志指定)设置为可以从网站服务器访问的某个位置,本例使用了Apache的默认网站目录的根目录,现在可以在网站上打开那个文件来访问报告。例如:
http://www.example.com/goaccess.html
在本例中,创建了一个一次性报告,在日志文件处于该点时对其进行快照。要生成持续更新的报告,需要在命令中添加“–real-time-html”标记:
sudo goaccess /var/log/apache2/access.log -o /var/www/html/goaccess.html –real-time-html
将注意到,这次GoAccess应用程序将继续运行并打印消息“websocket server ready to accept new client connections”。虽然现在导航到网页看起来和以前一样,但是随着服务器上新连接的出现,它就会出现最新的更新内容。
该操作一个很好的特性是,它并不局限于一次只分析单个日志文件,所以如果在服务器上保存了多个同时访问日志,那么只需全部列出所有日志,GoAccess就可以一起分析它们:
sudo goaccess /var/log/apache2/access.log /var/log/apache2/another-access.log /var/log/apache2/yet-another-access.log -o /var/www/html/goaccess.html
再一次,浏览网页将提供GoAccess对这些日志文件的分析的输出。
以上内容Hostease美国服务器商只是对日志文件和GoAccess做了一些简单的介绍,管理员可以在网站上查看帮助信息和详细信息,寻找它的更多用途。推荐阅读 如何在Linux服务器中清除系统日志。