Skip to content

Cute-chen/Web-Monitoring-Service-

Repository files navigation

🌐 网站监控服务 (Web Monitoring Service)

Python Flask License

一个基于Flask的轻量级网站监控服务,支持多站点监控、邮件告警、自定义检测间隔等功能。

✨ 功能特性

🔍 多站点监控: 支持同时监控多个网站 ⚡ 实时检测: 可自定义检测间隔(最小1分钟) 📧 邮件告警: 支持QQ邮箱SMTP,异常时自动发送告警邮件 🎨 美观界面: 响应式Web界面,支持PC和移动端 ⚙️ 灵活配置: 支持自定义邮件模板和检测参数 📊 状态展示: 实时显示网站状态、响应时间、最后检测时间 🔧 易于部署: 一键启动,配置简单

🚀 快速开始

环境要求

Python 3.7+ 网络连接(用于监控目标网站) QQ邮箱账号(用于发送告警邮件)

安装步骤

  1. 克隆项目 。。bash git clone xxxx cd webmonitoringservice 。。

  2. 创建虚拟环境 。。bash python m venv venv source venv/bin/activate Linux/Mac 或 venv\Scripts\activate Windows 。。

  3. 安装依赖 。。bash pip install r requirements.txt 。。

  4. 启动服务 。。bash python app.py 。。

  5. 访问界面 打开浏览器访问 http://localhost:5000

📖 使用说明

  1. 配置邮箱

  2. 在Web界面中点击"邮箱配置"部分

  3. 填写QQ邮箱地址和SMTP授权码

  4. 设置接收告警的邮箱地址

  5. 点击"保存邮箱配置"

  6. 可点击"发送测试邮件"验证配置

注意: SMTP授权码不是QQ邮箱密码,需要在QQ邮箱设置中开启SMTP服务并获取授权码

  1. 添加监控点

  2. 在"添加监控点"部分输入要监控的网站URL

  3. 设置检测间隔(分钟)

  4. 点击"添加监控点"

  5. 查看监控状态

在"监控点列表"中查看所有监控点的状态 绿色表示正常,红色表示异常 显示响应时间和最后检测时间

  1. 自定义邮件模板

在"邮件模板设置"中可以自定义告警邮件的主题和内容,支持以下变量: {url} 监控网址 {msg} 异常信息 {time} 检测时间

🔧 配置说明

配置文件

config.py 系统级配置(SMTP服务器等) email_config.json 邮箱配置(自动生成) monitors_config.json 监控点配置(自动生成)

环境变量

可以通过环境变量覆盖默认配置:

。。bash export FLASK_ENV=production export FLASK_DEBUG=0 。。

📁 项目结构

。。 webmonitoringservice/ ├── app.py 主应用文件 ├── config.py 配置文件 ├── requirements.txt Python依赖 ├── README.md 项目说明 ├── LICENSE 开源协议 ├── .gitignore Git忽略文件 ├── static/ 静态资源 │ ├── css/ │ │ └── index.css 样式文件 │ └── js/ │ └── index.js JavaScript文件 └── templates/ HTML模板 └── index.html 主页面 。。

🚀 部署指南

使用Docker部署

  1. 构建镜像 。。bash docker build t webmonitoring . 。。

  2. 运行容器 。。bash docker run d p 5000:5000 name webmonitor webmonitoring 。。

使用systemd部署(Linux)

  1. 创建服务文件 。。bash sudo nano /etc/systemd/system/webmonitor.service 。。

  2. 添加服务配置 。。ini [Unit] Description=Web Monitoring Service After=network.target

[Service] Type=simple User=wwwdata WorkingDirectory=/path/to/webmonitoringservice Environment=PATH=/path/to/webmonitoringservice/venv/bin ExecStart=/path/to/webmonitoringservice/venv/bin/python app.py Restart=always

[Install] WantedBy=multiuser.target 。。

  1. 启动服务 。。bash sudo systemctl enable webmonitor sudo systemctl start webmonitor 。。

🤝 贡献指南

欢迎提交Issue和Pull Request!

如果这个项目对你有帮助,请给个 ⭐️ 支持一下!

About

一个基于Flask的轻量级网站监控服务,支持多站点监控、邮件告警、自定义检测间隔等功能。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors