如何在Debian 7  Apache的安装和使用GoAccess Web日志分析器

介绍

GoAccess允许您使用简单的命令行仪表板实时监控Web服务器日志,以便快速查看和分析流量指标。 它完全在终端中运行,统计信息在一个可滚动的仪表板上组织成单独的面板。 还可以使用GoAccess生成HTML,JSON和CSV网络流量报告。

本教程介绍如何从源代码安装软件,然后演示如何在命令行中使用,查看和导航程序。

GoAccess控制面板

GoAccess将使用来自几乎任何其他Web服务器的日志文件。 但是,日志文件的特定格式必须在GoAccess中定义才能正常运行。

本指南将重点介绍使用Apache作为选定的Web服务器,配置或不配置虚拟主机。

先决条件

请在开始本教程之前完成这些先决条件。

更多的网络流量VPS处理更多的数据GoAccess必须处理 - 在这种情况下更好的。

第1步 - 更新系统包

首先, ssh进服务器具有用户sudo海拔特权。 然后按照以下步骤操作。

ssh sammy@your_server_ip

此命令更新apt-get软件包管理器数据库。

sudo apt-get update

第2步 - 升级系统软件包

将任何新更新安装到Debian系统软件包。

sudo apt-get upgrade

当提示输入新的更新包确认y (是)。

第3步 - 安装构建必备软件包

build essential软件包提供了几个非常重要的子公司软件包,如make所需Debian中和Linux编译软件。 这些都是GoAccess安装阶段后续指南中的必要条件。

下面是如何使用安装的软件包apt-get

sudo apt-get install build-essential

第4步 - 安装GoAccess依赖关系

以下是在VPS上安装和使用GoAccess所需的依赖关系。 通过获取这些apt-get包管理器。

sudo apt-get install libncursesw5-dev libglib2.0-dev libgeoip-dev libtokyocabinet-dev

第5步 - 设置构建目录

现在我们已经有了必要的系统包,我们可以获得并构建GoAccess。

/usr/local/src目录是建立GoAccess软件一个合适的地方。 给这个目录下运行的您当前的Debian用户帐户所有权:

sudo chown $USER /usr/local/src

然后通过命令为同一用户授予目录读取,写入和执行权限:

sudo chmod u+rwx /usr/local/src

切换到该目录的cd命令:

cd /usr/local/src

第6步 - 下载并解压GoAccess源代码

GoAccess是在发布版本0.8.5为其稳定构建在撰写时。 要下载它,使用wget以下命令。

wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz

现在tar命令可用于提取和解压下载的.tar.gz文件及其内容。

tar -zxvf goaccess-0.8.5.tar.gz

第7步 - 编译并安装源代码

更改到新解压缩的目录,如此。

cd goaccess-0.8.5/

运行该目录中的下一个命令显示的两个前缀发现里面配置脚本:

./configure —enable-geoip —enable-utf8

使用make命令来构建安装GoAccess所需的Makefile。

make

以下命令将安装GoAccess(使用以前创建的生成文件 )到系统目录,使其可执行通过Debian的。

sudo make install

第8步 - 编辑GoAccess配置文件

有几个行GoAccess的主配置文件中注释掉了,我们需要以本教程后面上使用的程序的某些高级功能注释

我们将使用编辑文件vi通过以下方式文本编辑器:

sudo vi /usr/local/etc/goaccess.conf

在这种结构的评论被表示为#和装置,服务器将忽略上之后在同一行后续的信息。 在这个文件中,我们需要删除一共有两个#符号注释两行。

首先是date-format设置,它在此处出现这样。

# Apache log date format. The following date format works with any
# of the Apache's log formats below.
#
#date-format %d/%b/%Y

要删除注释符号( # )按j多次砸你的光标到我们想要编辑的线,这是date-format %d/%b/%Y线。 一旦达到该行,并选择#x删除,并删除它。

如果正确完成,您的修正应该如下所示:

# Apache log date format. The following date format works with any
# of the Apache's log formats below.
#
date-format %d/%b/%Y

注意:您可以按ESC和类型:q ,然后ENTER退出文件而不保存更改,如果你认为你犯任何错误或意外改变。

需要被注释掉第二行是一个log-format线条,以及确切的行取决于你的Apache设置。 如果你是,如果你有虚拟主机设置运行只是一个Apache的主机,第二个选择第一个选项。 如果您不确定,您应该按照“非虚拟主机设置”部分。

警告:取消只有这些线路之一

非虚拟主机设置

对于没有虚拟主机的设置,删除以下行的散列( #和以前一样以同样的方式)的象征。

# NCSA Combined Log Format
#
log-format %h %^[%d:%^] "%r" %s %b "%R" "%u"
#

对于虚拟主机设置

用于与虚拟主机的安装,删除以下行的散列( #如之前以相同的方式)符号。

# NCSA Combined Log Format with Virtual Host
#
log-format %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"
#

在取消对之一后, log-format线,按ESC 然后键入:wq ,然后按ENTER 这将写我们对文件所做的更改并退出vi文本编辑器。

我们现在可以对满足支持的格式标准的任何纯文本Apache日志文件运行GoAccess。

第9步 - 将您的用户添加到“adm”组

让我们目前的用户添加到Debian的管理员组(ADM),所以我们可以无需根用户权限的sudo的前缀运行这些命令。

usermod可以通过在改变我们的用户的属性-g参数,我们要添加到(ADM)的组名,其次是有问题的用户(在这种情况下, 森美 )。 请务必将sammy在自己的Linux用户名的下一个命令。

sudo usermod -g adm sammy

通过键入运行上面的命令,断开你的VPS后exit ,然后ENTER 然后使用sudo用户重新登录到VPS。 这是因此,我们用前面取得的用户的变化usermod生效。

exit
ssh sammy@your_server_ip

你现在应该有正确的权限来运行GoAccess因为这无需用户使用sudo,也可以访问Apache日志目录。

现在我们将找到logs目录。

第10步 - 找到日志文件

Web服务器通常记录所有传入和处理的HTTP日志文件请求。

我们需要找到Apache存储其日志的位置,以便我们可以利用它们。 默认情况下,在Debian系统上Apache日志文件存储在:

/var/log/apache2

要查看此目录的内容,可以使用list命令,如下所示:

ls /var/log/apache2

在这里,你会发现前面描述的日志文件,其中一些被压缩成.gz ,如果你的服务器已经运行足够长的文件。 当前正在写入和由Web服务器所处理的最近的一次是未压缩名为所述一个access.log

对于配置的虚拟主机的设置,您可能需要cd到子目录从内部/apache2找到每个主机的日志文件。

如果已经发现这里的日志文件,然后转移到下一个步骤( 第1步1)。

进一步搜索

如果您在查找日志文件时遇到问题,则只需阅读此进一步的信息。

这些访问日志的位置被控制CustomLog Apache的配置指令。 如果您更改了此设置,您可能会在不同的目录中找到您的Apache访问日志。

要查找CustomLog指令以及它设置为,就可以使用grep在Apache的配置文件中的一个,如图下一个命令。

这将输出中添加任何自定义目录apache2.conf文件。

grep CustomLog /etc/apache2/apache2.conf

或者,您可以运行此命令,如果您的服务器上有很多文件,可能需要一些时间:

sudo find / -name access.log

这将显示命名的系统上的所有文件access.log

第1步1 - 运行GoAccess

一旦找到具有Apache服务器日志文件的目录,就可以使用下一个命令在其上运行GoAccess。 在此命令,请务必立即更换/var/log/apache2/access.log用自己的日志文件目录的路径,如果是从标准的Apache不同。

goaccess -f /var/log/apache2/access.log -a

运行此命令后,您将看到GoAccess仪表板。

-f参数告诉程序使用所提供的目录路径, -a参数,可以为每个主机代理的所有记录的统计分析。

可选:提取归档日志

如果你想在旧日志运行GoAccess -压缩.gz类型的文件-它们必须被提取并解压。 该方案将不会在上面所示的命令这些压缩的文件运行。

为此,您可以提取与gunzip如果需要,Debian的计划。

例如:

sudo gunzip /var/log/apache2/access.log.10.gz

access.log.10.gz在此间举行的命令的最后文件名需要匹配要提取的压缩文件名。

第1步2 - 导航GoAccess

这是GoAccess仪表板。

GoAccess控制面板

以下是与信息中心互动的方法:

  • F1h会弹出一个小的帮助窗口,其中列出这里找到本节中的按键及其功能,并提供了一些其他有用的信息。

  • 0-9SHIFT + 0-9选择分别编号的模块并将其设置为主动。 在仪表板上可以看到每个部分的相应数字。

  • oENTER用于扩大仪表盘上的当前选择的模块。 模块将在下一节中解释。

  • j将向下扩大活动的模块中滚动,并k将滚动备份扩展的活跃模块内。

  • s显示可用于活动模块排序选项。

  • 最后,按q将退出程序或当前窗口,或折叠活动的模块,这取决于在仪表板的深度目前的水平。

可以通过以下键实现更多交互:

  • 按下TAB在键盘上键,以便向前移动通过模块。

  • SHIFT + TAB在一起会做最后一个动作的对立面,并通过模块向后遍历。

  • F5可压刷新并重新绘制仪表板。

  • c按下时设置和改变当前的配色方案在仪表板使用。

  • g将焦点移动到第一个项目,并返回信息中心屏幕的顶部。

  • G滚动到仪表盘屏幕上的最后一个项目或底部。

第1步3 - 了解模块

现在,您可以移动界面,让我们看看每个模块实际包含的内容。 这里的部分对应于程序中编号的模块和标题。 显示全部“命中”值是基于分别在所提供的日志文件或文件中找到的请求的总金额(除非另有说明)。

仪表板 - 总体分析请求

信息中心显示的数量:有效请求,无效请求,分析提供的数据所花费的时间,服务器的唯一访问者,唯一请求的文件,唯一的静态文件(通常为图片文件类型),唯一的HTTP引荐来源网址(URL),唯一的404未找到的错误,解析的日志文件的大小,以及最后消耗的任何带宽。

1 - 唯一身份访问者

此模块按天列出,包括日期。 具有相同的IP,同一天,与同一代理的HTTP请求被认为是作为一个独特的访问。 这包括网络爬虫/蜘蛛。

2 - 请求的文件

请求的文件显示在Web服务器上最高度请求的文件,并显示说命中为数字和百分比,与主机进行服役(带宽)的时间以来,使用的是什么协议,什么请求类型使用。

3 - 请求的静态文件

仅包括静态文件请求最常如: jpgcssswfjsgifpng类型的文件,具有相同的量度作为提供每次出现的最后一个模块。

4 - HTTP 404网址

排名与以前的模块具有相同的统计信息,此模块列出了最常见的HTTP 404:未找到错误请求和正在请求的URL。

5 - 主机

主机对连接到您的网络服务器,如连接数,他们的全球 IP地址,以及一些重复相同的指标类型的主机本身的更多详细信息。

这里的扩展模块,可显示原产地像一个主机的反向DNS查询结果更多的信息,和国家,如果-a从早期的说法被启用。 用户代理的列表可以通过选择所需的IP地址,然后按显示的ENTER

6 - 操作系统

这里显示了主机的操作系统,并且对操作系统的使用进行排名。 这是基于唯一的访问,不像大多数其他模块数据。

7 - 浏览器

浏览器模块遵循与最后一个模块相同的概念,除了在这种情况下,用于连接会话的主机的浏览器类型被排序。 同样,这是基于唯一的访问者,而不是总的请求。

8 - 引荐来源网址

如果有问题的主机通过另一个资源访问了该站点,或者从另一个主机链接/转移到您,则将在此模块中提供它们引用的URL。

9 - 参考网站

该模块是几乎相同的最后一个( 参照网址 ); 唯一的区别是显示一般网站地址,而不是推荐的确切原点。

10 - 关键短语

报告在Google搜索,Google缓存和Google翻译中使用的关键字,导致您的网络服务器处理主机。 目前,这只支持谷歌,没有其他搜索引擎。

11 - 地理位置

此模块包含从访问的主机IP地址确定的地理位置的摘要。 如果它是无法确定这一点,将被标记为location unknown

12 - HTTP状态代码

HTTP状态代码包含HTTP请求中的总体状态代码的值的统计信息,以百分比和数量给出。

(可选)进一步的GoAccess用法

移动到你的用户的主目录中cd ,并~通过这些额外的命令继续进行。 二级pwd命令打印当前工作目录,这样你就可以确认你已经正确改变了它。

cd ~
pwd

HTML报告

这是可能通过重新生成一个HTML报告( > )标准输出GoAccess给你选择的任何名称的HTML文件。

在这个例子中,文件被命名为report .html并包括所有( -a可从选择的日志文件)的统计信息。

goaccess -f /var/log/apache2/access.log -a > report.html

新生成html文件,是我们用户的目录中创建。

JSON报告

您可以通过添加创建一个JSON类型的报告-ojson参数的命令。 这里的输出文件具有.json延伸。

goaccess -f /var/log/apache2/access.log -a -o json > report.json

CSV报告

要生成CSV文件,请按照与之前相同的方法; 只是追加csv参数的命令,文件扩展名更改为.csv

goaccess -f /var/log/apache2/access.log -a -o csv > report.csv

运行压缩文件

为了得到压缩文件,通过GoAccess你可以管的输出运行zcat命令到goaccess命令。 接下来的命令显示所有压缩.gz读取文件而无需手动第一提取它们。

zcat /var/log/apache2/access.log.*.gz | goaccess -a

按开始日期过滤

要从指定的开始日期进行过滤,可以使用下一个命令的结构。 这将确保从2015年1月20日开始解析HTTP请求,直到日志文件内容结束。

sed '/20\/Jan\/2015/,$ p' /var/log/apache2/access.log | goaccess -a

注意,只有当您输入的日期实际上包含在传递的日志文件中时,这才会起作用。

过滤天数

您可以挑选特定日期,然后进行过滤以显示当天的流量。 这一次,我们将使用grep这样做。

grep '20/Jan/2015' /var/log/apache2/access.log | goaccess -a

排除主机

排除使用此命令指定的IP地址,替换111.111.111.111与所需的IP地址。

goaccess —exclude-ip=111.111.111.111 -f /var/log/apache2/access.log -a 

远程使用

如果安装了远程机器上,如本地工作站GoAccess,而不是VPS,就可以ssh到你的VPS,然后远程读取Apache的日志文件,通过管道

ssh sammy@your_server_ip 'cat /var/log/apache2/access.log' | goaccess -a

结论

完成本指南后,您应该知道如何安装GoAccess,利用其核心功能,并能够使用其他一些功能,使GoAccess更灵活地工作。

这里是一个完整的概述已经涵盖:

  • 获取和更新必要的Debian系统软件包。
  • 使用其源代码安装和构建GoAccess。
  • 使用Apache Web服务器日志文件运行GoAccess。
  • 在命令行上通过GoAccess交互和导航。
  • 理解GoAccess仪表板中的模块。
  • 创建从重定向的Apache Web服务器日志的不同报告类型。
  • 管道等命令的输出到GoAccess。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏