基于 Django 的网络设备监控和发现系统,通过交换机 ARP snooping 和 SIP 协议自动发现和监控连接到实验室的网络设备。
- 自动设备发现:通过交换机ARP snooping获取基础网络信息
- 设备信息展示:获取并显示设备型号、版本等详细信息
- 可视化界面:提供Web界面显示设备列表和机架布局
- 多交换机支持:同时监控多台交换机,自动过滤级联连接
- 后端:Django 4.2.26
- Python版本:Python 3.10.18
- 数据库:MySQL
- 网络协议:SSH、ARP Snooping、SIP
- 通过SSH连接交换机获取ARP信息
- 解析设备 IP、MAC、VLAN、接口等基础信息
- 通过 SIP NOTIFY 请求获取设备型号和版本信息
- 自动过滤交换机间级联连接
- 按交换机分组显示设备列表
- 可视化机架布局展示
- 设备状态实时监控
- Python 3.10.18+
- Django 4.2.26
- MySQL 8.0+
-
安装依赖
pip install -r requirements.txt
-
修改配置文件
cp .env.example .env nano .env
-
运行迁移
python manage.py makemigrations python manage.py migrate
-
创建管理员
python manage.py createsuperuser
-
启动开发服务器
python manage.py runserver
-
在管理界面添加交换机数据
# 更新设备基础信息
python manage.py update_devices- 交换机需要启用 ARP snooping 功能
- 账户需要有 SSH 访问权限
- 设置级联端口以过滤交换机间连接
# 数据库配置
DB_NAME=lab_device_manager
DB_USER=your_username
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=3306
# Django配置
SECRET_KEY=your-secret-key
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost
# 机架配置
RACK_COUNT=4
RACK_ROWS=7
RACK_COLUMNS=10