目录
1. 介绍
2. 功能
3. 支持的格式
4. 安装
从发布版本构建
从GitHub构建(开发)
命令行安装
5. 使用
5.1 监视Apache日志
5.2 通过web仪表板查看日志
浏览器访问
5.3 汉化设置
测试访问
1. 介绍
GoAccess是一个开源的实时网络日志分析器和交互式查看器,它可以在 *nix系统的终端上运行,也可以通过浏览器运行。它为系统管理员提供了快速而有价值的HTTP统计数据,这些统计数据需要动态的可视化服务器报告。
GitHub - allinurl/goaccess: GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser. - allinurl/goaccesshttps://github.com/allinurl/goaccess中文网站
GoAccess - 中文站 - 可视化 Web 日志分析工具https://www.goaccess.cc/
2. 功能
GoAccess解析指定的Web日志文件并将数据输出到X终端。功能包括:
-
完全实时
所有面板和指标都定时更新,每200 ms在终端输出上更新一次,每秒钟在HTML输出上更新一次。 -
所需的最少配置
你可以只对你的访问日志文件运行它,选择日志格式,让GoAccess解析访问日志并显示统计数据。 -
跟踪应用程序响应时间
跟踪处理请求所用的时间。非常有用,如果你想跟踪页面,使您的网站变慢。 -
几乎所有的Web日志
GoAccess允许任何自定义日志格式字符串。 预定义选项包括Apache,Nginx,Amazon S3,Elastic Load Balancing,CloudFront等。 -
增量日志处理
需要数据持久性?GoAccess能够通过磁盘上的持久性选项增量地处理日志。 -
只有一个依赖
GoAccess是用C写的。要运行它,您只需要ncurses作为依赖项。就是这样,它甚至有自己的Web Socket服务器-http://gwsocket.io/。 -
游客
按小时或日期确定最慢运行请求的点击量、访问者、带宽和指标。 -
虚拟主机
是否有多个虚拟服务器(服务器块)?它具有一个面板,显示哪个虚拟主机正在消耗大部分Web服务器资源。 -
ASN 自治系统号映射
非常适合检测恶意流量模式并相应地阻止它们。 -
配色方案可定制
定制GoAccess以适合您自己的色彩品味/方案。或者通过终端,或者简单地在HTML输出上应用样式表。 -
支持大型数据集
GoAccess具有解析大型日志的能力,因为它优化了内存中的哈希表。它有很好的内存使用和相当不错的性能。这种存储也支持磁盘上的持久性。 -
Docker支持
能够从上游构建GoAccess的Docker镜像。您仍然可以通过使用卷映射并编辑goaccess.conf
来完全配置它。 参见下面的Docker部分。
3. 支持的格式
GoAccess允许任何自定义日志格式字符串。预定义选项包括但不限于:
- Amazon CloudFront(下载分发)。
- Amazon简单存储服务(S3)
- AWS Elastic负载平衡
- 组合日志格式(XLF/ELF)Apache| Nginx
- 通用日志格式(CLF)Apache
- Google Cloud Storage.
- Apache虚拟主机
- Squid原生格式。
- W3C格式(IIS)。
- Caddy的JSON结构化格式。
- Traefik的CLF风味
4. 安装
从发布版本构建
GoAccess可以在 *nix系统上编译和使用。
下载、解压缩和编译GoAccess:
$ yum install gcc-c++ -y
$ yum install libmaxminddb libmaxminddb-devel -y
$ yum install ncurses-devel -y
$ wget https://tar.goaccess.io/goaccess-1.9.3.tar.gz
$ tar -xzvf goaccess-1.9.3.tar.gz
$ cd goaccess-1.9.3/
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install
从GitHub构建(开发)
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install
命令行安装
Fedora / CentOS
# yum install goaccess
Ubuntu
# apt install goaccess -y
Arch
# pacman -S goaccess
Gentoo
# emerge net-analyzer/goaccess
OS X / Homebrew
# brew install goaccess
FreeBSD
# cd /usr/ports/sysutils/goaccess/ && make install clean
# pkg install sysutils/goaccess
OpenBSD
# cd /usr/ports/www/goaccess && make install clean
# pkg_add goaccess
openSUSE
# zypper ar -f obs://server:http http
# zypper in goaccess
OpenIndiana
# pkg install goaccess
pkgsrc (NetBSD, Solaris, SmartOS, ...)
# pkgin install goaccess
Docker
Docker镜像已经更新,能够从访问日志中定向输出。如果你只想输出一个报告,你可以将一个日志从外部环境传输到一个基于Docker的进程:
touch report.html
cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED -
或实时
tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -
可以在DOCKER.md中关于使用docker镜像的信息。
5. 使用
5.1 监视Apache日志
执行以下命令,监控Apache日志,其中-f 选项
允许在命令行上实时查看日志
goaccess -f /var/log/apache2/access.log --log-format=COMBINED
浏览器访问主页后再次访问,他会实时采集数据
5.2 通过web仪表板查看日志
通过重定向来将 web 服务器日志以优雅而直观的方式呈现在一个仪表板上。可以将输出文件指定为linux_web.html。
goaccess -f /var/log/apache2/access.log --log-format=COMBINED > linux_web.html
浏览器访问
生成日志分析网页文件
mkdir -p /var/www/html/web
goaccess -f /var/log/apache2/access.log --log-format=COMBINED > /var/www/html/web/linux_web.html
浏览器输入自己创建的的地址访问
http://172.16.12.137/web/linux_web.html
5.3 汉化设置
Ubuntu 和 Debian
apt install language-pack-zh-hans -y
# 设置系统简体中文
localectl set-locale LANG=zh_CN.utf8
可以看到Ubuntu系统的默认语言和字符集设置为简体中文(zh_CN)
root@ubuntu-001:~# localectl status
System Locale: LANG=zh_CN.utf8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
Kali 默认语言和字符集设置为简体中文(zh_CN)
要将Kali Linux的系统语言设置为中文,以Kali Linux2024.1版为例,可以按照以下步骤进行操作:
完成以上步骤后,Kali Linux的系统语言应该已经成功设置为中文。
- 打开终端,并切换到root用户。可以使用命令sudo su root来切换到root用户,password默认kali。
- 使用命令dpkg-reconfigure locales来打开语言设置。
- 使用上下箭头或鼠标滚轮找到en_US.UTF-8 UTF-8,点击空格取消勾选。
- 接着空格勾选 zh-CN.UTF-8.UTF-8 选项,然后点击回车确认。
- 最后选择语言为zh_CN.UTF-8,再次回车确认。
- 终端输入reboot命令回车重启系统。
- 最好选择保留旧的文件夹名字。
测试访问
LANG="zh_CN.UTF-8" goaccess -f /var/log/apache2/access.log --log-format=COMBINED > /var/www/html/web/linux_web.html
systemctl restart apache2
仪表盘
LANG="zh_CN.UTF-8" goaccess -f /var/log/apache2/access.log --log-format=COMBINED > /var/www/html/web/linux_web.html