# caminfo **Repository Path**: techwolf/caminfo ## Basic Information - **Project Name**: caminfo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-16 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ONVIF摄像头管理系统 一个简单的ONVIF网络摄像头发现和监控系统。 ## 功能特性 - 🔍 **自动发现**: 使用WS-Discovery协议自动发现局域网内的ONVIF设备 - 📊 **状态监控**: 实时监控摄像头在线状态、网络延迟和连通性 - 🚨 **简单易用**: 命令行界面,易于部署和使用 ## 快速开始 ### 方法一:统一启动脚本(推荐) ```bash # 一键安装环境和依赖 ./run.sh setup # 启动程序 ./run.sh start # 清理环境 ./run.sh clean # 查看帮助 ./run.sh help ``` ### 方法二:使用Makefile ```bash # 设置环境并安装依赖 make setup # 运行程序 make run # 清理环境 make clean ``` ### 方法三:手动安装 ```bash # 创建虚拟环境 python3 -m venv venv # 激活虚拟环境 source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt # 运行程序 python main.py ``` ## 项目结构 ``` caminfo/ ├── src/ │ ├── discovery/ # 设备发现模块 │ ├── monitoring/ # 设备监控模块 │ ├── models/ # 数据模型 │ └── utils/ # 工具函数 ├── config/ │ └── config.yaml # 配置文件 ├── tests/ # 测试文件 ├── requirements.txt # 依赖包 └── main.py # 主程序入口 ``` ## 配置说明 编辑 `config/config.yaml` 文件来自定义系统行为: - `discovery.network_ranges`: 设置要扫描的网络段 - `monitoring.ping.interval`: 设置ping监控间隔 - `monitoring.port_check.ports`: 设置要检查的端口列表 ## 开发工具 ### 开发环境管理 ```bash # 使用统一脚本 ./run.sh setup # 设置开发环境 ./run.sh start # 运行程序 ./run.sh clean # 清理环境 # 或使用Makefile make setup # 设置环境 make run # 运行程序 make clean # 清理环境 ``` ## 系统要求 - Python 3.8+ - 网络环境支持多播通信 - 足够的网络权限进行设备发现和监控 ## 功能特性详细说明 ### 设备发现 - 使用WS-Discovery协议自动发现ONVIF设备 - 支持多网段扫描 - 自动解析设备基本信息 - 支持手动探测指定IP设备 ### 状态监控 - 实时ping监控,检测网络延迟和丢包率 - TCP端口连通性检测 - 智能设备状态评估 - 支持批量监控和单设备监控 ### 数据管理 - 设备信息持久化存储 - 状态历史记录 - 统计信息展示 - 支持设备管理操作 ## 故障排除 ### 常见问题 1. **无法发现设备** - 检查网络多播是否启用 - 确认防火墙设置允许UDP 3702端口 - 验证网络段配置是否正确 2. **权限问题** - Linux/macOS可能需要sudo权限进行ping操作 - 确保用户有网络访问权限 3. **依赖安装失败** - 确保Python版本 >= 3.8 - 尝试升级pip: `pip install --upgrade pip` - 使用虚拟环境避免依赖冲突 ## 开发状态 ✅ 核心功能已完成: - 设备发现和监控 - 命令行界面 - 配置管理 - 数据持久化 - **Prometheus监控集成** 🚧 计划中的功能: - Web界面 - 告警通知 - 更多设备信息获取 ## Prometheus监控集成 ### 指标服务器 系统已集成Prometheus指标导出功能,在9098端口提供指标数据: ```bash # 查看所有指标 curl http://localhost:9098/metrics # 查看ONVIF相关指标 curl http://localhost:9098/metrics | grep onvif ``` ### Docker部署 使用Docker Compose一键部署完整监控栈: ```bash # 启动所有服务(ONVIF监控 + Prometheus + Grafana + AlertManager) ./deploy.sh start # 查看服务状态 ./deploy.sh status # 停止服务 ./deploy.sh stop ``` ### 服务访问地址 - **Prometheus指标**: http://localhost:9098/metrics - **Prometheus Web UI**: http://localhost:9091 - **Grafana仪表板**: http://localhost:3000 (admin/admin123) - **AlertManager**: http://localhost:9093 ### 主要指标类型 1. **设备状态指标** - `onvif_device_online`: 设备在线状态 - `onvif_device_status`: 设备状态枚举 - `onvif_devices_total`: 总设备数 2. **网络性能指标** - `onvif_network_latency_ms`: 网络延迟 - `onvif_network_packet_loss_rate`: 丢包率 - `onvif_network_jitter_ms`: 网络抖动 3. **系统指标** - `onvif_monitor_uptime_seconds`: 系统运行时间 - `onvif_monitor_cycles_total`: 监控周期数 - `onvif_discovery_duration_seconds`: 设备发现耗时 ### 告警规则 系统包含完整的告警规则配置: - 设备离线告警 - 高延迟/丢包率告警 - 监控系统异常告警 - 自动告警抑制和分级 ## 许可证 MIT License