项目介绍
内网运维助手是一个基于FastAPI和SSH的内网服务器管理工具,通过Web界面实现对多台远程Linux服务器的监控和管理。该系统提供了类似Coze的聊天界面,用户可以通过自然语言指令执行各种运维操作,如查看CPU、内存、磁盘使用情况等。系统支持多机器管理,通过SQLite数据库存储服务器信息。
技术栈选择
AI编程界面展示:

界面展示:

后端技术
FastAPI:现代化的Python Web框架,提供自动API文档生成和类型提示
Paramiko:Python的SSH实现,用于连接和操作远程服务器
Uvicorn:ASGI服务器,用于运行FastAPI应用
SQLite:轻量级数据库,用于存储服务器信息
数据库
SQLite:项目使用SQLite数据库存储服务器信息,而不是MySQL数据库
数据库文件:servers.db
数据库模型
1 |
|
前端技术
HTML5:页面结构
CSS3:页面样式,采用深色主题
JavaScript:前端交互逻辑
Pydantic模型
1 |
|
系统架构
整体架构
1 |
|
模块划分
前端模块:负责用户界面展示和用户交互
后端API模块:处理前端请求,执行SSH命令
SSH客户端模块:负责与远程服务器建立连接并执行命令
数据库模块:使用SQLite数据库存储服务器信息
AI模块:集成DeepSeek API,提供智能运维能力
数据库连接
1 |
|
核心功能实现
1. 后端API实现
健康检查接口
1 |
|
服务器管理接口
1 |
|
通用SSH命令执行接口
1 |
|
系统指标监控接口
1 |
|
AI聊天接口
1 |
|
2. SSH客户端实现
1 |
|
3. 前端实现
页面结构
1 |
|
前端交互逻辑
1 |
|
配置管理
配置文件结构
1 |
|
部署与使用
环境准备
- 安装依赖
1 |
|
- 配置服务器信息
修改 config.py 文件,填入真实的服务器 IP、用户名和密码。
- 启动服务器
1 |
|
- 访问前端页面
在浏览器中打开 http://localhost:9002/static/index.html。
使用方法
通过快捷操作:点击左侧的快捷操作按钮,如”查看 CPU 使用情况”。
通过自然语言:在聊天输入框中输入自然语言指令,如”帮我查看内存使用情况”。
执行常用命令:点击左侧的常用命令按钮,如”执行 top 命令”。
技术难点与解决方案
1. SSH连接认证问题
问题:SSH连接认证失败,无法执行命令。
解决方案:
确保配置文件中的用户名和密码正确
在SSH客户端代码中添加详细的错误信息输出
禁用密钥查找和代理,只使用密码认证
2. 跨域访问问题
问题:前端页面无法访问后端API,出现跨域错误。
解决方案:
在FastAPI中添加CORS中间件
允许所有来源的请求(生产环境中应限制为具体域名)
3. 端口占用问题
问题:启动服务器时出现端口被占用的错误。
解决方案:
使用不同的端口启动服务器
检查并关闭占用端口的进程
未来改进方向
1. 多机器管理系统
添加机器列表页面,显示所有可管理的服务器
按部门、功能或位置对服务器进行分组
为每台机器添加详细信息(配置、IP、负责人等)
在聊天界面中可以快速切换要操作的机器
2. 功能扩展
更多监控指标:网络流量、进程状态、服务运行状态等
文件管理:支持文件上传、下载、编辑等操作
服务管理:启动、停止、重启系统服务
定时任务:设置定时执行的运维任务
脚本管理:保存和管理常用的运维脚本
3. 安全性增强
用户认证:添加登录系统,支持不同用户权限
操作审计:记录所有操作日志
命令白名单:限制可执行的命令
加密传输:确保敏感数据的传输安全
4. 智能运维助手
集成Coze智能体:利用Coze的能力,实现更智能的对话交互
自然语言处理:支持更复杂的自然语言指令
故障诊断:根据系统状态自动诊断潜在问题
智能建议:基于系统状态提供优化建议
5. 数据可视化
实时监控仪表盘:展示关键系统指标的实时变化
历史趋势分析:查看系统性能的历史趋势
异常检测:自动标记异常的系统状态
报表生成:定期生成系统状态报表
总结
内网运维助手系统是一个轻量级的服务器管理工具,通过Web界面实现对远程Linux服务器的监控和管理。系统采用FastAPI作为后端框架,Paramiko实现SSH连接,前端采用HTML5、CSS3和JavaScript构建类似Coze的聊天界面。
该系统的主要特点包括:
简单易用:通过自然语言指令执行运维操作
功能丰富:支持查看CPU、内存、磁盘等系统指标
安全可靠:通过SSH协议连接服务器,确保操作安全
可扩展性:模块化设计,便于添加新功能
跨平台:可以在任何有浏览器的设备上使用
未来,我们将继续完善系统功能,添加多机器管理、智能运维、数据可视化等特性,使其成为一个更加全面和智能的内网运维工具。