WEB日志在网站运行中有着不可或缺的作用,它可以用以记录详细访问信息、来访者信息、搜索引擎爬虫信息和错误信息等。通过分析,网站管理员可以迅速的找出一些有价值的重要信息,例如存在哪些404错误,经常被访问的URL是哪些,页面的相应时间、SEO优化效果等。
- 完全实时
面板和指标的时间都定在终端输出上每 200 ms 更新一次,在 HTML 输出上每秒钟更新一次。 - 最小配置
需要你可以只是运行它针对您的访问日志文件,选择日志格式,让 GoAccess 分析访问日志,并向您展示统计数据。 - 跟踪应用程序响应时间
跟踪为请求服务所用的时间。如果您想要跟踪正在减慢网站速度的页面,非常有用。 - 几乎所有 Web 日志格式 GoAccess
都允许任何自定义日志格式字符串。预定义选项包括,Apache、Nginx、Amazon S3、弹性负载平衡、云前等。 - 增量日志处理
需要数据持久性?GoAccess 能够通过磁盘上持久性选项增量处理日志。 - 只有一个依赖
项 GoAccess 用 C 编写。要运行它,只需要 ncurs 作为依赖项。 - 访问者
确定按小时或日期显示运行速度最慢的请求的点击量、访问者、带宽和指标。 - 每个虚拟主机的指标
具有多个虚拟主机(服务器块)?它具有一个面板,显示哪个虚拟主机正在消耗大部分 Web 服务器资源。 - 配色方案可
定制定制 GoAccess,以适合您自己的颜色品味/方案。通过终端,或者简单地在 HTML 输出上应用样式表。 - 对大型数据集
GoAccess 的支持具有分析大型日志的功能,因为它优化了内存中的哈希表。它具有非常好的内存使用和相当不错的性能。此存储还支持磁盘上持久性。 - Docker 支持
功能,从上游构建 GoAccess 的 Docker 映像。使用”卷”映射和编辑,您仍然可以完全配置它。
GoAccess安装方法
使用SSH工具登陆服务器,在Linux命令行状态下:
$ wget https://tar.goaccess.io/goaccess-1.4.3.tar.gz $ tar -xzvf goaccess-1.4.3.tar.gz $ cd goaccess-1.4.3/ $ ./configure --enable-utf8 --enable-geoip=legacy $ make # make install
如果执行到第4步,出现问题,提示“Missing development files for the GeoIP library”的话,需要安装GeoIP。
GeoIP安装方法如下:
$ wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.11/GeoIP-1.6.11.tar.gz $ tar -xzvf GeoIP-1.6.11.tar.gz $ cd GeoIP-1.6.11 $ ./configure $ make # make install
CentOS系统可以直接使用以下命令安装GoAccess(但有可能安装旧版本):
yum install goaccess
GoAccess使用方法
要输出到终端并生成交互式报告:
# goaccess access.log --log-format=COMBINED
其中access.log替换成自己的WEB日志文件路径与文件名,示例:
# goaccess /www/wwwlogs/aaa.log --log-format=COMBINED
输出:
可以使用上下键查看完整包括,Q键退出。
另外还可以输出HTML文件,可使用浏览器查看,具体命令如下:
# goaccess /www/wwwlogs/aaa.log --log-format=COMBINED > /www/wwwroot/aa.html
注意修改/www/wwwroot/aa.html
路径和文件名。生成成功后,在浏览器中访问该html文件即可查看报告,如下图:
如果只分析爬虫,可以使用--crawlers-only
参数,示例:
# goaccess /www/wwwlogs/aaa.log --log-format=COMBINED --crawlers-only > /www/wwwroot/aa.html
如果HTML报告需要实时更新,可使用--real-time-html
参数,示例:
# goaccess /www/wwwlogs/aaa.log --log-format=COMBINED --real-time-html > /www/wwwroot/aa.html
常见问题:
在网站根目录下创建一个子目录,存放HTML报告,并将该子目录设置访问权限。以宝塔面板为例:“网站 》设置 》目录保护”
goaccess命令行支持多个日志文件传入:
# goaccess access1.log access2.log --log-format=COMBINED
使用--html-refresh=<seconds>
参数,seconds的数值单位为秒,默认刷新时间为1秒。