# netmon **Repository Path**: iwiFool/netmon ## Basic Information - **Project Name**: netmon - **Description**: 网络监控平台,可监控交换机,路由器,AP等网络设备的接口,流量,内存,cpu,温度等指标。免费使用,点击可直接使用 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2026-05-06 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NetMon 网络监控系统 ![输入图片说明](image.png) ![输入图片说明](%E9%87%87%E9%9B%86%E6%8C%87%E6%A0%87%E5%B1%95%E7%A4%BA.png) ![输入图片说明](%E6%8E%A5%E5%8F%A3%E6%B5%81%E9%87%8F.png) ![输入图片说明](%E6%B7%BB%E5%8A%A0%E5%91%8A%E8%AD%A6%E8%A7%84%E5%88%99.png) ![输入图片说明](imag.png) ![输入图片说明](%E9%82%AE%E4%BB%B6%E9%80%9A%E7%9F%A5.png) ![输入图片说明](%E8%87%AA%E5%8A%A8%E6%8B%93%E6%89%91%E7%94%9F%E6%88%90.png) **关注我的公众号底下回复可获得永久免费授权使用** ![输入图片说明](913597a621223ae685b1c2587a166d39.jpg) 添加我的微信,可加群一起讨论问题,我对AI也很感兴趣,可根据你的需求帮忙修改 ![输入图片说明](im.png) 基于 SNMP v2c 的网络设备监控平台,支持华为路由器等标准 MIB-II 设备。 ## 功能特性 - 设备管理:添加/编辑/删除网络设备,配置 IP、Community、端口 - 数据采集:定时采集接口状态、流量速率、错误包等指标 - 时序存储:InfluxDB 存储历史数据,支持趋势分析 - 数据大屏:实时展示接口状态、流量趋势、UP/DOWN 占比 - 告警管理:自定义告警规则,支持阈值、接口、级别配置 - 告警事件:记录触发历史,自动恢复检测 ## 技术栈 - 后端:Flask + APScheduler + pysnmp 7.x - 存储:SQLite (配置) + InfluxDB (时序数据) - 前端:Bootstrap 5 + Chart.js ## 安装依赖 ```bash pip install flask influxdb-client apscheduler pysnmp ``` ## 配置 InfluxDB 1. 安装 InfluxDB 2.x:https://docs.influxdata.com/influxdb/v2/install/ 2. 创建 Bucket:`network` 3. 创建 Token 并配置到 `config.py` ```python INFLUX_URL = "http://localhost:8086" INFLUX_TOKEN = "your-token-here" INFLUX_ORG = "netmon" INFLUX_BUCKET = "network" ``` ## 启动 ```bash cd netmon python main.py ``` 访问:http://localhost:5000 ## 使用流程 1. 设备管理:添加设备(IP + Community) 2. 立即采集:点击"立即采集"按钮触发首次采集(约 15 秒) 3. 数据大屏:选择设备查看实时状态和历史趋势 4. 告警设置:配置规则(如 RX 速率 > 800Mbps) 5. 告警中心:查看活跃告警和历史事件 ## 采集指标 - `oper_status`:接口运行状态 (UP/DOWN) - `admin_status`:接口管理状态 - `speed_bps`:接口标称带宽 - `in_rate_bps`:入方向速率(两次采样计算) - `out_rate_bps`:出方向速率 - `in_errors`:入方向错误包 - `out_errors`:出方向错误包 ## 注意事项 - 采集间隔默认 60 秒,可在 `config.py` 修改 `COLLECT_INTERVAL` - 流量速率采样间隔 10 秒(在 `collector/snmp.py` 中) - 如果 RX/TX 始终为 0,检查设备 Community 权限或尝试其他 OID - SQLite 数据库文件生成在 `netmon/netmon.db` ## 目录结构 ``` netmon/ ├── config.py # 配置文件 ├── main.py # 启动入口 ├── collector/ │ ├── snmp.py # SNMP 采集 │ └── scheduler.py # 定时任务 ├── storage/ │ ├── sqlite.py # SQLite 操作 │ └── influx.py # InfluxDB 操作 └── web/ ├── app.py # Flask 应用 ├── api.py # REST API └── templates/ # 前端模板 ``` ## License MIT