# kdasset_agent **Repository Path**: thomasblog/kdasset_agent ## Basic Information - **Project Name**: kdasset_agent - **Description**: kdasset_agent 是一个用于资产信息收集和管理的工具,适用于需要对硬件、网络、用户等信息进行统一管理的场景。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-08 - **Last Updated**: 2025-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KDAsset Agent - 资产收集客户端 KDAsset Agent 是一款专为企业 IT 资产管理设计的跨平台工具,支持 Windows/Linux 系统,提供自动化的硬件/网络/系统信息采集、定时上报、静默运行等核心功能,适用于企业资产全生命周期管理、远程监控等场景。 ## 📋 项目简介 KDAsset Agent 作为资产收集客户端,能够自动收集终端设备的详细信息并定时上报到指定服务器,帮助企业实现 IT 资产的集中化管理和监控。 ## ✨ 核心功能 ### 1. 全面的资产信息采集 - **硬件信息**:CPU 型号/核数、内存容量、磁盘空间、MAC 地址、序列号等 - **系统信息**:操作系统版本、安装类型(服务器/桌面版)、Python 环境等 - **网络信息**:IP 地址、网卡流量统计、DNS 配置等 - **用户信息**:当前登录用户列表、终端信息等 ### 2. 智能的上报机制 - 支持自定义上报间隔(默认 3 天) - 首次启动自动上报 - 系统托盘支持立即上报 - 上报状态实时记录 ### 3. 灵活的运行模式 - **图形界面模式**:提供可视化配置窗口 - **后台运行模式**:系统托盘静默运行,无控制台窗口 - **命令行模式**:支持最小化启动和调试模式 ### 4. 高级特性 - **跨平台兼容**:支持 Windows 7+/Linux 主流发行版 - **多进程防护**:基于端口绑定的单实例检测机制 - **开机自动启动**:支持配置开机自启 - **系统兼容性**:包含 Windows XP/7/8/10/11 以及服务器版本的兼容性修复 ## 🚀 快速开始 ### 环境要求 - Python 3.8+ - 依赖库:requests、psutil、pystray、PIL、tkinter 等 ### 直接运行(开发模式) ```bash python agent.py ``` ### 打包部署(生产环境) KDAsset Agent 提供两种打包方案,满足不同的系统需求: #### 1. 标准版本(推荐 Win10+) 使用 `main.py` 打包,生成适用于现代 Windows 系统的可执行文件: ```bash python main.py ``` - 输出文件:`dist/AssetAgent.exe` - 特点:无控制台窗口、自动隐藏托盘图标 - 支持系统:Windows 10/11、Windows Server 2016+ #### 2. 兼容版本(支持 Win7+) 使用 `build_win7.py` 打包,生成兼容旧版 Windows 系统的可执行文件: ```bash python build_win7.py ``` - 输出文件:`dist/AssetAgent.exe` - 特点:支持 Windows 7 及以上系统,包含更多兼容性修复 - 支持系统:Windows 7 SP1+/Windows 8/10/11、Windows Server 2008 R2+及以上版本 ## 📦 安装与使用 ### 启动方式 #### 1. 图形界面模式(默认) - 双击 `AssetAgent.exe` 打开配置窗口 - 设置服务器地址和上报间隔 - 点击"保存并运行"启动后台服务 #### 2. 命令行模式 ```bash # 最小化启动(直接后台运行) AssetAgent.exe --minimized # 调试模式 AssetAgent.exe --debug ``` #### 3. 系统托盘操作 - 右键托盘图标可进行各种操作 - 支持立即上报、查看状态、关于、退出 ### 配置说明 配置文件 `agent_config.json` 格式如下: ```json { "server_url": "http://localhost:5001", "report_interval": 259200, "auto_start": true } ``` | 参数名 | 说明 | 默认值 | |--------|------|--------| | server_url | 资产数据上报的服务器地址 | http://localhost:5001 | | report_interval | 上报间隔(秒) | 259200(3天) | | auto_start | 是否开机自启 | true | ## 🔧 服务端对接 Agent 通过 HTTP POST 方式将资产数据上报到服务端: ### API 端点 ``` POST /asset/api/assets/report ``` ### 请求示例 ```json { "host_identifier": "PC-001-1234", "name": "PC-001", "specifications": { "hardware_info": {...}, "system_info": {...}, "network_info": {...} }, "cpu_info": "...", "memory_info": "...", "disk_info": "...", "os_info": "...", "network_info": "...", "serial_number": "ABC123", "agent_id": "PC-001-1234", "agent_version": "2.0", "report_time": "2024-01-01T12:00:00" } ``` ## 🛠️ 开发与打包 ### 环境准备 ```bash # 安装依赖 pip install requests psutil pystray pillow # 安装打包工具 pip install pyinstaller ``` ### 打包流程 #### 标准版本打包 ```bash # 运行打包脚本 python main.py # 打包完成后,可执行文件位于 dist/ 目录 ``` #### Win7 兼容版本打包 ```bash # 运行兼容版本打包脚本 python build_win7.py # 打包完成后,可执行文件位于 dist/ 目录 ``` ### 主要文件说明 | 文件名 | 功能描述 | |--------|----------| | `agent.py` | 核心逻辑文件,包含资产收集、上报、托盘图标等功能 | | `main.py` | 标准版本打包脚本,生成适用于现代 Windows 系统的可执行文件 | | `build_win7.py` | 兼容版本打包脚本,支持 Windows 7 及以上系统 | | `agent_config.json` | 配置文件,存储服务器地址、上报间隔等参数 | ## 📊 系统兼容性 | 平台 | 版本要求 | 依赖项 | |------|----------|--------| | Windows | 7 SP1+/Server 2008 R2+ | .NET Framework 4.6+ | | Linux | Ubuntu 18.04+/CentOS 7+ | python3-tkinter(GUI 模式需要) | ## 📝 日志管理 - 默认日志路径:`%TEMP%/AssetAgent/logs/agent.log` - 调试模式下会输出更详细的日志信息 ## 📄 更新日志 ### v2.0 (2025-11-18) - 全新系统托盘界面(Material Design 风格) - 增强 Windows 版本检测(支持 Server 2022) - 实现无黑框命令行执行 - 优化多系统兼容性 - 改进关于对话框交互体验 - 添加详细的状态记录功能 ## 📄 许可协议 本项目采用 [MIT License](./LICENSE) 开源协议,可自由商用/修改/分发。 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request 改进项目: - 提交 Bug:[Gitee Issues](http://gitee.com/thomasblog/kdasset_agent/issues) - 功能建议:直接提交 PR 或联系开发者 ## 📞 技术支持 - 官方文档:[查看完整文档](http://docs.kdasset.com) - 项目地址:[Gitee 仓库链接](http://gitee.com/thomasblog/kdasset_agent) - 技术交流:欢迎通过 Gitee Issues 进行交流