前言
上周写了个nginx 日志分析系统,这几天花了点时间把代码整理了下,现已开源。
欢迎各位有需要的开发者自取。
项目地址
- GitHub 地址: https://github.com/likaia/nginxpulse
- dockerhub 地址: https://hub.docker.com/r/magiccoders/nginxpulse/


写在最后
我是神奇的程序员,一位前端开发工程师。
如果你对我感兴趣,请移步我的个人网站,进一步了解。
上周写了个nginx 日志分析系统,这几天花了点时间把代码整理了下,现已开源。
欢迎各位有需要的开发者自取。


我是神奇的程序员,一位前端开发工程师。
如果你对我感兴趣,请移步我的个人网站,进一步了解。
创了个交流群,有关此项目的优化与建议,欢迎大家进群交流。

|
rimworldJan 13
1
颜值很棒,谢谢开源喵
|
|
2
蹭 plus 的名干啥…
|
|
cnrtingJan 13 via iPhone
3
骂得很难听
|
|
jiangzmJan 13
4
应该和 nginx proxy manager 结合下比较好
|
|
5
@Aruforce 啊? Pulse 是脉搏、心跳的意思😅 我取这个名的寓意是:Nginx 的心跳与生命监测系统
|
|
J0hanDJan 13 via iPhone
6
感谢大佬开源
|
|
7
@jiangzm 😂 我比较偏向于各干各个的,分散开比较好
|
|
honkewJan 13
8
需要对蜘蛛区分
|
|
WizardLeoJan 13
9
感谢大佬开源!
这个项目可以接入多个 nginx 吗?比如把数个 nginx 的日志通过 rclone 之类的方式聚合到一个目录下以文件夹区分开这样。 |
|
clarkyuJan 13
10
感谢开源, UI 很不错
|
|
a4526047Jan 13
11
用的甲骨文,下载镜像:no matching manifest for linux/arm64/v8 in the manifest list entries
|
|
12
@WizardLeo 支持的
|
|
13
@a4526047 😂 是不是镜像源设置到其他地方去了
|
|
14
@honkew 现在有区分蜘蛛
|
|
a1274598858Jan 13
16
不会 go ,大佬能否构建个 releases😁
|
|
diansoJan 13
17
我 nginx 用的官方镜像,docker compose 运行,这如何使用啊
|
|
18
@dianso 这个跟镜像没关系,只需要传入 nginx 的日志文件路径就可以了
|
|
19
@a1274598858 可以,我晚点写下自动构建脚本,放 GitHub
|
|
54xavierJan 13
20
|
|
21
@54xavier 我文档写的有点问题,已经更正过来了。需要在 websites 里加每个网站的访问日志(.log 文件),声明好位置,然后再把本机的日志文件挂载进去。
-v ./nginx_data/logs/all/access.log:/var/log/nginx/access.log:ro \ |
|
22
@54xavier 我那里直接挂载 nginx 目录写错了😂
|
|
SkyHiveJan 13
23
能不能支持批量导入日志文件,因为我是把 nginx 当 lb 来用了,希望可以直接挂载 /var/log/nginx 这样的目录,日志文件的命名规则都是 ${domain_name}.access.log ${domain_name}.error.log 这样的
|
|
perfectlifeJan 13 via Android
24
能把日志格式拆出来,做成可以自定义的就完美了
|
|
whitewashJan 13
25
点进来前以为 nginx plus 开源了
|
|
jianqiao031313Jan 13
26
赞一个,要是 WEBSITES 支持配置文件就更好了,比如直接读个 json 啥的,后面修改完配置文件直接重启 docker 就好了~
谢谢 op 开源~ |
|
54xavierJan 13
27
@MagicCoder #21 不能挂载到 docker 内部 /var/log/nginx ,docker 内部也是用的 nginx ,刚好内部 nginx 也是这个路径,内部 nginx 读写 access.log 的时候会报错。
|
|
DejavuMoeJan 13
28
可以直接读取 Nginx 日志目录 /var/nginx/log 下的所有日志吗?手动单个站点挂载太麻烦了。
颜值很高,感谢开源 |
|
AstralumeJan 13
29
@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 ``` 这个写法容易理解些 |
|
AstralumeJan 13
30
WEBSITES 的配置是否考虑 logPath 支持列表或者正则表达,因为很多时候某个 Domain 的日志都会有 xxx.access.log 和 xxx.error.log
|
|
54xavierJan 13
32
还有一个问题,没有账号密码,存在一定的泄露问题,我暂时用 1panel 的密码访问解决了
|
|
liuliuliuliuJan 13
33
不错,但是有点不满足我的需求,拿来抄一份自用吧
|
|
34
@jianqiao031313 支持 json 的,容器里的 configs/nginxpulse_config.json 就是所有的配置,你可以挂载到主机,直接改这个 json 文件也是可以的
|
|
35
@54xavier 这个鉴权问题就不在这个项目做了🤣 专事专用,不做那么高的复杂度
|
|
36
@DejavuMoe 抱歉,这里我文档没写清楚,实际是挂载对应的.log 文件的,在 websites 里进行声明,文档已经更新了,你再看看
|
|
37
@liuliuliuliu 🤣 可以说下你的需求,我看看能不能通过配置的方式来支持
|
|
38
@SkyHive 支持的,文档已经更新了,可以看下 多个日志文件如何挂载 这个章节的内容
|
|
39
@perfectlife 可以自定义的,文档已更新,WEBSITES 就是干这个事儿的,日志文件随意指定
|
|
40
@54xavier 嗯嗯 这个问题是我文档写错了,已更正。
|
|
41
@DejavuMoe 支持的,文档已更新,详见 多个日志文件如何挂载 章节
|
|
louisxxxJan 13
42
适合没能力折腾 ELK 的
|
|
SkyHiveJan 14
44
@MagicCoder #38 OK ,回头试试
|
|
potaJan 14
45
我司在实际过程中发现 360 蜘蛛和 bing 蜘蛛会存在无蜘蛛标识的情况,尤其是 360 蜘蛛,经常变 ip 段,但是无头,建议使用官方页面每日更新蜘蛛段 https://www.so.com/help/spider_ip.html 进行判断,对于 bing 蜘蛛可以使用 https://www.bing.com/toolbox/bingbot.json 内容作为标识。百度蜘蛛不说了,目前没有官方发布页,只能按 UA 判断了
![]() |
|
honusJan 14
46
支持 nginx proxy manager 压缩日志解析不
|
|
47
@honus 日志格式满足就可以
|
|
48
@pota OK 我看看
|
|
54xavierJan 14
49
自从用了这个,发现每天访问自己网站的都是蜘蛛,以及零星的莫名其妙的访客
|
|
50
演示站点已部署: https://nginx-pulse.kaisir.cn/
|
|
itgoyoJan 15
51
好东西
|
|
DreamfulJan 15
52
大佬,1panel 可以直接用容器安装吗?
|
|
53
@Dreamful 可以的
|
|
SilentBladeJan 16
54
@MagicCoder #39 说的是日志格式解析自定义,我看文档上是要改源码吧
|
|
55
@mulychou 对,现在是要改源码,我正在把它改成可配置式
|
|
56
@54xavier 密钥功能加好了,你拉取下最新的镜像。加了个 ACCESS_KEYS 参数,具体可以看下文档
|
|
57
@Astralume 这个支持了, 用 * 来代替
|
|
chenplumJan 17
58
能否支持下 arm64
|
|
59
@chenplum 应该是支持的吧🤣
|
|
60
|