From 9160eddcfc34c2d6cd21e2021a73c2e81c097053 Mon Sep 17 00:00:00 2001 From: xiaji Date: Sun, 4 Jan 2026 16:49:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0md=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 readme.md diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..4b32803 --- /dev/null +++ b/readme.md @@ -0,0 +1,171 @@ +# 服务状态监控系统 + +## 项目概述 + +这是一个基于Django框架开发的服务状态监控系统,用于实时监控各种服务的运行状态,支持多种检测方式,并提供Web界面和REST API接口。 + +## 主要功能 + +### 1. 服务管理 +- 支持服务分组管理 +- 可添加多种类型的服务监控: + - Ping检测:通过ICMP ping检查主机可达性 + - TCP端口检测:检查指定主机的TCP端口是否开放 + - HTTP请求:发送HTTP请求检查Web服务状态 + - 自定义脚本:支持通过自定义脚本进行服务检测 +- 支持服务启用/禁用功能 + +### 2. 状态监控 +- 实时记录服务状态变化 +- 保存服务检测历史记录 +- 记录响应时间和错误信息 +- 自动更新服务状态 + +### 3. Web界面 +- 服务列表展示 +- 服务详细信息查看 +- 检测记录历史查询 +- 直观的状态可视化 + +### 4. REST API +- 提供完整的API接口 +- 支持服务信息查询 +- 支持检测记录查询 +- 支持API文档浏览 + +## 技术栈 + +- **后端框架**:Django 4.2 +- **API框架**:Django REST Framework +- **数据库**:SQLite(默认),支持扩展到MySQL/PostgreSQL +- **语言**:Python 3.8+ +- **前端**:Django模板系统 + +## 安装部署 + +### 1. 环境准备 + +```bash +# 克隆项目 +cd c:\Users\xiaji\Documents\个人文件夹\夏骥\状态页面 + +# 安装依赖 +pip install -r requirements.txt +``` + +### 2. 数据库迁移 + +```bash +python manage.py migrate +``` + +### 3. 启动开发服务器 + +```bash +python manage.py runserver +``` + +访问地址:http://localhost:8000 + +### 4. 生产环境部署 + +#### 使用Gunicorn和Nginx + +```bash +# 安装Gunicorn +pip install gunicorn + +# 启动Gunicorn +python -m gunicorn --bind 0.0.0.0:8000 statuspage.wsgi:application +``` + +Nginx配置示例: + +```nginx +server { + listen 80; + server_name your-domain.com; + + location / { + proxy_pass http://127.0.0.1:8000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location /static/ { + alias /path/to/your/project/static/; + } + + location /media/ { + alias /path/to/your/project/media/; + } +} +``` + +## 项目结构 + +``` +. +├── status/ # 主应用目录 +│ ├── migrations/ # 数据库迁移文件 +│ ├── templates/ # HTML模板 +│ │ └── status/ # 状态相关模板 +│ ├── __init__.py +│ ├── admin.py # Django后台管理 +│ ├── api_urls.py # API路由配置 +│ ├── api_views.py # API视图 +│ ├── apps.py # 应用配置 +│ ├── models.py # 数据模型 +│ ├── serializers.py # API序列化器 +│ ├── tests.py # 测试文件 +│ ├── urls.py # Web路由配置 +│ ├── utils.py # 工具函数 +│ └── views.py # Web视图 +├── statuspage/ # 项目配置目录 +│ ├── __init__.py +│ ├── asgi.py # ASGI配置 +│ ├── urls.py # 根路由配置 +│ ├── wsgi.py # WSGI配置 +│ └── 生产系统settings.py # 生产环境配置 +├── .gitignore +├── db.sqlite3 # SQLite数据库文件 +├── manage.py # Django管理脚本 +└── requirements.txt # 项目依赖 +``` + +## 使用说明 + +### Web界面 + +1. **服务列表**:访问首页查看所有服务的状态 +2. **服务详情**:点击服务名称查看详细信息和历史记录 +3. **API文档**:访问 `/api/docs/` 查看API文档 + +### API接口 + +#### 主要API端点 + +- `GET /api/services/` - 获取所有服务列表 +- `GET /api/services//` - 获取单个服务详情 +- `GET /api/services//records/` - 获取服务检测记录 +- `GET /api/groups/` - 获取服务分组列表 + +## 开发说明 + +### 日志记录 + +项目使用loguru库进行日志记录,在关键操作处添加了日志输出,便于调试和监控。 + +### 扩展建议 + +1. 添加定时检测任务(可使用Celery或Django Q) +2. 添加告警功能(邮件、短信、微信通知等) +3. 添加服务状态统计和图表展示 +4. 实现更完善的权限管理 +5. 添加服务依赖关系管理 + +## 许可证 + +MIT License