更新md文件
This commit is contained in:
171
readme.md
Normal file
171
readme.md
Normal file
@@ -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/<id>/` - 获取单个服务详情
|
||||
- `GET /api/services/<id>/records/` - 获取服务检测记录
|
||||
- `GET /api/groups/` - 获取服务分组列表
|
||||
|
||||
## 开发说明
|
||||
|
||||
### 日志记录
|
||||
|
||||
项目使用loguru库进行日志记录,在关键操作处添加了日志输出,便于调试和监控。
|
||||
|
||||
### 扩展建议
|
||||
|
||||
1. 添加定时检测任务(可使用Celery或Django Q)
|
||||
2. 添加告警功能(邮件、短信、微信通知等)
|
||||
3. 添加服务状态统计和图表展示
|
||||
4. 实现更完善的权限管理
|
||||
5. 添加服务依赖关系管理
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT License
|
||||
Reference in New Issue
Block a user