可视化分析 web 访问日志
内容目录
- Python 基础
- 使用模块介绍
- 可视化组件 echarts 介绍
- Web 访问日志
- 代码解读
讲师:KK
多语言混搭开发工程师,多年 PHP、Python 项目开发经验,曾就职 360、绿盟科技,7年工作经验。擅长于 Web 安全开发、性能优化、分布式应用开发&设计等多方面,51Reboot 金牌讲师。
Python 基础
- 数值、字符串、列表、字典、文件的使用
- with 关键字使用
- 函数、lambda 函数、sorted
- 时间类型转化
时间类型转化

统计 list 中每个元素出现的次数
languages = ['python', 'java', 'python', 'c', 'c++', 'go', 'c#', 'c++', 'lisp', 'c', 'javascript', 'java', 'python', 'matlab', 'python', 'go', 'java']

常用模块
- os/os.path 系统/文件路径操作
-os.mkdir/os.rmdir/os.unlink/os.listdir
-os.path.join/os.path.abspath/os.path.dirname/os.path.exists
- argparse 命令行参数解析
-add_argument(short_name, full_name, type, desc, default, help, choices, nargs, action)
- shutil 文件/文件夹操作
-shutil.copy2/shutil.copytree/shutil.rmtree
- logging 日志记录
-logging.basicConfig(level, format, filename, filemode)
-https://www.jianshu.com/p/4a801f61ecda
- jinja2 模板引擎,用于根据模板生成文件
-使用步骤(3步走)
-创建加载器
-获取模板
-渲染
-模板语言
-打印变量
-流程控制(条件、循环)
-过滤器
-模板继承
- geoip2 用于 maxmind 二进制库 mmdb 查询
-打开文件
-获取 ip 信息(国家、城市、地理位置等)
-关闭文件
可视化组件 echarts 介绍
- 项目地址:http://echarts.baidu.com/echarts2/
- 项目介绍:可视化JS组件
- 目前主要版本:2.0 & 3.0
- 使用步骤(3 + 3):http://echarts.baidu.com/echarts2/doc/start.html
- 常用图形
-饼状图
-曲线图
-柱状图
-仪表盘
-地图
-K 线图
-…
Web 访问日志
- Web 访问日志是 web 服务器记录的网站被访问的过程日志
- 日志属性
-什么时候
-什么人
-通过什么工具
-以什么方式
-访问了什么资源
-结果是什么(状态/返回数据大小)
- 每天的点击量、总点击数量
-每天的日志行数、日志的总行数(每天的日志行数之和)
- 每天的浏览者数量、总浏览者数量
-每天的不重复的 IP 的数量
-总的不重复的 IP 数量(每天不重复的 IP 数量之和???)
- 发生错误的请求有多少次,状态码分布情况
-每种状态码出现的次数
- 每天流量大小
-每天的日志中每行流量之和
-总的流量之和(每天流量之和)
- 访问地域分布
-根据 IP 获取地理位置
- 发生访问次数最多 TOP N IP 列表
- 通用日志的格式

- 组合日志格式
-127.0.0.1 - - [14/May/2017:12:51:13 +0800] "GET /index.html HTTP/1.1" 200 4286 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36“
远程主机 IP - - 请求时间 时区 方法 资源 协议 状态码 发送字节 referer 字符 浏览器信息
一些重点代码的解读
- 程序入口

- 主程序

- 每天统计项

- 总统计项

- 模板页面(显示内容)

- 模板页面(echart)

- 模板页面(控制流程)

更多项目代码分享结束后资料一并分享给大家。
本次分享时间:2018-11-08
21:00-22:00
报名方式:扫码添加小助手备注:公开课 来源:博客园,会拉入直播分享群
提示:51Reboot Python 零基础入门课程正在火热招生。
可视化分析 web 访问日志的更多相关文章
- 机器数据的价值 - Web 访问日志和数据库审计日志
计算机数据 大量的数据流,不断增长的来源,蕴含着巨大的价值 在 Splunk,我们大量谈及计算机数据.这些数据是指在数据中心.“物联网”和互联设备世界中运行的所有系统产生的数据.其中包括支撑组织的应用 ...
- 采集并分析Nginx访问日志
日志服务支持通过数据接入向导配置采集Nginx日志,并自动创建索引和Nginx日志仪表盘,帮助您快速采集并分析Nginx日志. 许多个人站长选取了Nginx作为服务器搭建网站,在对网站访问情况进行分析 ...
- Python基础(三):简化除法判断、分析apache访问日志、扫描存活主机、利用多线程实现ssh并发访问
一.简化除法判断 目标: 编写mydiv.py脚本,主要要求如下: 提示用户输入一个数字作为除数 如果用户按下Ctrl+C或Ctrl+D则退出程序 如果用户输入非数字字符,提示用户应该输入数字 如果用 ...
- 利用GoAccess分析Nginx访问日志
原文链接:https://blog.csdn.net/yown/article/details/56027112 需求:及时得到线上用户访问日志分析统计结果,以便给开发.测试.运维.运营人员提供决策! ...
- 使用hive分析nginx访问日志方法
以下案例是使用hive分析nginx的访问日志案例,其中字段分隔通过正则表达式匹配,具体步骤如下: 日志格式: 192.168.5.139 - - [08/Jun/2017:17:09:12 +080 ...
- 命令分析nginx访问日志的用法
awk分析日志常用高级使用命令方法 分析访问日志(Nginx为例) 日志格式: '$remote_addr - $remote_user [$time_local] "$request&qu ...
- Centos下Nginx配置WEB访问日志并结合shell脚本定时切割
在一个成熟的WEB系统里,没有日志管理是不可以的,有了日志,可以帮助你得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某个服务或server的性能瓶颈等. ...
- python脚本分析nginx访问日志
日志格式如下: 223.74.135.248 [11/May/2017:11:19:47 +0800] "POST /login/getValidateCode HTTP/1.1" ...
- 统计web 访问日志的请求数据
tomcat日志格式 在配置文件 server.xml 中,具体参照官方文档 https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#A ...
随机推荐
- September 15th 2017 Week 37th Friday
First I need your hand, then forever can begin. 我需要牵着你的手,才能告诉你什么是永远. If you want to shake hands with ...
- app数据加密方法
由于项目涉及到注册和登录,所以我了解一下现在app使用比较广泛的几种密码加密方法,可以当作参考,以下都是在python3.5的环境下使用这些算法的例子. 1.base64 Base64是一种基于64个 ...
- 026.2 网络编程 UDP聊天
实现,通过socket对象 ##############################################################需求建立UDP发送端:###思路:1.建立可以实 ...
- FreeMaker常用方法
FreeMaker常用方法 1.表达式转换类 ${expression}计算expression并输出 #{ expression }数字计算#{ expression ;format}安格式输出数字 ...
- HDU 5550 - Game Rooms(DP + 前缀和预处理)
链接: http://acm.hdu.edu.cn/showproblem.php?pid=5550 题意: 一个大楼有n(2≤n≤4000)层,每层可以建一个乒乓球房或者一个游泳房,且每种房间在大楼 ...
- OSM
一.OSM是什么 开放街道图(OpenStreetMap,简称OSM)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图(wiki:http://wiki.openstreetm ...
- 【bzoj 2839】集合计数
权限题 根据广义容斥的套路就很好做了 设\(g_i\)表示交集至少有\(i\)个元素,\(f_i\)表示交集恰好有\(i\)个元素 显然有 \[g_i=\sum_{j=i}^n\binom{j}{i} ...
- jQuery内容横向拖拽滚动
如果有业务需求:使用横向滚动,而又不想用滚动条,可以使用横向拖拽滚动,主要是利用元素的scrollLeft特性: 废话不多说直接上代码: css: .box{ width:100%; height:3 ...
- Mysql 多实例实施步骤
基本理论:利用同一套安装程序,不同配置文件,不同启动程序,不同数据目录.有公用资源,也有私有资源. 实现步骤: 1.正常安装mysql,二进制安装或者编译安装. 2.创建mysql多实例总目录,总目录 ...
- java集合---迭代器iterator
一:ArraryList 最终继承超级接口Collection,Colection接口继承Iterator接口. public interface Collection<E> exten ...