• 用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 的日志目录

    在这里插入图片描述

    端口

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

    # 查看端口占用
    netstat -tunlp | grep 端口号
    
    • 1
    • 2
    本地端口容器端口
    78807880

    在这里插入图片描述

    环境

    可变
    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 更快捷

    # 运行容器
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    然后执行下面的命令

    # 新建文件夹 goaccess 和 子目录
    mkdir -p /volume1/docker/goaccess
    
    # 进入 goaccess 目录
    cd /volume1/docker/goaccess
    
    # 将 docker-compose.yml 放入当前目录
    
    # 一键启动
    docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行

    在浏览器中输入 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

  • 相关阅读:
    重载与友元
    FFmpeg进阶:给视频添加文字水印
    spark读取hive表字段,区分大小写问题
    限制命令长度如何反弹shell
    单链表的插入删除
    FPGA:基础入门按键控制蜂鸣器
    C# string字符串内存管理深入分析(全程干货)
    java-web:Servlet、cookie、session
    稻盛和夫《干法》
    C++11、17、20的内存管理-指针、智能指针和内存池从基础到实战(中)
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/134026211