logo
0
0
Login

网页端监控系统

一个基于PHP开发的网页内容变化监控和通知系统,可以监控指定URL的内容变化,并通过多种渠道(企业微信、钉钉、飞书等)发送通知。

功能特点

  • 🌐 网页内容监控: 监控指定URL的内容变化
  • 🔄 智能差异检测: 自动检测内容变化并生成差异报告
  • 📱 多平台推送: 支持企业微信、钉钉、飞书等多种推送方式
  • 定时任务调度: 可配置监控频率,自动执行监控
  • 🔒 安全防护: 内置安全机制,防止SSRF、XSS等攻击
  • 📊 日志记录: 详细的系统日志,便于问题排查
  • 🎨 现代化界面: 响应式设计,支持移动端访问
  • 性能优化: GZIP压缩、缓存机制,提升系统性能

系统要求

  • PHP 7.4 或更高版本
  • cURL 扩展
  • JSON 扩展
  • GD 扩展(可选,用于图片处理)
  • 文件读写权限

安装步骤

1. 下载文件

将所有文件上传到您的Web服务器目录。

2. 运行安装向导

在浏览器中访问 http://您的域名/install.php,按照向导完成安装:

  1. 设置管理员密码和系统时区
  2. 配置通知Webhook地址(可选,也可以稍后配置)
  3. 完成安装

3. 登录系统

安装完成后,访问 http://您的域名/login.php,使用以下凭据登录:

  • 用户名: admin
  • 密码: 123456

注意: 出于安全考虑,请在首次登录后立即修改默认密码。

4. 添加监控任务

登录后,您可以添加监控任务:

  1. 点击"添加监控任务"按钮
  2. 填写任务名称和监控URL
  3. 设置监控频率和通知方式
  4. 点击"添加任务"保存

5. 设置定时任务

为了使系统能够自动执行监控,您需要设置定时任务:

方法一:使用系统cron

# 每5分钟执行一次 */5 * * * * /usr/bin/php /path/to/your/website/cron/run.php

方法二:使用访问触发(适用于不支持cron的主机)

将以下代码添加到您的网站流量较高的页面中:

<img src="http://您的域名/cron/run.php" style="display:none;" width="1" height="1">

6. 快速部署(可选)

您可以使用提供的部署脚本快速安装:

bash deploy.sh your-domain.com /var/www/html/monitor /usr/bin/php

配置说明

Webhook配置

企业微信机器人

  1. 在企业微信群中添加机器人
  2. 复制Webhook地址
  3. 在系统中填入Webhook地址

钉钉机器人

  1. 在钉钉群中添加自定义机器人
  2. 复制Webhook地址
  3. 在系统中填入Webhook地址

飞书机器人

  1. 在飞书群中添加自定义机器人
  2. 复制Webhook地址
  3. 在系统中填入Webhook地址

高级配置

您可以直接编辑 config.php 文件进行高级配置:

  • 更改系统时区
  • 修改最大监控任务数限制
  • 调整监控请求超时时间
  • 设置变更检测阈值
  • 配置日志保留期限

目录结构

网页端监控/ ├── config.php # 配置文件 ├── functions.php # 核心函数库 ├── fetcher.php # 网页内容抓取 ├── diff.php # 内容差异检测 ├── push.php # 推送通知 ├── index.php # 主页面 ├── login.php # 登录页面 ├── logs.php # 日志查看页面 ├── api.php # API接口 ├── install.php # 安装向导 ├── security.php # 安全防护 ├── optimizer.php # 性能优化 ├── cron/ │ └── run.php # 定时任务脚本 ├── data/ │ └── tasks.json # 监控任务数据 └── logs/ # 日志目录

API接口

系统提供RESTful API接口,可用于与其他系统集成:

  • GET /api.php?action=get_tasks - 获取任务列表
  • POST /api.php?action=add_task - 添加任务
  • POST /api.php?action=update_task - 更新任务
  • POST /api.php?action=delete_task - 删除任务
  • POST /api.php?action=check_task - 检查任务
  • GET /api.php?action=get_changes - 获取变更记录
  • POST /api.php?action=test_push - 测试推送

API使用需要在请求头中包含有效的Token:

Authorization: Bearer YOUR_TOKEN

安全注意事项

  1. 定期更新密码: 建议定期更改管理员密码
  2. 限制文件访问: 确保data/和logs/目录不可直接通过Web访问
  3. 配置防火墙: 限制对cron/run.php的直接访问
  4. 监控日志: 定期检查系统日志,发现异常活动
  5. 备份: 定期备份配置文件和数据文件

故障排除

监控任务不执行

  1. 检查定时任务是否正确配置
  2. 验证监控URL是否可访问
  3. 查看系统日志了解错误信息

推送通知失败

  1. 检查Webhook地址是否正确
  2. 验证机器人是否仍在群组中
  3. 查看系统日志了解错误信息

系统性能问题

  1. 减少同时运行的任务数量
  2. 增加监控间隔时间
  3. 检查服务器资源使用情况

更新升级

  1. 备份现有文件和数据
  2. 下载新版本文件
  3. 替换旧文件(保留config.php和data/目录)
  4. 访问系统检查是否正常运行

技术支持

如果您在使用过程中遇到问题,可以通过以下方式获取帮助:

  1. 查看系统日志文件获取错误信息
  2. 检查PHP错误日志
  3. 提交Issue到项目仓库

许可证

本项目采用 MIT 许可证,您可以自由使用、修改和分发。

更新日志

v1.0.0 (2025-12-06)

  • 初始版本发布
  • 实现基本的网页监控功能
  • 支持多平台推送通知
  • 提供Web管理界面
  • 集成安全防护机制
  • 添加性能优化功能

About

一款基于PHP开发的网页内容变化监控和通知系统,可以监控指定URL的内容变化,并通过多种渠道(企业微信、钉钉、飞书等)发送通知

Language
PHP97.3%
Shell2.7%