可视化分析 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 ...
随机推荐
- SQL语言DDL DML DCL TCL四种语言
1.DDL(Data Definition Language)数据库定义语言:DDL使我们有能力创建或删 除表格.可以定义索引(键),规定表之间的链接,以及施加表间的 约束. • 常见DDL 语句: ...
- Linux 系统的磁盘设备_【all】
磁盘 ->RAID ->分区 ->格式化 ->挂载 基本的框架 a.硬盘的外部以及内部硬件结构,工作原理和读写原理b.RAID的划分(一块盘划分为一块或者多块的小虚拟磁盘,可以 ...
- mysql常见问题总结
061 如何删除表? 答案:运行命令 drop table table_name; 062 创建索引 对于查询占主要的应用来说,索引显得尤为重要.很多时候性能问题很简单的就是因为我们忘了添加索引而造成 ...
- ZT 二叉树先序,中序,后序遍历非递归实现
二叉树先序,中序,后序遍历非递归实现 分类: 数据结构及算法2012-04-28 14:30 8572人阅读 评论(6) 收藏 举报 structc 利用栈实现二叉树的先序,中序,后序遍历的非递归操作 ...
- D:\hunting2014\小题目\字符串倒序
#include<stdio.h>#include<string.h> char *revert(char *str){ char temp; char *p = str; c ...
- ZT C语言实现字符串倒序
http://blog.chinaunix.net/uid-20788517-id-34777.html 分类: C/C++ 1 #include <stdio.h> 2 #includ ...
- "函中函" -------------------- func2(func) -------------- 函数名可以当做函数的参数
def func(): print("吃了么")def func2(fn): print("我是func2") fn() # 执⾏传递过来的fn # 即 fn替 ...
- 囧啊!!时间戳转化为时间出错php
最近写了一个api,测试也没发现啥问题.可是上线之后发现有时api的返回结果不正确.为什么呢? 调我接口的同学给了两个调用示例,理论上两个的结果应该一致,实际结果却不一致. api调用带了一个时间戳参 ...
- grep命令.md
grep命令 简介 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Prin ...
- 《Java程序设计》第15周课堂实践总结
<Java程序设计>第15周课堂实践总结 实践一 教材代码检查-p242 要求 在IDEA中或命令行中运行P242 StackTraceDemo2.java 代码运行结果和教材一致吗?为什 ...