网络设备智能巡检系统-MCP案例总结
一、案例背景与目标
背景:
企业网络中存在多厂商(华为、H3C、思科等)设备,传统巡检需人工逐台登录,效率低且易出错。
目标:
开发基于自然语言的智能巡检系统,实现:
- 自然语言指令解析
- 多厂商设备自动化巡检
- 结构化报告生成
技术栈:
Python
+ Ollama
+ Netmiko
+ FastAPI
二、分步指南
Step 1:环境准备
目标:搭建本地AI与开发环境
操作:
# 1. 安装Ollama(Windows/Mac通用)
curl -fsSL https://ollama.com/install.sh | sh# 2. 拉取专用模型
ollama run deepseek-coder# 3. 创建Python虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate# 4. 安装依赖库
pip install netmiko fastapi uvicorn requests ollama regex
验证:
ollama list # 应显示deepseek-coder
python -c "import netmiko; print(netmiko.__version__)" # 应输出≥4.2.0
Step 2:设备配置管理
目标:定义待巡检设备清单
操作:
- 创建
devices.json
:
{"devices": [{"ip": "192.168.1.1","vendor": "huawei","device_type": "huawei","username": "admin","password": "Admin@123"},{"ip": "192.168.1.2","vendor": "cisco","device_type": "cisco_ios","username": "cisco","password": "Cisco@123"}]
}
关键点:
vendor
字段需与代码中的厂商映射一致device_type
参考Netmiko支持的设备类型列表
Step 3:MCP服务器开发
目标:实现设备巡检API
操作:
- 创建
mcp_server.py
:
from fastapi import FastAPI
from netmiko import ConnectHandler
import jsonapp = FastAPI()with open('devices.json') as f:devices = json.load(f)['devices']VENDOR_COMMANDS = {"huawei": "display health","cisco": "show processes cpu","h3c": "display device"
}@app.post("/mcp")
async def check_devices(data: dict):vendor = data.get("params", {})