# 服务器监控与定期邮件报告系统 **Repository Path**: xmosai/Server-Monitoring-System---Periodic-Email-Reports ## Basic Information - **Project Name**: 服务器监控与定期邮件报告系统 - **Description**: 这是一个功能强大、易于使用的服务器监控系统,专为需要实时了解服务器状态的开发者和系统管理员设计。系统通过定期采集服务器性能数据,生成详细的监控报告,并通过邮件发送给指定收件人,帮助您及时发现和解决服务器问题。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-21 - **Last Updated**: 2026-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 服务器监控与定期邮件报告系统 ## 项目简介 这是一个功能强大、易于使用的服务器监控系统,专为需要实时了解服务器状态的开发者和系统管理员设计。系统通过定期采集服务器性能数据,生成详细的监控报告,并通过邮件发送给指定收件人,帮助您及时发现和解决服务器问题。 ## 功能特性 ### 核心监控功能 - **全面的服务器监控**:实时采集CPU、内存、磁盘、网络等系统指标 - **网站状态监测**:定期检查网站可用性和响应时间 - **智能邮件报告**:每12小时自动发送详细的监控报告 - **异常告警**:当服务器或网站出现异常时立即发送告警邮件 - **邮件触发机制**:支持通过特定邮件指令触发报告生成 - **数据可视化**:在邮件报告中包含性能趋势图表和仪表盘 - **历史数据存储**:保留最近7天的监控数据,便于趋势分析 ### 新增功能(v2.0) - **报警记录存储**:自动保存报警时的详细信息,包括服务器状态和进程信息 - **CPU进程分析**:报警时自动采集CPU占用前五名的进程信息 - **多维度报警分析**:提供极差、方差、标准差等统计分析,对比正常时段与报警时段的差异 - **报警记录邮件触发**:发送包含"报警记录"关键字的邮件,即可获取详细的报警分析报告 - **独立配置文件**:使用config.json管理所有配置,修改更方便 - **智能安装脚本**:一键安装、配置、启动、停止、卸载,全流程管理 ## 系统架构 ``` ┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐ │ 监控数据采集模块 │────>│ 数据存储与分析模块 │────>│ 邮件报告生成模块 │ └────────────────────┘ └────────────────────┘ └────────────────────┘ ▲ │ │ │ ▼ ▼ ┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐ │ 网站状态监测模块 │────>│ 异常检测与告警模块 │────>│ SMTP邮件发送模块 │ └────────────────────┘ └────────────────────┘ └────────────────────┘ ▲ │ │ │ ┌────────────────────┐ ┌────────────────────┐ │ 邮件触发监控模块 │────>│ IMAP邮件接收模块 │ └────────────────────┘ └────────────────────┘ │ ▼ ┌────────────────────┐ │ 报警记录分析模块 │ └────────────────────┘ ``` ## 技术栈 - **开发语言**:Python 3.6+ - **核心依赖**: - psutil (系统监控) - requests (网站状态检查) - **邮件处理**: - smtplib (发送邮件) - imaplib (接收邮件) - **数据存储**:JSON文件 - **报告格式**:HTML + SVG ## 安装步骤 ### 方法一:自动部署(推荐) 1. **克隆项目** ```bash git clone https://gitee.com/xmosai/Server-Monitoring-System---Periodic-Email-Reports.git cd Server-Monitoring-System---Periodic-Email-Reports ``` 2. **运行安装脚本** ```bash chmod +x setup.sh ./setup.sh ``` 安装脚本会自动: - 检查Python环境和依赖 - 引导您填写配置信息 - 设置定时任务 - 询问是否立即启动监控 3. **管理命令** 安装完成后,您可以随时运行 `./setup.sh` 进入管理菜单: ``` 1. 安装/更新系统 - 更新依赖或重新安装 2. 配置管理 - 查看、修改配置 3. 启动监控 - 启动后台监控程序 4. 停止监控 - 停止所有监控进程 5. 查看状态 - 查看系统运行状态 6. 测试程序 - 测试程序是否正常 7. 卸载系统 - 完整卸载 0. 退出 ``` ### 方法二:手动部署 #### 1. 克隆项目 ```bash git clone https://gitee.com/xmosai/Server-Monitoring-System---Periodic-Email-Reports.git cd Server-Monitoring-System---Periodic-Email-Reports ``` #### 2. 安装依赖 ```bash pip install -r requirements.txt ``` #### 3. 配置系统 复制配置文件模板并修改: ```bash cp config.json.example config.json ``` 编辑 `config.json` 文件: ```json { "website": "https://your-website.com", "email": "your-email@example.com", "smtp": { "server": "smtp.example.com", "port": 465, "user": "your-email@example.com", "password": "your-authorization-code" }, "imap": { "server": "imap.example.com", "port": 993, "user": "your-email@example.com", "password": "your-authorization-code" }, "trigger_emails": ["trigger-email@example.com"], "trigger_keyword": "运行报告", "alert_keyword": "报警记录" } ``` #### 4. 设置定时任务 ```bash crontab -e ``` 添加以下行: ``` 0 * * * * cd /path/to/project && python3 monitor.py ``` ## 使用方法 ### 启动监控 ```bash # 使用安装脚本启动 ./setup.sh # 选择 "3. 启动监控" # 或手动启动 screen -S mail_monitor python3 mail_monitor.py # 按 Ctrl+A+D 分离会话 ``` ### 邮件触发功能 系统支持两种邮件触发方式: 1. **运行报告触发**:发送包含"运行报告"关键字的邮件 2. **报警记录触发**:发送包含"报警记录"关键字的邮件,获取详细的报警分析报告 ### 报警记录分析 当系统检测到异常并发送告警后,会自动保存: - 报警时间和详细信息 - 当时的服务器状态 - CPU占用前五名的进程信息 发送包含"报警记录"关键字的邮件后,系统会回复: - 报警统计概览 - 报警时的性能统计(平均值、最大值、最小值、极差、标准差) - 正常时段 vs 报警时段对比 - 每条报警记录的详细信息 ## 报告内容 ### 定期监控报告 1. **服务器概览**:CPU、内存、磁盘使用率 2. **详细指标**: - CPU:平均使用率和每核心使用率 - 内存:使用量、总量和使用率 - 磁盘:使用量、总量和使用率 - 网络:发送和接收的数据量 - 系统:运行时间 3. **网站状态**:可用性、响应状态码和响应时间 4. **性能趋势**:过去24小时的CPU、内存、磁盘使用率趋势图表 5. **异常告警**:当检测到异常时的详细信息 ### 报警记录分析报告 1. **报警统计概览**:过去30天的报警次数 2. **报警时性能统计**: - CPU、内存、磁盘的平均值、最大值、最小值 - 极差和标准差(反映波动程度) 3. **正常时段对比**:正常时段与报警时段的性能差异 4. **报警详情**:每条报警的时间、原因、进程信息 ## 故障排除 ### 1. 邮件发送失败 - **检查SMTP配置**:确保SMTP服务器地址、端口、用户名和密码正确 - **检查邮箱安全设置**:某些邮箱(如163邮箱)需要开启IMAP/SMTP服务并生成授权码 - **检查网络连接**:确保服务器可以访问SMTP服务器 ### 2. 网站监控失败 - **检查网站地址**:确保配置的网站地址正确 - **检查网络连接**:确保服务器可以访问目标网站 - **检查SSL证书**:如果网站使用HTTPS,可能需要处理SSL证书验证问题 ### 3. 配置文件错误 - **检查JSON格式**:确保config.json文件格式正确 - **检查必填项**:确保所有必要的配置项都已填写 ## 常见问题 ### Q: 如何修改监控频率? A: 修改定时任务的执行频率,例如,要改为每30分钟执行一次: ``` */30 * * * * cd /path/to/project && python3 monitor.py ``` ### Q: 如何修改邮件发送频率? A: 邮件发送频率为每12小时一次,可在monitor.py中修改相关逻辑。 ### Q: 如何添加更多触发邮箱? A: 编辑config.json文件,在trigger_emails数组中添加更多邮箱地址: ```json "trigger_emails": ["email1@example.com", "email2@example.com"] ``` ### Q: 报警记录保存在哪里? A: 报警记录保存在alert_records.json文件中,默认保留最近30天的记录。 ## 更新日志 ### v2.0.0 (2026-02-21) - 新增报警记录存储和分析功能 - 新增CPU进程信息采集功能 - 新增报警记录邮件触发功能 - 新增独立配置文件config.json - 新增智能安装管理脚本 - 优化报警邮件内容,包含进程信息 - 优化配置管理,支持交互式配置 ### v1.0.0 - 基础服务器监控功能 - 网站状态监测 - 定期邮件报告 - 异常告警 - 邮件触发机制 ## 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件 ## 联系方式 如果您有任何问题或建议,请通过以下方式联系我们: - 项目地址:https://gitee.com/xmosai/Server-Monitoring-System---Periodic-Email-Reports - 邮箱:1113533973@qq.com --- **注意**:本系统仅用于监控目的,请确保您有适当的权限监控目标服务器和网站。