用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

相关推荐
测试人社区—小叶子1 分钟前
使用开源模型微调,构建专属的测试用例生成机器人
运维·网络·c++·人工智能·机器人·自动化·测试用例
sun0077002 分钟前
NetGuard(需 Root): 能查出来 是哪个进程访问了 某个ip
网络·网络协议·tcp/ip
赵庆明老师11 分钟前
.net framework 的项目部署到docker
docker·eureka·.net
前进的李工13 分钟前
AI安全威胁:对抗样本到数据隐私全解析(13种安全威胁及防护)
网络·人工智能·安全·语言模型·网络攻击模型
猪肉炖白菜14 分钟前
TCP/IP协议簇包含的协议
网络·网络协议·tcp/ip
CodingCos21 分钟前
【PCIe 总线及设备入门学习专栏 9.1 -- PCIe AER 中的 aer_layer 与 aer_agent】
网络·学习
水天需01021 分钟前
ps 命令全面详解
linux·服务器·网络
总有刁民想爱朕ha27 分钟前
银河麒麟v10服务器版Docker部署MySQL 8教程
mysql·docker·容器·银河麒麟v10
wgego27 分钟前
http协议中各个网段含义
网络·网络协议·http
张太行_30 分钟前
TCP连接长时间未进行数据交互是否会断开?如何维持?
网络·tcp/ip·智能路由器