分析日志文件对于Linux管理员来说可能是一个真正令人头疼的问题,因为它记录了很多东西。大多数新手和初级管理员不知道如何分析。如果你在分析日志方面有很多知识,那么你就是*NIX系统高手。Linux中有很多工具可以方便地分析日志。GoAccess是允许用户轻松分析Web服务器日志的工具之一。我们将在本文中详细讨论GoAccess工具。GoAccessGoAccess是一个实时网络日志分析器和交互式查看器,可以在*nix系统的终端中运行或通过浏览器访问。GoAccess需要很少的依赖项,它是用C编写的,只需要ncurses。它支持Apache、Nginx和Lighttpd日志。它为需要动态可视化服务器报告的系统管理员提供即时且有价值的HTTP统计信息。GoAccess可以解析指定的Web日志文件,并将数据输出到X终端和浏览器。GoAccess被设计成一个基于终端的快速日志分析器。其核心思想是在不使用浏览器的情况下,快速实时地分析和查看网络服务器统计数据。默认输出在终端中,它还能够生成完整、独立的实时HTML报告,以及JSON和CSV报告。GoAccess支持任何自定义日志格式,包括以下预定义的日志格式选项:Apache/Nginx中的组合日志格式XLF/ELF、Apache中的通用日志格式CLF,但不限于。GoAccess功能完全实时:所有指标在终端上每200毫秒更新一次,在HTML输出上每秒更新一次。跟踪应用程序响应时间:跟踪为请求提供服务所需的时间。如果您想追踪使您的网站变慢的页面,这很有用。访问者:按小时或日期确定运行最慢的请求的命中、访问者、带宽和指标。MetricsbyVirtualHost:如果有多个虚拟主机(服务器),它会提供一个面板,显示哪些虚拟主机消耗了大部分Web服务器资源。如何安装GoAccess?我建议用户在包管理器的帮助下从发行版的官方存储库安装GoAccess。它在大多数发行版官方存储库中可用。我们知道我们在标准发行版中得到过时的包,而滚动版本总是包含最新的包。如果您使用标准发行版运行操作系统,我建议您检查替代方案,如PPA或官方GoAccess维护者存储库等,以获取最新的软件包。对于Debian/Ubuntu系统,使用APT-GET命令或APT命令在您的系统上安装GoAccess。#aptinstallgoaccess要获取最新的GoAccess包,请使用以下官方GoAccess存储库。$echo"debhttps://deb.goaccess.io/$(lsb_release-cs)main"|sudotee-a/etc/apt/sources.list.d/goaccess.list$wget-O-https://deb.goaccess.io/gnugpg.key|sudoapt-keyadd-$sudoapt-getupdate$sudoapt-getinstallgoaccess对于RHEL/CentOS系统,使用YUM包管理器在您的系统上安装GoAccess。#yuminstallgoaccess对于Fedora系统,使用DNF包管理器在您的系统上安装GoAccess。#dnfinstallgoaccess对于基于ArchLinux/Manjaro的系统,使用Pacman包管理器在您的系统上安装GoAccess。#pacman-Sgoaccess对于openSUSELeap系统,使用Zypper包管理器在您的系统上安装GoAccess。#zypperinstallgoaccess#zypperar-fobs://server:http#zypperref&&zypperingoaccess如何使用GoAccess?成功安装GoAccess后。只需输入goaccess命令,然后输入Web服务器日志位置即可查看。#goaccess[options]/path/to/WebServer/access.log#goaccess/var/log/apache/2daygeek_access.log执行以上命令时,会要求你选择日志格式配置。我用Apache访问日志对此进行了测试。Apache日志分为十五个部分。详情如下。主要部分显示了十五个部分的摘要。下面的屏幕截图包括四个部分,例如唯一访问者、请求的文件、静态请求、未找到的URL。以下截图包括访客主机名和IP、操作系统、浏览器、时间分布等四个部分。下面的截图包括源URL、源网站、谷歌的搜索引擎结果、HTTP状态码等四个部分。如果要生成html报告,请使用以下命令。最初我在尝试生成html报告时遇到了错误。#goaccess2daygeek_access.log-a>report.htmlGoAccess-版本1.3-2018年11月23日11:28:19配置文件:未使用配置文件发生致命错误错误发生在:src/parser.c-parse_log-2764Notimeformatwasfoundonyourconffile.Parsing...[0][0/s]它说“在您的conf文件中找不到时间格式”。要解决此问题,请向其添加“COMBINED”日志格式选项。#goaccess-f2daygeek_access.log--log-format=COMBINED-o2daygeek.htmlParsing...[0,165][50,165/s]GoAccess还允许您通过过滤和解析访问和分析实时日志。#tail-f/var/log/apache/2daygeek_access.log|goaccess-请参阅其手册页或帮助以获取更多详细信息。#mangoaccess或#goaccess--help
