
如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:
生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
GoAccess是一个开源实时Web日志分析器和交互式查看器,可在nix系统的终端或通过浏览器运行。它为需要实时可视化服务器报告的系统管理员提供快速且有价值的HTTP统计信息。本镜像为GoAccess的非官方Armhf架构构建,方便在Arm设备上部署和使用。更多信息:[**]
!GoAccess终端仪表板 !GoAccess HTML仪表板
GoAccess解析指定的Web日志文件并将数据输出到X终端。主要特性包括:
完全实时
所有面板和指标在终端输出中每200毫秒更新一次,在HTML输出中每1秒更新一次。
最小配置需求
只需针对访问日志文件运行它,选择日志格式,GoAccess即可解析访问日志并显示统计信息。
跟踪应用响应时间
跟踪处理请求所花费的时间,对于跟踪减慢网站速度的页面非常有用。
支持几乎所有Web日志格式
GoAccess允许任何自定义日志格式字符串。预定义选项包括Apache、Nginx、Amazon S3、Elastic Load Balancing、CloudFront等。
增量日志处理
需要数据持久性?GoAccess能够通过磁盘B+Tree数据库增量处理日志。
仅一个依赖
GoAccess用C编写。运行它只需ncurses作为依赖。它甚至具有自己的WebSocket服务器——[***]
访客统计
按小时或日期确定点击量、访客数、带宽以及最慢请求的指标。
虚拟主机指标
有多个虚拟主机(服务器块)?它提供一个面板,显示哪个虚拟主机消耗了大部分Web服务器资源。
可自定义配色方案
可根据个人喜好定制GoAccess的配色方案,无论是在终端中,还是通过在HTML输出上应用样式表。
支持大型数据集
GoAccess具有磁盘B+Tree存储功能,适用于无法将所有数据放入内存的大型数据集。
Docker支持
能够从上游构建GoAccess的Docker镜像。通过卷映射和编辑goaccess.conf,仍可完全配置它。见下文Docker部分。
GoAccess允许任何自定义日志格式字符串。预定义选项包括但不限于:
GoAccess旨在成为快速的终端日志分析器。其核心思想是无需使用浏览器即可快速实时分析和查看Web服务器统计信息(非常适合通过SSH快速分析访问日志,或喜欢在终端工作的用户)。
虽然终端输出是默认输出,但它能够生成完整的、自包含的实时HTML报告,以及JSON和CSV报告。
它更像是一个监控命令工具。
注意:以下示例假设您将GoAccess数据存储在/srv/goaccess下,您也可以使用不同的前缀或非root用户运行。
首先创建所需目录:
bashmkdir -p /srv/goaccess/{data,html}
在运行GoAccess Docker容器之前,先在/srv/goaccess/data中创建配置文件。您可以从头开始创建,或使用https://raw.githubusercontent.com/allinurl/goaccess/master/config/goaccess.conf%E4%BD%9C%E4%B8%BA%E8%B5%B7%E7%82%B9%E5%B9%B6%E6%A0%B9%E6%8D%AE%E9%9C%80%E8%A6%81%E4%BF%AE%E6%94%B9%E3%80%82
实时HTML报告的最小配置文件至少需要以下选项:log-format、log-file、output和real-time-html。例如,对于Apache的“combined”日志格式:
conflog-format COMBINED log-file /srv/logs/access.log output /srv/report/index.html real-time-html true
如果要在主机上的不同端口公开GoAccess,必须在配置文件中设置ws-url选项,例如:
confws-url ws://example.com:8080
对于安全连接(TLS/SSL),确保配置文件包含以下行:
confssl-cert /srv/data/domain.crt ssl-key /srv/data/domain.key ws-url wss://example.com:8080
配置文件设置完成后,克隆仓库:
bashgit clone https://github.com/allinurl/goaccess.git goaccess && cd goaccess
然后构建并运行镜像:
bashdocker build . -t allinurl/goaccess docker run --restart=always -d -p 7890:7890 \ -v "/srv/goaccess/data:/srv/data" \ -v "/srv/goaccess/html:/srv/report" \ -v "/var/log/apache2:/srv/logs" \ --name=goaccess allinurl/goaccess
如果在构建镜像后修改了配置文件,无需重新构建,只需重启容器:
bashdocker restart goaccess
若要使用不同端口(如8080),运行:
bashdocker run --restart=always -d -p 8080:7890 \ -v "/srv/goaccess/data:/srv/data" \ -v "/srv/goaccess/html:/srv/report" \ -v "/var/log/apache:/srv/logs" \ --name=goaccess allinurl/goaccess
如果已运行容器,可能需要先停止并删除:
bashdocker stop goaccess docker rm goaccess
也可以直接在docker命令行指定不同的命令和选项,例如:
bashdocker run --restart=always -d -p 8080:7890 \ -v "/srv/goaccess/data:/srv/data" \ -v "/srv/goaccess/html:/srv/report" \ -v "/var/log/apache:/srv/logs" \ --name=goaccess allinurl/goaccess \ goaccess --no-global-config --config-file=/srv/data/goaccess.conf \ --ws-url=example.org:8080 --output=/srv/report/index.html \ --log-file=/srv/logs/access.log
完全删除容器和镜像:
bashdocker stop goaccess docker rm goaccess docker rmi allinurl/goaccess
也可使用预构建的https://hub.docker.com/r/allinurl/goaccess/%EF%BC%8C%E6%97%A0%E9%9C%80%E5%85%8B%E9%9A%86%E4%BB%93%E5%BA%93%EF%BC%9A
bashdocker run --restart=always -d -p 8080:7890 \ -v "/srv/goaccess/data:/srv/data" \ -v "/srv/goaccess/logs:/srv/logs" \ -v "/srv/goaccess/html:/srv/report" \ --name=goaccess allinurl/goaccess
GoAccess有三种存储选项,选择取决于您的环境和需求:
默认哈希表
内存存储提供更好的性能,但数据集大小受限于可用物理内存。默认情况下GoAccess使用内存哈希表。如果数据集可放入内存,性能良好,内存使用和性能都不错。
Tokyo Cabinet磁盘B+树
适用于无法放入内存的大型数据集。B+树数据库比任何哈希数据库都慢,因为数据必须提交到磁盘。但使用SSD可显著提高性能。如果需要数据持久性以便日后快速加载统计信息,也可使用此存储方法。
Tokyo Cabinet内存哈希数据库
默认哈希表的替代方案。使用通用类型,内存和速度性能中等。
参见可提供给命令或在配置文件中指定的选项。如果在配置文件中指定,长选项无需前缀--。
注意:将数据通过管道传输到GoAccess不会提示日志/日期/时间配置对话框,需要预先在配置文件或命令行中定义。
入门
输出到终端并生成交互式报告:
bashgoaccess access.log
生成HTML报告:
bashgoaccess access.log -a > report.html
生成JSON报告:
bashgoaccess access.log -a -d -o json > report.json
生成CSV文件:
bashgoaccess access.log --no-csv-summary -o csv > report.csv
GoAccess还支持实时过滤和解析,例如监控自启动以来的日志以快速诊断问题:
bashtail -f access.log | goaccess -
结合tail -f和过滤工具(如grep、awk、sed)进行实时分析:
bashtail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -
从文件开头解析并保持管道打开应用过滤:
bashtail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -
多个日志文件
有多种方式解析多个日志文件。最简单的是在命令行传递多个日志文件:
bashgoaccess access.log access.log.1
也可从管道解析文件同时读取常规文件:
bashcat access.log.2 | goaccess access.log access.log.1 -
注意:单破折号附加到命令行,让GoAccess知道从管道读取。
处理所有压缩日志文件(access.log.*.gz)和当前日志文件:
bashzcat access.log.*.gz | goaccess access.log -
注意:在Mac OS X上,使用gunzip -c代替zcat。
实时HTML输出
GoAccess能够在HTML报告中输出实时数据。HTML文件是单个文件,无外部依赖,甚至可以通过电子邮件发送。
生成实时HTML报告的过程与创建静态报告类似,只需添加--real-time-html:
bashgoaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html
通过http://your_site/report.html查看报告。
默认情况下,GoAccess使用生成报告的主机名。可选地,可指定客户端浏览器将连接的URL:
bashgoaccess access.log -o report.html --real-time-html --ws-url=goaccess.io
默认情况下,GoAccess监听7890端口,要使用其他端口(确保端口已打开):
bashgoaccess access.log -o report.html --real-time-html --port=9870
将WebSocket服务器绑定到除0.0.0.0之外的地址:
bashgoaccess access.log -o report.html --real-time-html --addr=127.0.0.1
注意:要通过TLS/SSL连接输出实时数据,需要使用--ssl-cert=<cert.crt>和--ssl-key=<priv.key>。
过滤
日期过滤
获取从05/Dec/2010开始到文件结束的所有HTTP请求:
bashsed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a -
使用相对日期(如一周前):
bashsed -n '/'$(date '+%d\/%b\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -
解析特定时间范围(从DATE a到DATE b):
bashsed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a -
虚拟主机
假设日志包含虚拟主机字段,例如:
vhost.io:80 8.8.4.4 - - [02/Mar/2016:08:14:04 -0600] "GET /shop HTTP/1.1" 200 615 "-" "Googlebot-Image/1.0"
将虚拟主机附加到请求以查看顶级URL所属的虚拟主机:
bashawk '$8=$1$8' access.log | goaccess -a -
结合实时过滤和解析:
bashtail -f access.log | unbuffer -p awk '$8=$1$8' | goaccess -a -
排除虚拟主机列表:
bashgrep -v "`cat exclude_vhost_list_file`" vhost_access.log | goaccess -
文件、状态码和爬虫
解析特定页面(如.html、.htm、.php):
bashawk '$7~/\.html|\.htm|\.php/' access.log | goaccess -
注意:$7是通用和组合日志格式的请求字段(无虚拟主机),如果日志包含虚拟主机,可能需要使用$8。最好检查目标字段:
bashtail -10 access.log | awk '{print $8}'
解析特定状态码(如500):
bashawk '$9~/500/' access.log | goaccess -
解析多个状态码(如所有3xx和5xx):
bashtail -f -n +0 access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess -o out.html -
估计爬虫访问量:
bashtail -F -n +0 access.log | grep -i --line-buffered 'bot' | goaccess -
提示
以低优先级运行GoAccess:
bashnice -n 19 goaccess -f access.log -a
从本地机器运行(无需在服务器上安装):
bashssh root@server 'cat /var/log/apache2/access.log' | goaccess -a -
增量日志处理
GoAccess能够通过磁盘https://github.com/allinurl/goaccess#storage%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A2%9E%E9%87%8F%E5%A4%84%E7%90%86%E6%97%A5%E5%BF%97%E3%80%82%E5%B7%A5%E4%BD%9C%E6%96%B9%E5%BC%8F%E5%A6%82%E4%B8%8B%EF%BC%9A
--keep-db-files持久化数据集,然后使用--load-from-disk加载同一数据集。--keep-db-files。--load-from-disk而不使用--keep-db-files,数据库文件将在程序关闭时删除。示例
bash// 处理上个月访问日志 goaccess access.log.1 --keep-db-files // 加载并追加本月访问日志,保留新数据 goaccess access.log --load-from-disk --keep-db-files // 仅读取持久化数据(不解析新数据) goaccess --load-from-disk --keep-db-files
欢迎对GoAccess提供任何帮助。最有帮助的方式是试用并提供反馈。可使用Github issue跟踪器和拉取请求讨论和提交代码更改。
享受使用!
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
发给 Cursor、ChatGPT、豆包等 AI 的说明文档
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务