Web日志分析工具GoAccess

devtools/2024/10/20 10:48:07/

目录

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/goaccessicon-default.png?t=O83Ahttps://github.com/allinurl/goaccess中文网站

GoAccess - 中文站 - 可视化 Web 日志分析工具icon-default.png?t=O83Ahttps://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/webgoaccess -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 statusSystem Locale: LANG=zh_CN.utf8VC Keymap: n/aX11 Layout: usX11 Model: pc105

Kali 默认语言和字符集设置为简体中文(zh_CN)

要将Kali Linux的系统语言设置为中文,以Kali Linux2024.1版为例,可以按照以下步骤进行操作:

完成以上步骤后,Kali Linux的系统语言应该已经成功设置为中文。

  1. 打开终端,并切换到root用户。可以使用命令sudo su root来切换到root用户,password默认kali。
  2. 使用命令dpkg-reconfigure locales来打开语言设置。
    1. 使用上下箭头或鼠标滚轮找到en_US.UTF-8 UTF-8,点击空格取消勾选。
    2. 接着空格勾选 zh-CN.UTF-8.UTF-8 选项,然后点击回车确认。
    3. 最后选择语言为zh_CN.UTF-8,再次回车确认。
  3. 终端输入reboot命令回车重启系统。
  4. 最好选择保留旧的文件夹名字。

测试访问

LANG="zh_CN.UTF-8"  goaccess -f /var/log/apache2/access.log --log-format=COMBINED > /var/www/html/web/linux_web.htmlsystemctl restart apache2

仪表盘

LANG="zh_CN.UTF-8" goaccess -f /var/log/apache2/access.log --log-format=COMBINED > /var/www/html/web/linux_web.html


http://www.ppmy.cn/devtools/111300.html

相关文章

Axure设计之全屏与退出全屏交互实现

在Axure RP中,设计全屏与退出全屏的交互功能可以极大地提升用户体验,尤其是在展示产品原型或进行演示时。本文将详细介绍如何在Axure RP中通过结合JavaScript代码实现全屏与退出全屏的交互效果。 ​ Axure原型设计web端交互元件库:https://…

Java 常用集合方法详解

在 Java 编程中,集合框架提供了丰富的数据结构和算法来存储和操作数据。集合框架主要包含了 List、Set 和 Map 接口,其中 List 和 Map 是最常用的接口。本文将深入探讨 List 和 Map 接口下的集合类及其常用方法,包括实际应用示例和代码片段。…

如何看待2020年的最新国际视频编解码标准H.266?

技术背景与发布 H.266,也被称为多功能视频编码(Versatile Video Coding,简称VVC),是2020年定稿并发布的最新一代国际视频编码标准。 发布时间与机构:H.266由ISO/IEC MPEG和ITU-T VCEG联合制定,…

计算机网络(Hub 集线器、交换机、路由器)

计算机网络 匹配符Hub 集线器实现多台电脑之间的通信:交换机实现两个局域网之间的通信:路由器 OSI参考模型TCP/IP协议族家庭宽带中: 无线路由器IP地址NAT 网络地址转换:解决IP地址不足 VPN 匹配符 Hub 集线器 群发 半双工 实现…

基于ESP32S3的链接大语言模型对话模块

本实物模块从实物外观、模块组成、API申请及功能说明四部分来介绍这款基于ESP32S3的大语言模型对话模块。 1、实物外观 2、模块介绍 本硬件平台主要由三个模块组成,包括MAX9814录音模块、MAX98357音频功放模块和ESP32S3模块。如下图所示。 MAX9814录音模块&#…

《A Few Useful Things to Know about Machine Learning》论文导读

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl机器学习作为人工智能领域的重要分支,近年来得到了广泛的关注和应用。Pedro Domingos的经典论文《A Few Useful Things to Know about Machine Learning》为我们提供了对机器学习深入且全面的理解…

亲测好用,ChatGPT 3.5/4.0新手使用手册~

都知道ChatGPT很强大,聊聊天、写论文、搞翻译、写代码、写文案、审合同等等,无所不能~ 那么到底怎么使用呢?其实很简单了,国内AI产品发展也很快,很多都很好用了~ 我一直在用,建议收藏下来~ 有最先进、最…

iotdbtool助力时序数据库IoTDB高效运维

iotdbtool 项目简介 iotdbtool 是一个使用 Go 语言编写的命令行工具,基于 Kubernetes 环境,提供了 IoTDB 数据的备份功能。它可以从 Kubernetes 集群中的 IoTDB Pod 中提取数据,并将其上传到阿里云 OSS 存储桶中。 iotdbtool 支持 iotDB 单…