用GoAccess可视化监控npm日志

什么是 GoAccess?

GoAccess 是一个开源实时 Web 日志分析器和交互式查看器,可在 *nix 系统的终端中或通过浏览器运行。它为需要动态可视化服务器报告的系统管理员提供快速且有价值的 HTTP 统计信息。

什么是 GoAccess for Nginx Proxy Manager Logs?

GoAccess for Nginx Proxy Manager 是专用于 Nginx Nginx Proxy Manager 日志分析的 GoAccessDocker 镜像。

准备

本来老苏是打算用 GoAccess 来分析 npm 的日志,但是没搞定。后来发现了 GoAccess for Nginx Proxy Manager Logs,优点是基本上开箱即用,不用研究参数和命令,缺点就是只能用于 npm,如果你还需要分析其他软件的日志,那就只能去啃 GoAccess 的文档了

关于 npm 的安装,可以参考最近的文章

文章传送门: 用自定义域名访问Tailscale节点

所以 npm 日志的路径是 /volume1/docker/npm/data/logs

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 xavierh ,选择第一个 goaccess-for-nginxproxymanager,版本选择 latest

本文写作时, latest 版本对应为 v1.1.19

文件夹 装载路径 说明
docker/npm/data/logs /opt/log 挂载 npm 的日志目录

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
7880 7880

环境

可变
PUID 设为 1000
PGID 设为 1000
TZ 时区,设置为 Asia/Shanghai
SKIP_ARCHIVED_LOGS 是否跳过存档日志,设为 False 不跳过
DEBUG 设为 False
EXCLUDE_IPS 排除的 IP127.0.0.1
LOG_TYPE 设置为读取 NPM 日志
LANG 语言本地化,设置为 zh_CN.UTF-8
LANGUAGE 语言本地化,设置为 zh_CN.UTF-8

更多的环境变量可以参考官方的文档:https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager#github-repo

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 运行容器
docker run -d \
   --restart unless-stopped \
   --name goaccess \
   -p 7880:7880 \
   -v /volume1/docker/npm/data/logs:/opt/log \
   -e PUID=1000 \
   -e PGID=1000 \
   -e TZ=Asia/Shanghai \
   -e SKIP_ARCHIVED_LOGS=False \
   -e DEBUG=False \
   -e EXCLUDE_IPS=127.0.0.1 \
   -e LOG_TYPE=NPM \
   -e LANG=zh_CN.UTF-8 \
   -e LANGUAGE=zh_CN.UTF-8 \
   xavierh/goaccess-for-nginxproxymanager:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
version: '3'

services:
    goaccess:
        image: xavierh/goaccess-for-nginxproxymanager:latest
        container_name: goaccess
        restart: always
        ports:
          - 7880:7880
        volumes:
          - /volume1/docker/npm/data/logs:/opt/log
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai         
          - SKIP_ARCHIVED_LOGS=False
          - DEBUG=False
          - EXCLUDE_IPS=127.0.0.1
          - LOG_TYPE=NPM
          - LANG=zh_CN.UTF-8 
          - LANGUAGE=zh_CN.UTF-8

然后执行下面的命令

bash 复制代码
# 新建文件夹 goaccess 和 子目录
mkdir -p /volume1/docker/goaccess

# 进入 goaccess 目录
cd /volume1/docker/goaccess

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:7880 就能看到主界面

界面很漂亮,虽然很多指标并不清楚能用来干嘛,不过我觉得网管应该是懂的

参考文档

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.

地址:https://github.com/allinurl/goaccess
GoAccess - Visual Web Log Analyzer

地址:https://goaccess.io/
xavier-hernandez/goaccess-for-nginxproxymanager: GoAccess Docker Image for Nginx Proxy Manager and more...

地址:https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager

相关推荐
liulilittle18 分钟前
光纤入户技术:原理、策略与市场博弈
网络·信息与通信·通信·宽带·移动·联通·电信
板鸭〈小号〉25 分钟前
UDP-Server(3)chat聊天室
网络·网络协议·udp
lllsure29 分钟前
【Docker】存储卷
运维·docker·容器
纤瘦的鲸鱼2 小时前
Docker 从入门到实践:容器化技术核心指南
java·docker·容器
邂逅星河浪漫2 小时前
【Docker+Nginx+Ollama】前后端分离式项目部署(传统打包方式)
java·nginx·docker·部署
Nuyoah11klay4 小时前
华清远见25072班网络编程学习day5
网络
CyHacker_10105 小时前
网络编程-day4
网络
wow_DG8 小时前
【WebSocket✨】入门之旅(五):WebSocket 的安全性
网络·websocket·网络协议
咖啡Beans8 小时前
Docker安装ELK(Elasticsearch + Logstash + Kibana)
后端·elasticsearch·docker
会开花的二叉树8 小时前
UDP Socket 进阶:从 Echo 到字典服务器,学会 “解耦” 网络与业务
服务器·网络·udp