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

NginxPulse 开源了

  •  
  •   MagicCoder · 12 小时 4 分钟前 · 2447 次点击

    前言

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

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

    项目地址

    demo-img-1.png

    demo-img-2.png

    写在最后

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

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

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

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

    -v ./nginx_data/logs/all/access.log:/var/log/nginx/access.log:ro \
    MagicCoder
        22
    MagicCoder  
    OP
       6 小时 1 分钟前
    @54xavier 我那里直接挂载 nginx 目录写错了😂
    SkyHive
        23
    SkyHive  
       5 小时 53 分钟前
    能不能支持批量导入日志文件,因为我是把 nginx 当 lb 来用了,希望可以直接挂载 /var/log/nginx 这样的目录,日志文件的命名规则都是 ${domain_name}.access.log ${domain_name}.error.log 这样的
    perfectlife
        24
    perfectlife  
       5 小时 35 分钟前 via Android
    能把日志格式拆出来,做成可以自定义的就完美了
    whitewash
        25
    whitewash  
       5 小时 27 分钟前
    点进来前以为 nginx plus 开源了
    jianqiao031313
        26
    jianqiao031313  
       5 小时 25 分钟前
    赞一个,要是 WEBSITES 支持配置文件就更好了,比如直接读个 json 啥的,后面修改完配置文件直接重启 docker 就好了~
    谢谢 op 开源~
    54xavier
        27
    54xavier  
       4 小时 27 分钟前
    @MagicCoder #21 不能挂载到 docker 内部 /var/log/nginx ,docker 内部也是用的 nginx ,刚好内部 nginx 也是这个路径,内部 nginx 读写 access.log 的时候会报错。
    DejavuMoe
        28
    DejavuMoe  
       4 小时 12 分钟前
    可以直接读取 Nginx 日志目录 /var/nginx/log 下的所有日志吗?手动单个站点挂载太麻烦了。
    颜值很高,感谢开源
    Astralume
        29
    Astralume  
       4 小时 7 分钟前
    @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  
       4 小时 2 分钟前
    WEBSITES 的配置是否考虑 logPath 支持列表或者正则表达,因为很多时候某个 Domain 的日志都会有 xxx.access.log 和 xxx.error.log
    ruanimal
        31
    ruanimal  
       3 小时 56 分钟前
    @Aruforce 虽然英文不好,但是敏感肌呢
    54xavier
        32
    54xavier  
       3 小时 53 分钟前
    还有一个问题,没有账号密码,存在一定的泄露问题,我暂时用 1panel 的密码访问解决了
    liuliuliuliu
        33
    liuliuliuliu  
    PRO
       3 小时 46 分钟前
    不错,但是有点不满足我的需求,拿来抄一份自用吧
    MagicCoder
        34
    MagicCoder  
    OP
       3 小时 33 分钟前
    @jianqiao031313 支持 json 的,容器里的 configs/nginxpulse_config.json 就是所有的配置,你可以挂载到主机,直接改这个 json 文件也是可以的
    MagicCoder
        35
    MagicCoder  
    OP
       3 小时 33 分钟前
    @54xavier 这个鉴权问题就不在这个项目做了🤣 专事专用,不做那么高的复杂度
    MagicCoder
        36
    MagicCoder  
    OP
       3 小时 28 分钟前
    @DejavuMoe 抱歉,这里我文档没写清楚,实际是挂载对应的.log 文件的,在 websites 里进行声明,文档已经更新了,你再看看
    MagicCoder
        37
    MagicCoder  
    OP
       3 小时 2 分钟前
    @liuliuliuliu 🤣 可以说下你的需求,我看看能不能通过配置的方式来支持
    MagicCoder
        38
    MagicCoder  
    OP
       3 小时 1 分钟前
    @SkyHive 支持的,文档已经更新了,可以看下 多个日志文件如何挂载 这个章节的内容
    MagicCoder
        39
    MagicCoder  
    OP
       3 小时 0 分钟前
    @perfectlife 可以自定义的,文档已更新,WEBSITES 就是干这个事儿的,日志文件随意指定
    MagicCoder
        40
    MagicCoder  
    OP
       2 小时 59 分钟前
    @54xavier 嗯嗯 这个问题是我文档写错了,已更正。
    MagicCoder
        41
    MagicCoder  
    OP
       2 小时 58 分钟前
    @DejavuMoe 支持的,文档已更新,详见 多个日志文件如何挂载 章节
    louisxxx
        42
    louisxxx  
       2 小时 50 分钟前
    适合没能力折腾 ELK 的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:27 · PVG 00:27 · LAX 08:27 · JFK 11:27
    ♥ Do have faith in what you're doing.