首页 / 汽车 / SUV / 正文

日志可视化(Python1招做日志可视化,谁访问多、敏感数据谁看,图表一眼看清)

放大字体  缩小字体 来源:各种小吃的做法大全 2026-04-17 17:05  浏览次数:13

有了操作日志后,“日志分析”又成新麻烦:

领导要“上周监控页访问统计”,我得从几百行日志里逐行数——谁登录了几次、敏感数据被看了多少次,数完还得手动画表格,花了1小时才整理好,结果领导说“不够直观,要图表”!

前面实现了“操作日志追溯”,这次教“日志分析招”!用Python把操作日志转成可视化图表,访问次数、敏感数据查看记录、登录失败统计全用图表显,不用翻日志、不用手动画,10秒出分析结果,领导看一眼就懂!

核心逻辑:让日志数据“变图表”,关键信息可视化

不用学Excel画图!核心是用Python的“pandas+matplotlib”,先读取操作日志文件,按“账号、操作类型、敏感查看”等维度统计数据,再自动生成柱状图、饼图、折线图,嵌进Excel里,打开就能看分析结果,不用手动调整格式!

4步做日志可视化,新手也能会!

① 装“日志分析+画图”库(1分钟搞定!)

打开“命令提示符”(Win+R输cmd),输入命令安装所需库(之前装过可跳过):

pip install pandas matplotlib openpyxl

- pandas:处理日志数据;

- matplotlib:生成图表;

- openpyxl:把图表嵌进Excel。

② 写“日志读取+数据统计”代码(自动算关键指标!)

新建“日志可视化.py”文件,粘贴代码,替换 操作日志路径 和 分析结果保存路径 :


python

import pandas as pd

import matplotlib.pyplot as plt

from openpyxl import load_workbook

from openpyxl.drawing.image import Image

import os

# 1. 设置中文字体(避免图表乱码)

plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS']

plt.rcParams['axes.unicode_minus'] = False

# 2. 读取操作日志文件(改路径!)

log_path = r"D:\监控日志\操作日志.txt"

# 日志格式:时间|账号|角色|操作类型|详情

columns = ["时间", "账号", "角色", "操作类型", "详情"]

# 读取日志,按“|”分割字段

df_log = pd.read_csv(

log_path,

sep="|",

header=None,

names=columns,

encoding="utf-8",

error_bad_lines=False # 跳过格式错误的行

)

# 3. 数据预处理(提取关键信息)

# 3.1 转换时间格式(方便按日期统计)

df_log["时间"] = pd.to_datetime(df_log["时间"], format="%Y-%m-%d %H:%M:%S.%f", errors="coerce")

df_log["日期"] = df_log["时间"].dt.date # 提取日期(如2025-12-11)

# 3.2 提取敏感数据查看次数(从“详情”字段里找)

df_log["是否查看敏感数据"] = df_log["详情"].str.contains("敏感任务数:[1-9]", na=False)

# 4. 统计核心指标(按需求改!)

# 4.1 各账号访问监控页次数(只统计“访问监控页”操作)

visit_count = df_log[df_log["操作类型"] == "访问监控页"]["账号"].value_counts()

# 4.2 各账号查看敏感数据次数

sensitive_view_count = df_log[df_log["是否查看敏感数据"]]["账号"].value_counts()

# 4.3 每日登录失败次数(只统计“登录”且“失败”的操作)

login_fail = df_log[(df_log["操作类型"] == "登录") & (df_log["详情"].str.contains("失败", na=False))]

daily_fail_count = login_fail.groupby("日期").size().reset_index(name="失败次数")

print("核心指标统计完成:")

print(f"各账号访问次数:\n{visit_count}")

print(f"各账号敏感查看次数:\n{sensitive_view_count}")

print(f"每日登录失败次数:\n{daily_fail_count}")


③ 写“图表生成+嵌入Excel”代码(自动出图!)

在上述代码后继续加,生成3类关键图表并嵌进Excel:


python

# 5. 生成图表1:各账号访问监控页次数(柱状图)

plt.figure(figsize=(10, 6)) # 图表大小

visit_count.plot(kind="bar", color="#3498db", edgecolor="black")

plt.title("各账号访问监控页次数统计(上周)", fontsize=14, pad=20)

plt.xlabel("账号", fontsize=12)

plt.ylabel("访问次数", fontsize=12)

plt.xticks(rotation=45) # 账号名旋转45度,避免重叠

plt.grid(axis="y", alpha=0.3) # 加水平网格线,方便看数值

# 保存图表(改路径!)

bar_path = r"D:\监控日志\访问次数柱状图.png"

plt.tight_layout() # 自动调整布局,避免标题被截断

plt.savefig(bar_path, dpi=100) # dpi=100:图片清晰度

plt.close() # 关闭图表,避免占用内存

# 6. 生成图表2:各账号查看敏感数据占比(饼图)

# 若没人查看敏感数据,用默认数据避免报错

if not sensitive_view_count.empty:

plt.figure(figsize=(8, 8))

# 饼图加百分比标签

wedges, texts, autotexts = plt.pie(

sensitive_view_count.values,

labels=sensitive_view_count.index,

autopct="%1.1f%%", # 显示百分比(保留1位小数)

colors=["#e74c3c", "#f39c12", "#2ecc71", "#9b59b6"],

startangle=90 # 从90度位置开始画(顶部)

)

plt.title("各账号查看敏感数据占比(上周)", fontsize=14, pad=20)

pie_path = r"D:\监控日志\敏感查看饼图.png"

plt.tight_layout()

plt.savefig(pie_path, dpi=100)

plt.close()

else:

pie_path = None # 没人查看则跳过

# 7. 生成图表3:每日登录失败次数(折线图)

plt.figure(figsize=(10, 6))

if not daily_fail_count.empty:

plt.plot(

daily_fail_count["日期"],

daily_fail_count["失败次数"],

marker="o", # 数据点用圆形标记

linewidth=2,

color="#e74c3c",

markersize=8

)

plt.title("每日登录失败次数统计(上周)", fontsize=14, pad=20)

plt.xlabel("日期", fontsize=12)

plt.ylabel("失败次数", fontsize=12)

plt.xticks(rotation=45)

plt.grid(alpha=0.3)

else:

plt.text(0.5, 0.5, "无登录失败记录", ha="center", va="center", fontsize=12)

plt.title("每日登录失败次数统计(上周)", fontsize=14, pad=20)

# 保存折线图

line_path = r"D:\监控日志\登录失败折线图.png"

plt.tight_layout()

plt.savefig(line_path, dpi=100)

plt.close()

# 8. 把图表嵌进Excel(生成分析报告)

# 新建Excel

excel_path = r"D:\监控日志\操作日志分析报告.xlsx"

with pd.ExcelWriter(excel_path, engine="openpyxl") as writer:

# 写入原始统计数据(方便核对)

visit_count.to_frame("访问次数").to_excel(writer, sheet_name="访问统计")

if not sensitive_view_count.empty:

sensitive_view_count.to_frame("敏感查看次数").to_excel(writer, sheet_name="敏感统计")

daily_fail_count.to_excel(writer, sheet_name="登录失败统计", index=False)

# 加载Excel,插入图表

wb = load_workbook(excel_path)

# 新建“图表汇总”工作表

ws = wb.create_sheet(title="图表汇总")

# 插入柱状图(A1位置)

img_bar = Image(bar_path)

img_bar.width = 600 # 调整图片宽度

img_bar.height = 400

ws.add_image(img_bar, "A1")

# 插入饼图(A25位置,避开柱状图)

if pie_path:

img_pie = Image(pie_path)

img_pie.width = 500

img_pie.height = 500

ws.add_image(img_pie, "A25")

# 插入折线图(G25位置,避开饼图)

img_line = Image(line_path)

img_line.width = 600

img_line.height = 400

ws.add_image(img_line, "G25")

# 保存Excel

wb.save(excel_path)

print(f"日志分析报告已生成,路径:{excel_path}")


④ 运行代码+查看结果(10秒出分析!)

1. 运行代码:双击“日志可视化.py”,Python会自动读取日志、统计数据、生成3张图表、嵌进Excel;

2. 看Excel报告:打开“操作日志分析报告.xlsx”,切换到“图表汇总”工作表——

- 柱状图:一眼看出“leader_zhang访问12次最多,stock_li访问5次”;

- 饼图:清晰显示“leader_zhang占敏感数据查看的80%”;

- 折线图:发现“12月9日登录失败3次,可能有人试密码”;

3. 给领导汇报:不用翻日志,直接打开图表页,领导10秒get核心信息,不用再听你念数字!

效果对比:原来分析日志1小时,现在10秒出图表!

以前手动分析:翻日志30分钟+数数据15分钟+画表格15分钟,共1小时,还不直观;

现在自动可视化:10秒生成图表报告,谁访问多、敏感数据谁看、哪天有异常登录,图表一眼看清。上周给领导汇报,他盯着饼图说“敏感数据主要是我看的,没问题”,5分钟就结束汇报!

衔接全流程!自动化实现“日志-分析-可视化”闭环

现在你的大数据自动化彻底“可分析”:

1. 多任务自动执行→2. 写业务日志+操作日志→3. Python分析日志→4. 生成可视化图表→5. 嵌进Excel汇报

从日志记录到分析汇报,不用手动干预,每周省出1小时分析时间,还能及时发现异常(如多次登录失败)

记住:日志分析不用手动数,Python+图表自动显!图表类型按需求换(柱状图/饼图/折线图),记不住就收藏!

#职场效率 #Python日志可视化 #操作日志分析 #拒绝手动数数据 #办公自动化分析版

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心