V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
MagicCoder
V2EX  ›  程序员

NginxPulse 开源了

  •  
  •   MagicCoder · 19 小时 53 分钟前 · 2622 次点击

    前言

    上周写了个nginx 日志分析系统,这几天花了点时间把代码整理了下,现已开源。

    欢迎各位有需要的开发者自取。

    项目地址

    demo-img-1.png

    demo-img-2.png

    写在最后

    我是神奇的程序员,一位前端开发工程师。

    如果你对我感兴趣,请移步我的个人网站,进一步了解。

    42 条回复    2026-01-13 21:37:24 +08:00
    rimworld
        1
    rimworld  
       19 小时 52 分钟前
    颜值很棒,谢谢开源喵
    Aruforce
        2
    Aruforce  
       19 小时 25 分钟前 via Android   ❤️ 1
    蹭 plus 的名干啥…
    cnrting
        3
    cnrting  
       19 小时 18 分钟前 via iPhone
    骂得很难听
    jiangzm
        4
    jiangzm  
       19 小时 11 分钟前
    应该和 nginx proxy manager 结合下比较好
    MagicCoder
        5
    MagicCoder  
    OP
       19 小时 8 分钟前
    @Aruforce 啊? Pulse 是脉搏、心跳的意思😅 我取这个名的寓意是:Nginx 的心跳与生命监测系统
    J0hanD
        6
    J0hanD  
       19 小时 1 分钟前 via iPhone
    感谢大佬开源
    MagicCoder
        7
    MagicCoder  
    OP
       18 小时 27 分钟前
    @jiangzm 😂 我比较偏向于各干各个的,分散开比较好
    honkew
        8
    honkew  
       15 小时 48 分钟前
    需要对蜘蛛区分
    WizardLeo
        9
    WizardLeo  
       15 小时 43 分钟前
    感谢大佬开源!
    这个项目可以接入多个 nginx 吗?比如把数个 nginx 的日志通过 rclone 之类的方式聚合到一个目录下以文件夹区分开这样。
    clarkyu
        10
    clarkyu  
       15 小时 39 分钟前
    感谢开源, UI 很不错
    a4526047
        11
    a4526047  
       15 小时 33 分钟前
    用的甲骨文,下载镜像:no matching manifest for linux/arm64/v8 in the manifest list entries
    MagicCoder
        12
    MagicCoder  
    OP
       15 小时 27 分钟前
    @WizardLeo 支持的
    MagicCoder
        13
    MagicCoder  
    OP
       15 小时 22 分钟前
    @a4526047 😂 是不是镜像源设置到其他地方去了
    MagicCoder
        14
    MagicCoder  
    OP
       15 小时 22 分钟前
    @honkew 现在有区分蜘蛛
    zepc007
        15
    zepc007  
       15 小时 16 分钟前
    @Aruforce ???
    a1274598858
        16
    a1274598858  
       15 小时 10 分钟前
    不会 go ,大佬能否构建个 releases😁
    dianso
        17
    dianso  
       15 小时 7 分钟前
    我 nginx 用的官方镜像,docker compose 运行,这如何使用啊
    MagicCoder
        18
    MagicCoder  
    OP
       15 小时 5 分钟前
    @dianso 这个跟镜像没关系,只需要传入 nginx 的日志文件路径就可以了
    MagicCoder
        19
    MagicCoder  
    OP
       15 小时 5 分钟前
    @a1274598858 可以,我晚点写下自动构建脚本,放 GitHub
    54xavier
        20
    54xavier  
       14 小时 28 分钟前

    1panel 面板通过 OpenResty 配置的网站,volume 配置有点儿头疼
    MagicCoder
        21
    MagicCoder  
    OP
       13 小时 50 分钟前
    @54xavier 我文档写的有点问题,已经更正过来了。需要在 websites 里加每个网站的访问日志(.log 文件),声明好位置,然后再把本机的日志文件挂载进去。

    -v ./nginx_data/logs/all/access.log:/var/log/nginx/access.log:ro \
    MagicCoder
        22
    MagicCoder  
    OP
       13 小时 49 分钟前
    @54xavier 我那里直接挂载 nginx 目录写错了😂
    SkyHive
        23
    SkyHive  
       13 小时 41 分钟前
    能不能支持批量导入日志文件,因为我是把 nginx 当 lb 来用了,希望可以直接挂载 /var/log/nginx 这样的目录,日志文件的命名规则都是 ${domain_name}.access.log ${domain_name}.error.log 这样的
    perfectlife
        24
    perfectlife  
       13 小时 23 分钟前 via Android
    能把日志格式拆出来,做成可以自定义的就完美了
    whitewash
        25
    whitewash  
       13 小时 15 分钟前
    点进来前以为 nginx plus 开源了
    jianqiao031313
        26
    jianqiao031313  
       13 小时 14 分钟前
    赞一个,要是 WEBSITES 支持配置文件就更好了,比如直接读个 json 啥的,后面修改完配置文件直接重启 docker 就好了~
    谢谢 op 开源~
    54xavier
        27
    54xavier  
       12 小时 15 分钟前
    @MagicCoder #21 不能挂载到 docker 内部 /var/log/nginx ,docker 内部也是用的 nginx ,刚好内部 nginx 也是这个路径,内部 nginx 读写 access.log 的时候会报错。
    DejavuMoe
        28
    DejavuMoe  
       12 小时 1 分钟前
    可以直接读取 Nginx 日志目录 /var/nginx/log 下的所有日志吗?手动单个站点挂载太麻烦了。
    颜值很高,感谢开源
    Astralume
        29
    Astralume  
       11 小时 55 分钟前
    @54xavier #27

    ```
    docker run -d --name nginxpulse \
    -p 8088:8088 \
    -p 8089:8089 \
    -e WEBSITES='[{"name":"主站","logPath":"/out_nginx_log/xxxxxxxx.log","domains":["example.com","www.example.com"]}]' \
    -e SERVER_PORT=":8089" \
    -v /out_side_nginx_data_logs:/out_nginx_log:ro \
    -v "$(pwd)/var/nginxpulse_data:/app/var/nginxpulse_data" \
    magiccoders/nginxpulse:latest
    ```

    这个写法容易理解些
    Astralume
        30
    Astralume  
       11 小时 50 分钟前
    WEBSITES 的配置是否考虑 logPath 支持列表或者正则表达,因为很多时候某个 Domain 的日志都会有 xxx.access.log 和 xxx.error.log
    ruanimal
        31
    ruanimal  
       11 小时 44 分钟前
    @Aruforce 虽然英文不好,但是敏感肌呢
    54xavier
        32
    54xavier  
       11 小时 41 分钟前
    还有一个问题,没有账号密码,存在一定的泄露问题,我暂时用 1panel 的密码访问解决了
    liuliuliuliu
        33
    liuliuliuliu  
    PRO
       11 小时 34 分钟前
    不错,但是有点不满足我的需求,拿来抄一份自用吧
    MagicCoder
        34
    MagicCoder  
    OP
       11 小时 22 分钟前
    @jianqiao031313 支持 json 的,容器里的 configs/nginxpulse_config.json 就是所有的配置,你可以挂载到主机,直接改这个 json 文件也是可以的
    MagicCoder
        35
    MagicCoder  
    OP
       11 小时 21 分钟前
    @54xavier 这个鉴权问题就不在这个项目做了🤣 专事专用,不做那么高的复杂度
    MagicCoder
        36
    MagicCoder  
    OP
       11 小时 17 分钟前
    @DejavuMoe 抱歉,这里我文档没写清楚,实际是挂载对应的.log 文件的,在 websites 里进行声明,文档已经更新了,你再看看
    MagicCoder
        37
    MagicCoder  
    OP
       10 小时 50 分钟前
    @liuliuliuliu 🤣 可以说下你的需求,我看看能不能通过配置的方式来支持
    MagicCoder
        38
    MagicCoder  
    OP
       10 小时 49 分钟前
    @SkyHive 支持的,文档已经更新了,可以看下 多个日志文件如何挂载 这个章节的内容
    MagicCoder
        39
    MagicCoder  
    OP
       10 小时 49 分钟前
    @perfectlife 可以自定义的,文档已更新,WEBSITES 就是干这个事儿的,日志文件随意指定
    MagicCoder
        40
    MagicCoder  
    OP
       10 小时 48 分钟前
    @54xavier 嗯嗯 这个问题是我文档写错了,已更正。
    MagicCoder
        41
    MagicCoder  
    OP
       10 小时 46 分钟前
    @DejavuMoe 支持的,文档已更新,详见 多个日志文件如何挂载 章节
    louisxxx
        42
    louisxxx  
       10 小时 38 分钟前
    适合没能力折腾 ELK 的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   4218 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:16 · PVG 08:16 · LAX 16:16 · JFK 19:16
    ♥ Do have faith in what you're doing.