本文记录如何使用 docker 快速搭建一套 Goaccess 环境。

Goaccess 是一个简单、轻量、好用的 nginx 日志分析工具,日常简单分析还是不错的。Goaccess 文档

准备环境:

    1. 任何安装有 docker >= 17.03 的主机
    2. docker-compose >= 1.21.0

1. 创建如下目录结构

goaccess/
├── data
│   └── access.log
│   └── goaccess.conf
├── docker-compose.yml
└── report
    └── index.html

/goaccess.conf: goaccess 配置文件 详细文档

/docker-compose.yml: docker-compose 配置 详细文档

/data/access.log: 待分析的 nginx 日志文件

/report/index.html: 分析出的报告文件,通过 nginx 访问

2. 拷贝如下配置到 goaccess.conf

log-format COMMON
log-file /srv/data/access.log
output /srv/report/index.html
real-time-html true # 实时分析

3. 拷贝如下配置到 docker-compose.yml,并替换 <path> 为 goaccess 目录路径

version: "2.2"
services:
  goaccess:
    image: allinurl/goaccess:latest
    command:
    - goaccess
    - --no-global-config
    - --config-file=/srv/data/goaccess.conf
    - --num-tests=0 # 避免因为nginx日志中有其他格式的行导致 goaccess 无法启动
    volumes:
    - /<path>/goaccess/data:/srv/data
    - /<path>/goaccess/report:/srv/report
    ports:
    - 7890:7890
  nginx:
    image: nginx:1.15-alpine
    volumes:
    - /<path>/goaccess/report:/usr/share/nginx/html
    ports:
    - 7891:80

4. 拷贝带分析的 nginx 日志到 /data/access.log,或直接实时输出日志到该文件。

5. 启动

cd /<path>/goaccess  # cd 到 goaccess 主目录
docker-compose up
# 启动并后台运行可添加 -d : docker-compose up -d

如启动成功,则可通过 7891 端口访问:http://<host-ip>:7891 compose-up

goaccess-real-time-html 如启动失败,根据输出错误信息和文档逐步排查。