前言

Why?

今天看了一下Nginx的access.log文件,数据太多,根本不直观,想到可以用Python3稍微处理一下,一不小心就把这个面板做了出来

同时也是我的第一个github项目:地址

关于access.log

access.log记录的信息像这样:

360截图17610615244657

文件可能在/var/log/nginx目录下,具体看/etc/nginx/nginx.conf写的内容

此文件记录的是请求日志,会有什么内容呢?有请求设备名称,浏览器(应该是header中记录的)类型,请求的文件,请求状态等

也就是说可以了解哪一个地址最受欢迎被访问,也可以看看是谁在扫你的服务器web端口

简单说下怎么实现的?

Python3程序读取access.log(无法读取什么的权限问题什么的这里不会讲),提取关键信息生成json文件,浏览器前端JavaScript程序请求Json再进行二次处理

这样做可以达到请求时无后端,避免占用过多的服务器资源,也提高了安全性

平时的话使用定时任务运行此程序让它更新一下json就好

效果截图

本站的面板:https://blog.lxscloud.top/dashboard/index.html

数据总览

可以查看主页访问数请求数

同时提供图表

1

模块

有五个子模块

2

模块细分

网站请求次数排名

具有标签功能,信息一目了然

3

具备追踪功能

3-1

访问者使用最多的浏览器

具有标签功能,标签显示浏览器和异常情况

4

同样具备追踪功能

4-1

访问次数最多的IP

是否显示IP由面板用户决定,请看后部分使用说明

5

原始数据

有时候可能有看原始数据的需求

6

开始

  • Python3读取access.log, 分类成字典,生成json文件

  • Javascript请求json文件,处理图表数据,处理模块数据,代码不到一千行

  • 网页模板来自这里

结束

源程序可以到我的仓库地址下载,上面有说明,麻烦移步:地址

测试环境:nginx/1.16.1 and nginx/1.18.0(即此版本的Log可以被识别)

  • V1

    • Basic function
    • 基本功能(访问显示、访问信息)
  • V1.1

    • Repaired sort by date and appended Fetch and Referer showing
    • 请求量按日期排序、增加“请求”和“来自网址”的显示
  • V2.0(当前版本)

    • 修复了一个小BUG

    • 优化了代码结构

    • 添加 “加载剩余数据” 按钮,在信息比较多的时候不会全部加载到页面

    • 访问足迹功能(可以查看访问者还打开了什么网址、什么时候打开的)

    • 显示提示标签(数据仅供参考)

EOF