# owls **Repository Path**: qq2820/owls ## Basic Information - **Project Name**: owls - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-29 - **Last Updated**: 2025-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 系统监视工具 (System Monitor Tool) 一个用于收集系统CPU、内存、IO、网络、进程等综合信息的系统监视工具,数据以JSON格式离线保存。 ## 数据格式说明 系统监视工具生成的JSON数据格式如下,每行包含一个完整的系统快照: ```json { "timestamp": "2025-10-29T11:48:53Z", // 数据采集时间戳,ISO 8601格式 "system_info": { // 系统基本信息 "hostname": "blake-MS-7D76", // 主机名 "kernel_version": "Linux 5.15.0-139-generic x86_64", // 内核版本和架构 "os_version": "Linux 5.15.0-139-generic", // 操作系统版本 "uptime_seconds": 185903 // 系统运行时间(秒) }, "cpu": { // CPU相关信息 "usage_percent": 12.644156866646796, // 总体CPU使用率(%) "load_avg_1m": 0.0, // 1分钟系统负载平均值 "load_avg_5m": 0.0, // 5分钟系统负载平均值 "load_avg_15m": 0.0, // 15分钟系统负载平均值 "cores": [ // 各个CPU核心的详细使用情况 { "core_id": 0, // 核心编号 "user_percent": 9.67988419072857, // 用户空间使用率(%) "system_percent": 1.2574033051507416, // 系统空间使用率(%) "idle_percent": 86.46378279497628, // 空闲率(%) "iowait_percent": 1.0698077861244397, // I/O等待率(%) "irq_percent": 0.0, // 硬件中断处理率(%) "softirq_percent": 1.5280814656858763, // 软中断处理率(%) "steal_percent": 0.0 // 虚拟化环境中的窃取时间(%) }, { "core_id": 1, // 核心编号 "user_percent": 9.98275378271744, // 用户空间使用率(%) "system_percent": 1.5285386495258968, // 系统空间使用率(%) "idle_percent": 87.08514742696853, // 空闲率(%) "iowait_percent": 1.1020832134149117, // I/O等待率(%) "irq_percent": 0.0, // 硬件中断处理率(%) "softirq_percent": 0.30013330360162654, // 软中断处理率(%) "steal_percent": 0.0 // 虚拟化环境中的窃取时间(%) }, // ... 其他30个核心的类似数据(总共32个核心) ] }, "memory": { // 内存相关信息 "total_kb": 63360000, // 总内存大小(KB) "used_kb": 20343028, // 已使用内存(KB) "free_kb": 12965468, // 空闲内存(KB) "available_kb": 43016972, // 可用内存(KB) "swap_total_kb": 63999996, // 交换分区总大小(KB) "swap_used_kb": 8542976, // 已使用交换分区(KB) "usage_percent": 32.10705176767677, // 内存使用率(%) "swap_usage_percent": 13.34840083427505 // 交换分区使用率(%) } } ``` ## 字段详细说明 ### 时间戳 (timestamp) - **格式**: ISO 8601 标准时间格式 - **说明**: 数据采集的确切时间,便于时间序列分析 ### 系统信息 (system_info) - **hostname**: 系统主机名,用于识别不同的监控目标 - **kernel_version**: 内核版本和CPU架构信息 - **os_version**: 操作系统版本信息 - **uptime_seconds**: 系统自启动以来的运行时间,可用于计算系统稳定性 ### CPU信息 (cpu) - **usage_percent**: 所有CPU核心的总体使用率,反映系统整体负载 - **load_avg_1m/5m/15m**: 系统负载平均值,表示运行队列中的平均进程数 - **cores**: 每个CPU核心的详细使用情况数组 - **core_id**: 物理核心编号,从0开始 - **user_percent**: 用户空间程序使用CPU的时间比例 - **system_percent**: 内核空间使用CPU的时间比例 - **idle_percent**: CPU空闲时间比例 - **iowait_percent**: CPU等待I/O操作完成的时间比例 - **irq_percent**: 处理硬件中断的时间比例 - **softirq_percent**: 处理软中断的时间比例 - **steal_percent**: 在虚拟化环境中被hypervisor"窃取"的时间比例 ### 内存信息 (memory) - **total_kb**: 系统物理内存总量 - **used_kb**: 当前已使用的内存量 - **free_kb**: 完全空闲的内存 - **available_kb**: 实际可用的内存(包括缓存和缓冲区) - **swap_total_kb**: 交换分区总大小 - **swap_used_kb**: 已使用的交换分区大小 - **usage_percent**: 内存使用率百分比 - **swap_usage_percent**: 交换分区使用率百分比 ## 数据采集特性 ### 存储格式 - **每行一个JSON对象**: 便于逐行处理和实时监控 - **独立完整性**: 每行数据独立,程序异常不会破坏其他数据 - **易于解析**: 可使用标准JSON解析器处理 ### 文件管理 - **文件轮转**: 当单个文件超过50MB时自动创建新文件 - **命名规则**: `system_stats_YYYYMMDD_HHMMSS.json` - **文件后缀**: 轮转后的文件添加`.completed`后缀 ### 采集频率 - **可配置**: 通过命令行参数设置监控间隔 - **默认间隔**: 5秒 - **范围**: 1-3600秒 ## 使用说明 ### 启动监控 ```bash # 基本使用 ./system_monitor # 指定输出目录和监控间隔 ./system_monitor --output /var/log/system_monitor --interval 10 # 调试模式 ./system_monitor --log-level DEBUG --interval 2 --output ./data ``` ### 命令行参数 - `-h, --help`: 显示帮助信息 - `-d, --daemon`: 以守护进程模式运行 - `-c, --config <文件>`: 指定配置文件路径 - `-l, --log-level <级别>`: 设置日志级别 (DEBUG, INFO, WARNING, ERROR, FATAL) - `-o, --output <目录>`: 设置数据输出目录 - `-i, --interval <秒>`: 设置监控间隔(1-3600秒) ## 数据分析应用 ### 性能监控 - 实时监控系统资源使用情况 - 识别性能瓶颈和异常 - 监控系统负载趋势 ### 故障诊断 - 分析系统崩溃前的资源状态 - 识别内存泄漏和CPU异常 - 监控交换分区使用情况 ### 容量规划 - 基于历史数据预测资源需求 - 分析系统扩展需求 - 优化资源配置 ### 趋势分析 - 识别系统使用模式 - 分析业务高峰期 - 优化系统调度策略 ## 技术特点 - **高效采集**: 使用C++实现,资源占用低 - **可靠存储**: 行分隔JSON格式,数据完整性高 - **灵活配置**: 支持多种运行模式和参数配置 - **易于扩展**: 模块化设计,便于添加新的监控指标 ## 构建说明 ```bash # 创建构建目录 mkdir build && cd build # 配置项目 cmake .. # 编译 make -j4 # 运行测试 ./system_monitor --help ``` 这个系统监视工具提供了全面的系统资源监控能力,生成的JSON数据格式清晰、易于解析,适用于各种系统监控和分析场景。