GoAccess 是一个开源实时 Web 日志分析器和交互式查看器,可在Linux系统上的 终端中或通过浏览器运行。它为需要动态可视化服务器报告的系统管理员提供快速且有价值的 HTTP 统计信息。
GoAccess解析指定的Web日志文件并将数据输出到X终端。特点包括:
:所有面板和指标都定时在终端输出上每 200 毫秒更新一次,在 HTML 输出上每秒更新一次。
:您只需针对访问日志文件运行它,选择日志格式,然后让 GoAccess 解析访问日志并向您显示统计信息。
:跟踪处理请求所花费的时间。如果您想跟踪减慢网站速度的页面,则非常有用。
:GoAccess 允许任何自定义日志格式字符串。预定义选项包括 Apache、Nginx、Amazon S3、Elastic Load Balancing、CloudFront 等。
:需要数据持久化?GoAccess 能够通过磁盘持久性选项增量处理日志。
:是用 C 编写的。要运行它,您只需要 ncurses 作为依赖项。就是这样。它甚至拥有自己的 Web Socket 服务器 — http://gwsocket.io/。
:按小时或日期确定点击量、访问者、带宽和最慢运行请求的指标。
:拥有多个虚拟主机(服务器块)?它有一个面板,显示哪个虚拟主机消耗了大部分 Web 服务器资源。
:非常适合检测恶意流量模式并相应地阻止它们。
:定制 GoAccess 以适合您自己的色彩品味/方案。通过终端,或者简单地在 HTML 输出上应用样式表。
:GoAccess 凭借其优化的内存哈希表,能够解析大型日志。它具有非常好的内存使用率和相当好的性能。该存储还支持磁盘持久性。
:能够从上游构建 GoAccess 的 Docker 映像。您仍然可以通过使用卷映射和编辑来完全配置它goaccess.conf。
GoAccess 允许任何自定义日志格式字符串。预定义的选项包括 但 不限于:
- Amazon CloudFront(下载分配)。
- Amazon Simple Storage Service (S3)
- AWS 弹性负载均衡
- 组合日志格式 (XLF/ELF) Apache |Nginx的
- 通用日志格式 (CLF) Apache
- 谷歌云存储。
- Apache 虚拟主机
- Squid原生格式。
- W3C 格式 (IIS)。
- Caddy 的 JSON 结构化格式。
- Traefik 的 CLF风格
本次实践为个人测试环境,操作系统版本为centos7.6。
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Ubuntu环境下部署GoAccess工具及其基本使用。
检查本地操作系统版本,当前版本为Ubuntu 22.04.1 LTS。
检查系统内核版本,当前内核版本为5.15.0-89-generic。
对于Ubuntu 22.04.1 LTS版本,将镜像源配置文件/etc/apt/sources.list修改内容如下。
执行以下命令,更新软件列包表。
查询软件源中是否有 goaccess软件包,我们可以已经成功查找到goaccess软件包。
可以在Linux的个版本上,执行以下编译安装命令。
本次是在Ubuntu上实践,我们可以使用以下命令安装。
其他发行版上安装,可以参考以下安装命令。
- 在 RHEL / CentOS上安装
- 在Fedora上安装
- 在Arch Linux上安装
使用,可以查看goaccess详细帮助信息。
检查安装goaccess版本,当前安装版本为。
本地服务器我们安装Apache,并启动apache2服务。
启动apache2服务,并设置开机自启。
查看apache2服务状态
执行以下命令,监控Apache日志,其中允许在命令行上实时查看日志,
我们在本地浏览器上访问:,可以看到成功访问到apache的初始页面。
我们再次回到本机上,看到终端上已经成功显示日志信息。Web 服务器的日志统计将打印在终端上。
我们还可以通过重定向来将 web 服务器日志以优雅而直观的方式呈现在一个仪表板上。我们可以将输出文件指定为linux_web.html。
在终端查看生成的linux_web.html文件
将生成的linux_web.html文件导出到本地,使用本地浏览器打开。
新增监听8050端口
编辑Apache2的默认配置文件。运行以下命令打开000-default.conf文件进行编辑。
在 标签中添加以下代码块来配置端口 8050 和网站目录
生成日志分析网页文件
重启apache2服务
浏览器输入:,将IP替换为自己服务器IP地址。
系统安装中文包
执行以下命令,设置系统简体中文。
可以看到Ubuntu系统的默认语言和字符集设置为简体中文(zh_CN)
重新生成日志分析文件
- 终端命令行显示
- 重新浏览器访问,可以看到已经成功切换到中文。