需求调研文档——日志文件error监控报警脚本
日志监控报警系统需求文档(详细版)。该文档分为核心功能模块、可配置项、报警机制、可视化需求、日志记录、测试模拟、脚本结构及附件说明等模块。
📄 日志监控报警系统需求文档
一、系统目的
设计一个基于 Python 的日志监控系统,实时监控指定日志文件的大小变化与ERROR内容增长,在满足设定条件时执行以下操作:
-
文件移动
-
邮件报警
-
日志记录
-
数据统计与可视化
二、系统功能模块
模块1:文件监控模块
-
⏲ 每隔 1 分钟执行一次监控任务
-
📄 支持指定任意文件路径与文件名
-
📏 检查文件当前大小是否超过阈值(单位:MB)
-
🔍 检测文件中是否新增包含
"ERROR"
的内容行
模块2:文件移动模块
-
🗃 当文件大小超过设定阈值后,将文件移动至指定备份目录
-
🕒 文件名添加时间戳后缀(格式:
YYYYMMDD_HHMMSS
) -
📁 保证备份目录存在,不存在则自动创建
模块3:邮件报警模块
-
✉️ 当文件中出现增长的
"ERROR"
信息或触发其他异常条件时,发送邮件至指定邮箱 -
📬 邮件内容包含:
-
报警主机名
-
报警发起人
-
报警IP地址
-
报警时间
-
报警事件类型(文件过大 / 错误信息增长)
-
报警级别(默认:高)
-
报警人员(可配)
-
报警详情描述
-
当前日志文件路径
-
当前进程状态(运行中 / 已异常)
-
报警详细
error
信息 -
📎 附件:完整日志文件、报警时截图(如有)
-
模块4:日志记录模块
-
📝 所有监控活动写入日志(如
monitor.log
):-
当前文件大小
-
移动文件操作记录(原路径 → 新路径)
-
报警邮件发送记录(时间、邮箱地址、事件原因)
-
-
⏱ 日志格式需包含时间戳与日志等级(INFO/ERROR)
模块5:可配置参数模块(配置文件或参数字典)
参数 | 描述 | 默认值(建议) |
---|---|---|
monitor_file_path | 要监控的文件路径 | /path/to/log.txt |
size_threshold_mb | 文件大小阈值(MB) | 10 |
backup_dir | 超阈值后文件的备份路径 | /path/to/backup |
alert_email | 报警邮箱 | admin@example.com |
check_interval_sec | 监控周期(秒) | 60 |
alert_personnel | 报警处理人名称 | 系统管理员 |
模块6:可视化模块(扩展功能)
-
📊 使用 matplotlib/pandas 进行可视化统计:
-
每分钟保存成功的文件数变化曲线(折线图)
-
每分钟错误信息增长统计
-
文件大小随时间变化趋势
-
-
🗂 显示所有保存文件的:
-
文件名
-
文件路径
-
文件大小(MB)
-
三、异常报警规则
异常情况 | 处理方式 |
---|---|
文件大小超过阈值 | 触发文件移动、记录日志 |
ERROR 信息增长 | 触发邮件报警、记录日志 |
保存文件序号不连续 | 报警并记录(序号差异可人工定义) |
四、测试与模拟要求
-
🔧 模拟文件大小增长:
-
使用追加内容脚本,逐步增长文件至超过阈值
-
确认文件是否被移动至备份目录,检查文件名后缀
-
-
🧪 模拟 ERROR 信息写入:
-
手动或程序持续向日志中写入 ERROR 行
-
观察报警邮件是否按预期发送
-
-
🖥 运行截图要求:
-
显示源目录与目标目录的文件变化(移动成功)
-
显示监控脚本终端输出日志(包括报警与移动信息)
-
显示
monitor.log
内容片段(日志记录)
-
五、脚本结构要求
1. 主监控脚本:monitor.py
-
主程序入口
-
定时轮询调用监控函数
-
日志、邮件、文件处理模块集成
2. 邮件发送脚本:send_email.py
-
封装发送邮件逻辑
-
支持多字段邮件内容和附件添加
3. 文件模拟脚本(测试用):simulate_growth.py
-
自动增加文件内容(数据/ERROR)
-
控制增长速率与模拟时间
六、输出日志格式样例
[2025-06-02 14:20:15][INFO] 正在监控文件:/var/log/app.log,当前大小:9.8 MB
[2025-06-02 14:21:15][INFO] 文件超过阈值:10 MB,已移动至:/backup/app_20250602_142115.log
[2025-06-02 14:22:15][WARNING] ERROR信息增长,已发送报警邮件至 admin@example.com
七、可视化样例(扩展)
-
折线图 x轴:时间(每分钟) | y轴:文件大小(MB)
-
条形图:每分钟 ERROR 次数