在 Linux 中以交互方式实时查看Apache web访问统计

在 Linux 中以交互方式实时查看Apache web访问统计

无论你是在网站托管业务,还是在自己的VPS上运行几个网站,你总会有需要显示访客统计信息,例如前几的访客、访问请求的文件(无论动态或者静态)、所用的带宽、客户端的浏览器,和访问的来源网站,等等。

GoAccess 是一款用于Apache或者Nginx的命令行日志分析器和交互式查看器。使用这款工具,你不仅可以浏览到之前提及的相关数据,还可以通过分析网站服务器日志来进一步挖掘数据 - 而且这一切都是在一个终端窗口实时输出的。由于今天的大多数web服务器都使用Debian的衍生版或者基于RedHat的发行版来作为底层操作系统,所以本文中我告诉你如何在Debian和CentOS中安装和使用GoAccess。

在Linux系统安装GoAccess

在Debian,Ubuntu及其衍生版本,运行以下命令来安装GoAccess:


  1. # aptitude install goaccess

在CentOS中,你将需要使你的EPEL 仓库可用然后执行以下命令:


  1. # yum install goaccess

在Fedora,同样使用yum命令:


  1. # yum install goaccess

如果你想从源码安装GoAccess来使用更多功能(例如 GeoIP 定位功能),需要在你的操作系统安装必需的依赖包,然后按以下步骤进行:


  1. # wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz
  2. # tar -xzvf goaccess-0.8.5.tar.gz
  3. # cd goaccess-0.8.5/
  4. # ./configure --enable-geoip
  5. # make
  6. # make install

以上安装的版本是 0.8.5,但是你也可以在该软件的网站下载页确认是否是最新版本。

由于GoAccess不需要后续的配置,一旦安装你就可以马上使用。

运行 GoAccess

开始使用GoAccess,只需要对它指定你的Apache访问日志。

对于Debian及其衍生版本:


  1. # goaccess -f /var/log/apache2/access.log

基于红帽的发行版:


  1. # goaccess -f /var/log/httpd/access_log

当你第一次启动GoAccess,你将会看到如下的屏幕中选择日期和日志格式。正如前面所述,你可以按空格键进行选择,并按F10确认。至于日期和日志格式,你可能需要参考Apache 文档来刷新你的记忆。

在这个例子中,选择常见日志格式(Common Log Format(CLF)):

然后按F10 确认。你将会从屏幕上看到统计数据。为了简洁起见,这里只显示了首部,也就是日志文件的摘要,如下图所示:

通过 GoAccess来浏览网站服务器统计数据

你可以按向下的箭头滚动页面,你会发现以下区域,它们是按请求排序的。这里提及的目录顺序可能会根据你的发行版或者你所选的安装方式(从源和库)不同而不同:

  1. 每天唯一访客(来自同样IP、同一日期和同一浏览器的请求被认为是是唯一访问)

  2. 请求的文件(网页URL)

  3. 请求的静态文件(例如,.png文件,.js文件等等)
  4. 来源的URLs(每一个URL请求的出处)
  5. HTTP 404 未找到的响应代码

  6. 操作系统
  7. 浏览器
  8. 主机地址(客户端IP地址)

  9. HTTP 状态代码

  10. 前几位的来源站点
  11. 来自谷歌搜索引擎的前几位的关键字

如果你想要检查已经存档的日志,你可以通过管道将它们发送给GoAccess,如下:

在Debian及其衍生版本:


  1. # zcat -f /var/log/apache2/access.log* | goaccess

在基于红帽的发行版:


  1. # cat /var/log/httpd/access* | goaccess

如果你需要上述部分的详细报告(1至11项),直接按下其序号再按O(大写o),就可以显示出你需要的详细视图。下面的图像显示5-O的输出(先按5,再按O)

如果要显示GeoIP位置信息,打开主机部分的详细视图,如前面所述,你将会看到正在请求你的服务器的客户端IP地址所在的位置。

如果你的系统还不是很忙碌,以上提及的章节将不会显示大量的信息,但是这种情形可以通过在你网站服务器越来越多的请求发生改变。

保存用于离线分析的报告

有时候你不想每次都实时去检查你的系统状态,可以保存一份在线的分析文件或打印出来。要生成一个HTML报告,只需要通过之前提到GoAccess命令,将输出来重定向到一个HTML文件即可。然后,用web浏览器来将这份报告打开即可。


  1. # zcat -f /var/log/apache2/access.log* | goaccess > /var/www/webserverstats.html

一旦报告生成,你将需要点击展开的链接来显示每个类别详细的视图信息:

可以查看youtube视频:https://youtu.be/UVbLuaOpYdg 。

正如我们通过这篇文章讨论,GoAccess是一个非常有价值的工具,它能给系统管理员实时提供可视的HTTP 统计分析。虽然GoAccess的默认输出是标准输出,但是你也可以将他们保存到JSON,HTML或者CSV文件。这种转换可以让 GoAccess在监控和显示网站服务器的统计数据时更有用。

原文发布时间:2015-04-29

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-17 04:34:41

在 Linux 中以交互方式实时查看Apache web访问统计的相关文章

Linux中使用cat命令查看系统信息的方法

Linux中使用cat命令查看系统信息的方法 cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) cat /proc/interrupts - 中断 cat /proc/ioports - 设备IO端口 cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size) cat /proc/partitions - 所有设备的所有分区 cat /proc/pci - PCI设备的信息

linux中使用salt 批量安装apache服务

top.sls 是配置管理的入口文件,一切都是从这里开始,在master 主机上,默认存放在/srv/salt/目录. top.sls 默认从 base 标签开始解析执行,下一级是操作的目标,可以通过正则,grain模块,或分组名,来进行匹配,再下一级是要执行的state文件,不包换扩展名. 一.创建 /srv/salt/top.sls [root@localhost salt]# cat top.sls base:   '*':     - apache 二.定义pillar文件 [root@

简析Linux中如何改变文件或目录的访问权限_unix linux

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

linux中inotify+rsync实时同步配置教程

背景 我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题.但当web文件越来越多(百万级数量html,jpg等小 文件),同步就越来越慢,根本做不到实时,按照网上的调优方法都尝试过,问题根本没有解决.经过我一翻细致研究,终于把慢的核心问题研究明白,先总结一句 inotifywait响应不会有延迟,rsync也很快.大家同样有慢的烦恼,那是因为网上的inotify+rsync的教程都是坑.下面我们来分 析. inotifywait 单独分析 /usr/local/b

linux中vsftp配置及查看FTP日志详解

FTP服务器的日志设置,可以通过修改主配置文件/etc/vsftpd.conf实现.主配置文件中与日志设置有关的选项包括xferlog_enable .xferlog_file 和dual_log_enable 等. xferlog_enable 如果启用该选项,系统将会维护记录服务器上传和下载情况的日志文件.默认情况下,该日志文件为 /var/log/vsftpd.log.但也可以通过配置文件中的 vsftpd_log_file 选项来指定其他文件.默认值为NO. xferlog_std_fo

linux中利用dmidecode命令查看Linux服务器硬件信息

对于大部分普通服务器用户来说,我们选择VPS.服务器产品的时候比较关心的是产品的费用.服务器的速度以及稳定性,更有就是服务商家的服务(尤其不能跑路).随着我们使用服务器时间的推移,以及会看到各个不同的商家产品的时候,就会需要有所对比,严谨的用户会更为的关注产品的硬件配置信息.   因为在主机行业中,配置的差距关乎到产品的成本和费用,至少我们要弄明白不能被人忽悠.这不刚才一篇关于RAKsmart服务器评测文章的时候有接触到使用dmidecode命令查看服务器主板.硬盘等硬件信息.所以在这篇文章中,

linux中利用shell脚本查看占用swap的进程

查看进程在占用swap分区的脚本 命令脚本如下:  代码如下 复制代码 for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr 查看占用swap的进程  代码如下 复制代码 #!/bin/bash   echo -e `d

linux中syscall调用号查看

可以用locate查找: locate unistd_32 //或者 locate unistd_64 以下是本猫在ubuntu下返回的结果: /usr/src/linux-headers-3.16.0-33/arch/sh/include/uapi/asm/unistd_32.h //和 /usr/include/x86_64-linux-gnu/asm/unistd_64.h

在Linux中使用Alpine工具在命令行里访问Gmail的教程

  在这个帖子中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:访问 Google 的 Gmail 服务,为此,我们将使用 Alpine,一个基于 ncurses 的多功能命令行邮件客户端(不要和 Alpine Linux 搞混淆).我们将在 Alphine 中配置 Gmail 的 IMAP 和 SMTP 设定,通过 Google 的邮件服务器在终端环境中收取和发送邮件.在这个教程的最后,你将发现只需几步就可以在 Alpine 中使用其他的邮件服务. 诚然,已有许多卓越的基于 GU