介绍
GoAccess允许您使用简单的命令行仪表板实时监控Web服务器日志,以便快速查看和分析流量指标。 它完全在终端中运行,统计信息在一个可滚动的仪表板上组织成单独的面板。 还可以使用GoAccess生成HTML,JSON和CSV网络流量报告。
本教程介绍如何从源代码安装软件,然后演示如何在命令行中使用,查看和导航程序。
GoAccess将使用来自几乎任何其他Web服务器的日志文件。 但是,日志文件的特定格式必须在GoAccess中定义才能正常运行。
本指南将重点介绍使用Apache作为选定的Web服务器,配置或不配置虚拟主机。
先决条件
请在开始本教程之前完成这些先决条件。
VPS与Debian 7作为其操作系统
在使用sudo海拔特权VPS用户帐户。
使用活动或先前活动的HTTP流量安装的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仪表板。
以下是与信息中心互动的方法:
按
F1
或h
会弹出一个小的帮助窗口,其中列出这里找到本节中的按键及其功能,并提供了一些其他有用的信息。0-9
或SHIFT + 0-9
选择分别编号的模块并将其设置为主动。 在仪表板上可以看到每个部分的相应数字。o
或ENTER
用于扩大仪表盘上的当前选择的模块。 模块将在下一节中解释。j
将向下扩大活动的模块中滚动,并k
将滚动备份扩展的活跃模块内。s
显示可用于活动模块排序选项。最后,按
q
将退出程序或当前窗口,或折叠活动的模块,这取决于在仪表板的深度目前的水平。
可以通过以下键实现更多交互:
按下
TAB
在键盘上键,以便向前移动通过模块。按
SHIFT
+TAB
在一起会做最后一个动作的对立面,并通过模块向后遍历。F5
可压刷新并重新绘制仪表板。c
按下时设置和改变当前的配色方案在仪表板使用。g
将焦点移动到第一个项目,并返回信息中心屏幕的顶部。G
滚动到仪表盘屏幕上的最后一个项目或底部。
第1步3 - 了解模块
现在,您可以移动界面,让我们看看每个模块实际包含的内容。 这里的部分对应于程序中编号的模块和标题。 显示全部“命中”值是基于分别在所提供的日志文件或文件中找到的请求的总金额(除非另有说明)。
仪表板 - 总体分析请求
信息中心显示的数量:有效请求,无效请求,分析提供的数据所花费的时间,服务器的唯一访问者,唯一请求的文件,唯一的静态文件(通常为图片文件类型),唯一的HTTP引荐来源网址(URL),唯一的404未找到的错误,解析的日志文件的大小,以及最后消耗的任何带宽。
1 - 唯一身份访问者
此模块按天列出,包括日期。 具有相同的IP,同一天,与同一代理的HTTP请求被认为是作为一个独特的访问。 这包括网络爬虫/蜘蛛。
2 - 请求的文件
请求的文件显示在Web服务器上最高度请求的文件,并显示说命中为数字和百分比,与主机进行服役(带宽)的时间以来,使用的是什么协议,什么请求类型使用。
3 - 请求的静态文件
仅包括静态文件请求最常如: jpg
, css
, swf
, js
, gif
和png
类型的文件,具有相同的量度作为提供每次出现的最后一个模块。
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类型的报告-o
和json
参数的命令。 这里的输出文件具有.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。