LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

开发了一个nginx日志分析面板

freeflydom
2026年1月9日 9:25 本文热度 312

前言

最近在优化网站访问链路的过程中,部署了一套WAF防火墙,它大部分功能都做的挺好,美中不足的地方就是针对于网站访客的相关功能需要付费(3600元/年)才能用。

付费是不可能付费的,找了一圈nginx日志分析的开源项目,大部分都做的挺简陋的,要么就是做的很重,需要部署其他服务。

既然找不到合适的,那就自己动手写一个吧!

实现效果

做了4个模块对日志数据进行分析。

  • 访问概况
  • 数据日报
  • 实时访问
  • 访问明细

访问概况

概况模块中,做了8个维度的数据分析。

核心指标

在这个维度中,针对http状态码、浏览量、访客数、会话数做了更细致的划分。

每一个划分中,在详情面板里,都可以看到这个访客在什么时间做了什么事情。

趋势分析 & 新老访客

这一部分可以看到每天的访问趋势以及当天与前一天的新老访客占比。

来路、受访页、入口页

这部分可以看到访客的来源,以及每个路径的访问次数。

地域 & 终端设备

这部分可以看到每个省份的访问情况以及访问设备的分布情况。

数据日报

在这个模块中,可以看到每天的浏览量、访客数、平均访问时长等信息。

实时访问

在这个模块里,可以查看最近5/15/30分钟内的访问情况

访问明细

这个模块就以表格的形式展示每一条日志。

如何使用

为了方便使用,我已经将这个项目打包成镜像发布到dockerhub上了,镜像名为magiccoders/nginxpulse​,可以通过docker的形式使用,也可以通过docker compose的形式使用。

需要传入的参数:

  • WEBSITES 它的值是个数组,一个对象就是一个网站,需要传入网站名、日志路径、网址(或者内网ip,主要用于站内/站外的区分)
  • ports 端口映射,容器内暴露出来的端口是8088
  • volumes 文件挂载,这里需要挂载:日志文件、容器内产生的数据文件、时区

此处我以docker compose的形式举例:

version: "3"
services:
  nginxpulse:
    image: magiccoders/nginxpulse:latest
    container_name: local_nginxpulse
    ports:
      - "9200:8088"
    environment:
      WEBSITES: '[{"name":"神奇的程序员","logPath":"/var/log/nginx/access.log","domains":["kaisir.cn","www.kaisir.cn"]}]' #domains用于“来源(referer)统计”的站内/站外分类
      PV_EXCLUDE_IPS: '["127.0.0.1", "::1", "10.10.0.1", "192.168.30.21"]' #pv统计时需要排除的ip
    volumes:
      - ./nginx_data/logs/all/access.log:/var/log/nginx/access.log
      - ./nginxpulse_data:/app/nginxpulse_data
      - /etc/localtime:/etc/localtime
    restart: unless-stopped

转自https://juejin.cn/post/7592789801708093481


该文章在 2026/1/9 9:25:31 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved