新建Nginx_alog项目(公开)

作者:熊茂祥
时间:2026-01-24 20:46
分类:技术文档
标签:linux, nginx, log, 日志, 分析
内容: nginx的日志内容很多，一条条分析很累，也不实际。于是按自己的需求写了个面板，方便自己了解nginx运行情况。该项目免费开放使用。 NGINX日志格式配置（2025.12.10更新） ##日志格式 log_format jsonlog escape=json '{' '"time_local":"",' '"timestamp":"",' '"remote_addr":"",' '"host":":",' '"request":"",' '"status": "",' '"body_bytes_sent":"",' '"http_referer":"",' '"http_user_agent":"",' '"request_time":"",' '"cache_status":"",' '"gzip_ratio":""' '}'; ##文件接收 access_log /var/log/nginx/access.log jsonlog; ##VSOCK接收 #access_log syslog:server=unix:/tmp/nginx_alog.sock jsonlog; 运行方式（系统内执行） #下载程序和IP定位库文件解压后（ipv4.bin，ipv6.bin）放在同一个目录下 #port=服务端口（默认876） #token=自定义token（默认123） #log=你的nginx路径 #logkeep=日志内容保留小时数（默认0，禁用本功能） #放置您自己的ssl证书到程序目录下,名字为cat.crt,cat.key. #访问https://您自己的IP:服务端口/?mytoken=您设置的token #例如下面的运行方式 ./nginx_alog log=/var/log/nginx/access.log logkeep=375 token=123 vcache=100000 conf=/etc/nginx/nginx.conf 运行方式（Docker）（2025.08.03更新）系统变量说明： logkeep = 375 token = 123 挂载目录说明： /nginx/log挂载到/home/nginx/log 暴露端口tcp 876 镜像下载： https://pcdn.ros6.com:9443/docker/nginx_alog_amd64.tar https://pcdn.ros6.com:9443/docker/nginx_alog_arm64.tar 程序下载地址（2026.01.24更新） https://pcdn.ros6.com:9443/file/nginx_alog/linux_x86_64 https://pcdn.ros6.com:9443/file/nginx_alog/linux_arm64 https://pcdn.ros6.com:9443/file/nginx_alog/linux_loong64 https://pcdn.ros6.com:9443/file/nginx_alog/freebsd_x86_64 https://pcdn.ros6.com:9443/file/nginx_alog/netbsd_x86_64 IP库下载地址（2026.01.24更新） https://pcdn.ros6.com:9443/file/nginx_alog/ipk.zip 更新时间：2026/01/24 更新内容：新增浏览器识别特征。优化日志模块分析效率，效率提升50%以上。 vsock的日志改为记录时间降序搜索和排列。修复了展示总日志长度计数器，访问次数特定场景下计算不准确的BUG。定时清除大于1个月没有访问的IP速率记录。查看国家或者省级地区数据时，数据列表中新增时间，方便以更多维度判断数据可信度。减少缓存对内存的占用。优化了VSOCK数据落盘和读取的逻辑，提升性能。 IP传输占用大小改为双图，新增IP链接占用比率饼图。由于大幅调整缓存结构，本次更新会导致丢失所有历史缓存记录。更新时间：2026/01/01 更新内容：提升了日志分析模块的效率。修复了跨年时段趋势图数据不正确的BUG。更新日期：2025/12/22 更新内容：优化了vsock日志搜索模块的效率。搜索日志时，展示vsock的处理耗时。更新日期：2025/12/19 更新内容：点击访问者国家或省份分布后，IP列表可以直接点击进行IP日志查询。IP列表可以显示对应IP累计消耗流量,并且支持按流量排序。更新日期：2025/12/17 更新内容：新增vsock负载状态，性能展示。没有访问成功的路径，不再记录到路径统计里。避免各种探测影响路径统计数据。新增多个应用的浏览器标识识别。更新日期：2025/12/13 更新内容：新增vsock缓存日志落盘功能，每个小时自动压缩保存最新的vsock数据到硬盘。这样既兼顾了一段时间的日志回溯，也解决了高并发环境的磁盘IO占用，大量磁盘空间占用的问题。并且页面底部新增了"保存"按钮，可以随时手动保存数据到磁盘里。更新日期：2025/12/12 更新内容：新增内存暂存日志，将VSOCK收到的内容放在内存里。可以回溯一定数量的日志。允许用户自定义缓存区大小，默认10W条。修正当解析日志回复时间为0时无法被回溯搜索到的问题。更新日期：2025/12/10 更新内容：对境外定位翻译为中文地名（当前已支持几十个热门国家）。新增VSOCK模式(支持linux和netbsd，debian12默认支持，netbsd需要额外安装syslog-ng)，使用该模式接收日志将不再经过磁盘交互，直接通过内存进入统计数据。（本模式具备极高的分析效率，适合超高并发的站点统计分析，但无法回溯日志细节。）更新日期：2025/12/08 更新内容：调整回复时间占用饼图的颜色（按时间范围固定显示的颜色），方便区分。优化IP定位解析模块，能对境外定位翻译为中文地名（目前仅支持数十个热门国家）。更新日期：2025/12/05 更新内容：修正了当传输字节为0时没有统计次数的BUG。新增地区时段趋势里的数据列表支持排序，允许显示更多的IP列表数据（从20条扩展到50条），并支持精确解析详细IP地址。更新内置运营商IP段数据库，更新IP定位库数据库。更新日期：2025/11/27 更新内容：优化了IP定位库缓存逻辑，增加命中率并降低占用率。新增多个应用的浏览器标识识别。更新日期：2025/10/31 更新内容：修复了缓存容量占用百分比在特定情况下计算错误的BUG。修复了分析模块一处可能会导致程序异常退出的BUG。新增多个应用的浏览器标识识别。更新IP定位库。更新日期：2025/10/02 更新内容：新增多个应用的浏览器标识识别。更新IP定位库。更新日期：2025/09/06 更新内容：大幅缩减"裁剪日志"模块所需内存，并在页面底部展示内存占用信息。更新日期：2025/09/01 更新内容：点击日流量或者时流量可以弹出对应时间范围的日志，方便排查流量来源。修复了已知的BUG。新增多个浏览器识别特征。更新日期：2025/08/25 更新内容：点击查看国家或者地区详情时，新增列出20个该地区的IP对应速率列表。方便快速判断目标地区的用户到站点的大致速率情况。更新日期：2025/08/11 更新内容：新增国家，国内省级，国内运营商输出流量统计饼图，合并到访问次数统计图内一起展示。通过读取nginx配置文件自动获取配置的缓存目录空间占用率，方便随时了解缓存可用空间来调整运维方案。程序启动不再依赖工作目录，自动定位程序所在的目录作为工作目录。由于程序读取配置文件需求环境变动，暂不更新docker版本。更新日期：2025/08/03 更新内容：新增国内运营商分布饼图，并且可以查看按运营商的24小时的带宽吞吐量。新增CPU，内存，硬盘，网卡，连接数历史24小时趋势图。调整计算带宽速率仅包含1M以上内容。（由于系统内核限制的原因，部分功能仅linux可用。）更新日期：2025/07/12 更新内容：新增国内运营商识别模块(支持V4和V6)。修复当nginx日志里IP包含有重复的时候无法正常处理的BUG。新增国家，国内省级运营商带宽速率均值显示和点击显示24小时趋势图。IP记录搜索时，新增显示IP的地理位置和平均带宽速率。IP类型分布，入口地址分布，IP传输占用大小单位改成自动计算。优化了日志搜索模块。大幅优化了IP库解析模块效率。（日志分析速度较上一版本提升3倍。）更新日期：2025/07/02 更新内容：回复时间占用可以点击查看分布到这些时间的URL和具体回复时间。gzip搜索日志范围去掉路径相同的内容。修正了当碰到中文路径或特殊符号时无法正确搜索该日志的BUG。更新日期：2025/07/01 更新内容：大幅优化日志裁剪模块效率。新增缓存大小展示。修正了HTTP版本页面链接返回结果错误的BUG。新增文件类型访问分布。更新日期：2025/06/28 更新内容：修正了日志文件大小计算有误差的BUG。调整了缓存数据存储到硬盘逻辑，避免每次分析都存储到硬盘，提高页面展示效率。新增zstd压缩方案，当数据量缓存超过50000条时，自动切换为zstd压缩方案。(大数据量情况下zstd压缩比和压缩速度均大幅优于gzip。)新增nginx日志内的gzip信息分析，方便运维人员用于优化nginx的压缩策略。大幅优化日志分析模块的IO占用效率，提升日志分析效率。大幅降低docker镜像大小，从172M降低至43M，节约下载镜像时间。更新日期：2025/06/23 更新内容：新增多个应用的浏览器标识识别。优化缓存数据库读写逻辑，页面输出逻辑，日志文件读取逻辑，大大提高在面对超大日志时的处理效果和展示效率。（在处理80W+条日志时，缓存后的效率提升接近5倍。新增的非缓存数据分析效率提高10倍以上。）更新日期：2025/06/12 更新内容：nginx面板优化了缓存日志的识别逻辑，优化了趋势图展示细节。favicon.ico制作一个小logo展示。http客户端版本分布展示。中国地区和国家分布图合并显示。更新日期：2025/06/08 更新内容：可展示回复状态码，访问者来源TOP15，入口地址TOP15，IP传输占用TOP15，路径访问TOP50的最后若干条详细记录，方便排查故障和诊断体验。点击对图内数据即可展示详细日志。更新日期：2025/06/07 更新内容：支持主机名解析，按主机名流量分布画饼图。支持在输出流量趋势图里区分缓存流量和未缓存流量分别显示。更新日期：2025/05/25 更新内容：优化分析耗时模块。优化分析缓存逻辑（新增'"timestamp":"",'）。新增路径输出量，时流量，和其他趋势图合并在一起，可以手动切换显示。更新日期：2025/05/08 更新内容：调整回复状态的颜色定义，能更加直观快速的排查问题。更新为最新的IP定位库。更新日期：2025/03/28 更新内容：新增Docker版本，支持amd64及arm64平台。也可以在MikroTik的容器内运行哟。更新日期：2025/02/09 更新内容：修正了IP类型分布鼠标悬停没有显示数据单位的BUG。更新了IP定位库到最新版。更新日期：2024/10/22 更新内容：调整了IP类型分布饼图，能够同时显示IPV4,IPV6类型的访问次数及流量。修复了日期统计流量不准确的BUG，更新程序后请清空缓存重新计算。更新日期：2024/09/27 更新内容：修复了不会自动裁剪日志的BUG，修正了日志总长度在纯IPV4或IPV6环境里天数计算不正确的BUG。更新日期：2024/09/24 更新内容：修复了日输出流量趋势日期排序可能不正确的BUG。更新日期：2024/09/19 更新内容：新增一部分浏览器标识的特征识别。更新日期：2024/09/07 更新内容：优化日志裁剪模块的效率，日志裁剪功能改为每天最多只触发一次。日志保留小时数允许区间为1-720。调整部分趋势图颜色为固定，修复了统计日志总长度显示不正确的BUG。更新日期：2024/09/03 更新内容：新增日IPV4,IPV6流量统计，和日流量合并到一个趋势图显示。更新日期：2024/09/02 更新内容：新增日缓存量统计，和日流量合并到一个趋势图显示。更新日期：2024/09/01 更新内容：程序可以按需自动重新加载IP定位库，开始支持热更新IP定位库。修复部分计数器BUG。更新日期：2024/08/31 更新内容：新增路径流量统计，和路径访问量合并到一个趋势图显示。丰富图表，提升显示细节。更新日期：2024/08/28 更新内容：新增日访问量统计，和日输出流量合并到一个趋势图显示。更新日期：2024/08/27 更新内容：修复了路径统计量未包含缓存量的BUG，内置SSL私有证书，如果用户没有放置自己的证书，将会自动启用内置私有证书运行。优化页面加载内容，提升页面加载速度。更新日期：2024/08/23 更新内容：进入公测阶段，开放下载。更新日期：2024/08/22 更新内容：新增一部分浏览器标识的特征识别。更新日期：2024/08/16 更新内容：新增日志文件裁切功能，默认不裁切日志文件，当配置裁切后，将删除超出配置小时期限的日志，避免累积大量日志占用磁盘空间。更新日期：2024/08/13 更新内容：新增分析结果缓存功能，避免每次打开页面时重新分析全部数据，而是仅分析新增的数据。缓存会以文件的形式保存，即使程序重启后依然可以读取分析的缓存结果。新增清空缓存功能，可以从头分析日志文件，丢弃不在日志文件里的全部分析结果。程序已进入内测阶段。更新日期：2024/08/12 更新内容：新增缓存状态识别，路径访问量中会显示缓存和未缓存的数量。更新日期：2024/08/11 更新内容：新增日志日期长度在页面底部显示，对定位的国家和地区进行汉化，最后30天输出流量表里新增合计流量显示。将分析逻辑模块化并拆分为多线程并行计算，分析效率提升2倍以上。更新日期：2024/08/02 更新内容：新增每日流量统计，路径访问统计。日志大小，分析时间在页面底部显示。更新日期：2024/07/31 更新内容：完成基础日志数据分析，并使用web展示分析结果。

查看评论
立即登陆发表评论

返回日志列表
返回主页