当前位置: 首页 > news >正文

GLPI+Fusioninventory实战:如何用Agent自动收集Windows和CentOS的软硬件清单?

GLPI+Fusioninventory企业级资产自动化管理实战指南

资产管理一直是企业IT运维中既基础又关键的一环。想象一下,当公司拥有数百台服务器和终端设备时,手动记录每台机器的CPU型号、内存大小、磁盘容量、安装的软件清单等信息,不仅耗时耗力,还容易出错。这正是GLPI结合Fusioninventory解决方案大显身手的地方——它能够自动、准确地收集这些资产信息,并集中展示在一个统一的平台上。

1. 企业资产管理自动化架构解析

GLPI作为开源的IT资产管理解决方案,其核心价值在于提供了一个集中管理IT资产的平台。而Fusioninventory则是其生态系统中最强大的资产自动发现和收集插件,两者结合形成了完整的资产自动化管理闭环。

1.1 核心组件工作原理

Fusioninventory Agent是运行在各个终端设备上的轻量级程序,它负责收集本机的硬件和软件信息。这些信息包括但不限于:

  • 硬件信息:CPU型号、核心数、内存大小、磁盘型号和容量、网卡信息等
  • 软件信息:已安装程序列表、版本号、安装日期等
  • 网络信息:IP地址、MAC地址、开放端口等

收集到的数据会通过HTTP/HTTPS协议传输到GLPI服务器,经过处理后存储在数据库中。GLPI的Web界面则提供了直观的数据展示和查询功能。

1.2 数据流与处理流程

整个系统的数据流动可以分为以下几个阶段:

  1. 信息收集:Agent按照配置的策略收集本地信息
  2. 数据传输:加密后的数据通过HTTP/HTTPS发送到GLPI服务器
  3. 数据处理:GLPI服务器接收并解析数据,更新数据库
  4. 数据展示:管理员通过Web界面查看和分析资产信息

这种架构的优势在于:

  • 自动化程度高:减少人工干预,降低出错概率
  • 实时性强:可以配置定期更新,保持数据新鲜度
  • 扩展性好:支持从几台到上万台设备的规模

2. Fusioninventory Agent部署实战

部署Fusioninventory Agent是实现自动化资产管理的第一步。根据操作系统的不同,部署方式也有所差异。

2.1 Windows系统部署

在Windows环境中部署Agent通常有以下几种方式:

  1. 手动安装:下载MSI安装包,图形化界面逐步安装
  2. 静默安装:使用命令行参数实现无人值守安装
  3. 批量部署:通过组策略或配置管理系统(如SCCM)大规模部署

以下是静默安装的示例命令:

msiexec /i fusioninventory-agent_windows-x64_2.6.msi /qn SERVER=http://glpi-server.example.com/plugins/fusioninventory/ TASK=inventory

关键参数说明:

  • /qn:静默安装,不显示界面
  • SERVER:指定GLPI服务器地址
  • TASK:指定默认执行的任务类型

2.2 CentOS/RHEL系统部署

对于基于RPM的Linux发行版(如CentOS、RHEL),可以通过yum或dnf直接安装:

# 添加EPEL仓库(如果需要) sudo yum install epel-release # 安装Agent sudo yum install fusioninventory-agent fusioninventory-agent-task-inventory # 配置Agent sudo vi /etc/fusioninventory/agent.cfg

在配置文件中,至少需要设置以下参数:

[server] url = http://glpi-server.example.com/plugins/fusioninventory/

安装完成后,启动服务并设置为开机自启:

sudo systemctl enable --now fusioninventory-agent

3. 高级配置与优化

基础安装完成后,还需要根据企业实际需求进行定制化配置,以充分发挥Fusioninventory的功能。

3.1 agent.cfg关键参数解析

Agent的核心配置文件是agent.cfg,它控制着Agent的各种行为。以下是一些常用且重要的配置项:

配置项默认值说明
delaytime3600两次完整清点之间的最小间隔(秒)
httpd-port62354Agent本地HTTP服务端口
no-task0是否禁止自动执行任务
scan-homedirs0是否扫描用户主目录
scan-profiles0是否扫描用户配置文件

对于大型部署,特别需要注意以下优化项:

# 减少网络带宽使用 compression = 1 # 设置代理服务器(如果需要) proxy = http://proxy.example.com:8080 # 限制CPU使用率 max-cpu-percent = 50

3.2 任务调度策略

Fusioninventory支持多种任务触发方式,各有优缺点:

  1. 定时任务

    • 优点:负载均衡,避免服务器高峰
    • 缺点:数据更新不及时
    • 配置示例:execution-interval = 86400(每天执行一次)
  2. 服务器拉取

    • 优点:实时控制
    • 缺点:增加服务器负担
    • 配置示例:no-task = 0
  3. 本地触发

    • 优点:即时响应
    • 缺点:需要本地访问权限
    • 执行命令:fusioninventory-agent --local=/path/to/task.xml

在实际环境中,通常会组合使用这些策略。例如,配置基本的定时任务保证数据定期更新,同时在需要时通过服务器或本地触发即时更新。

4. 数据收集范围定制

默认情况下,Fusioninventory会收集大量信息,但有时我们需要根据实际需求调整收集范围。

4.1 硬件信息收集控制

通过配置可以控制收集哪些硬件信息:

[hardware] # 是否收集USB设备信息 usb = 1 # 是否收集打印机信息 printer = 0 # 是否收集显卡信息 video = 1

4.2 软件信息收集策略

软件收集是资产管理的重要部分,可以精细控制:

[software] # 扫描哪些目录下的软件 path = /usr,/opt # 忽略某些软件(支持正则表达式) blacklist = .*adobe.*,.*microsoft.*

对于Windows系统,还可以控制是否收集特定注册表位置的软件信息。

4.3 自定义数据收集

除了预定义的信息类型,还可以收集自定义数据:

  1. 创建自定义模块脚本(如/usr/share/fusioninventory/agent/custom/myinfo.pm
  2. 在配置中启用自定义模块:
[task] include = /usr/share/fusioninventory/agent/custom

自定义模块可以用Perl编写,返回需要收集的额外信息。

5. 数据上报与GLPI集成

收集到的数据需要上报到GLPI服务器进行处理和展示。

5.1 通信安全配置

为保证数据传输安全,建议配置HTTPS和认证:

[server] url = https://glpi-server.example.com/plugins/fusioninventory/ user = inventory password = securepassword ssl-cert-file = /path/to/cert.pem

5.2 GLPI端配置

在GLPI管理界面中,需要配置Fusioninventory插件以正确处理上报的数据:

  1. 进入"插件"→"Fusioninventory"→"配置"
  2. 设置自动清理旧数据的策略
  3. 配置资产信息映射规则
  4. 设置告警阈值(如磁盘空间不足)

5.3 数据查看与分析

在GLPI界面中,可以通过多种方式查看资产信息:

  • 全局视图:所有设备的概览
  • 单设备详情:特定设备的完整信息
  • 自定义报表:按条件筛选和导出数据

GLPI还支持设置监控项,当某些指标超过阈值时自动触发告警。

6. 企业级部署最佳实践

在大规模生产环境中部署Fusioninventory需要考虑更多因素。

6.1 性能优化建议

当设备数量超过100台时,建议:

  • 使用MySQL而不是SQLite作为GLPI后端数据库
  • 为GLPI服务器配置足够的RAM(至少8GB)
  • 使用负载均衡部署多个Fusioninventory处理节点
  • 错开Agent的上报时间,避免高峰

6.2 高可用架构

对于关键业务环境,可以考虑:

  1. 数据库集群:MySQL主从复制或Galera集群
  2. 应用层冗余:多个GLPI前端节点
  3. 存储分离:将上传的文件存储在共享存储或对象存储中

6.3 备份与恢复策略

定期备份以下内容:

  • GLPI数据库
  • /var/lib/glpi目录
  • /etc/glpi目录
  • Fusioninventory插件配置

可以使用以下命令创建数据库备份:

mysqldump -u glpi_user -p glpi_db > glpi_backup_$(date +%Y%m%d).sql

7. 常见问题排查

即使配置正确,在实际运行中仍可能遇到各种问题。

7.1 Agent无法连接服务器

检查步骤:

  1. 验证网络连通性:ping glpi-server.example.com
  2. 检查端口开放:telnet glpi-server.example.com 80
  3. 查看Agent日志:/var/log/fusioninventory-agent.log

7.2 数据不完整或缺失

可能原因:

  • 收集任务配置不正确
  • 权限不足导致某些信息无法收集
  • 过滤规则过于严格

检查Agent配置文件和日志,确认没有错误信息。

7.3 性能问题

如果Agent占用过多系统资源:

  1. 限制收集频率:增加delaytime
  2. 减少收集范围:关闭不必要的收集项
  3. 限制资源使用:设置max-cpu-percentmax-memory

8. 进阶应用场景

除了基本的资产管理,GLPI+Fusioninventory还可以支持更多高级应用。

8.1 软件许可证管理

通过收集的软件信息,可以:

  1. 跟踪已安装软件及其版本
  2. 比对采购记录,发现未经授权的软件
  3. 统计软件使用情况,优化许可证采购

8.2 变更追踪与合规审计

定期收集的信息可以用于:

  • 检测未经授权的硬件变更
  • 发现安全策略违规(如安装了禁止的软件)
  • 满足合规审计要求

8.3 与其他系统集成

GLPI支持通过API与其他系统集成:

  1. 与CMDB系统同步数据
  2. 与监控系统联动,自动创建工单
  3. 与采购系统对接,实现资产全生命周期管理

集成示例代码(Python):

import requests import json url = "https://glpi-server.example.com/apirest.php/Computer/" headers = { "Content-Type": "application/json", "Session-Token": "your_session_token", "App-Token": "your_app_token" } response = requests.get(url, headers=headers) computers = json.loads(response.text) for computer in computers: print(f"ID: {computer['id']}, Name: {computer['name']}")

9. 安全注意事项

在部署和使用过程中,必须重视安全性。

9.1 通信安全

  • 强制使用HTTPS而非HTTP
  • 定期更新SSL证书
  • 考虑使用VPN或专用网络进行数据传输

9.2 访问控制

  • 为GLPI配置强密码策略
  • 实施基于角色的访问控制(RBAC)
  • 定期审计用户权限

9.3 数据保护

  • 敏感信息加密存储
  • 遵守数据隐私法规
  • 制定明确的数据保留策略

10. 未来发展与替代方案

虽然GLPI+Fusioninventory是成熟的解决方案,但也需要关注技术发展。

10.1 容器化部署

新的趋势是将GLPI和Fusioninventory容器化:

FROM glpi-project/glpi:10.0.3 # 安装Fusioninventory插件 RUN wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi10.0.3%2B1.0/fusioninventory-10.0.3+1.0.tar.bz2 && \ tar -jxvf fusioninventory-10.0.3+1.0.tar.bz2 -C /var/www/html/glpi/plugins/

10.2 替代方案比较

除了GLPI+Fusioninventory,还有其他资产管理方案:

方案优点缺点
Snipe-IT界面现代,易用性好功能相对简单
Lansweeper扫描速度快,报表丰富商业软件,成本高
OCS Inventory开源,跨平台支持好配置复杂

选择方案时需要综合考虑功能需求、技术能力和预算。

http://www.jsqmd.com/news/857431/

相关文章:

  • ESXi 8.0安装后找不到NVMe硬盘?先查BIOS模式,再看驱动
  • 领益智造冲刺港股:第一季营收126亿,净利降31% 曾芳勤套现5亿
  • DSP系统设计实战:从电源时钟到PCB布局的56个核心要点解析
  • 哪家板框压滤机生产厂性价比高? - 工业品网
  • 5分钟搞定网络拓扑图:Easy-Topo终极指南
  • 从Ra到Sa:手把手教你用SuperView W1搞定三维粗糙度测量(附硅晶圆实测案例)
  • ESP32-C3玩转RGB彩灯:手把手教你配置PWM,实现呼吸灯和彩虹渐变效果
  • 深度解析AMD Ryzen SMU Debug Tool:硬件级调试的终极指南
  • 终极AMD Ryzen调试指南:用SMUDebugTool轻松掌控处理器性能
  • 终极密码恢复指南:如何使用ArchivePasswordTestTool轻松破解加密压缩包
  • 揭秘英雄联盟国服换肤新玩法:R3nzSkin深度体验之旅
  • 2026年至今郑州地区优质AI漫剧服务商盘点:笑漫数字领衔推荐 - 2026年企业推荐榜
  • 剪辑必藏!10个免费可商用音效网站,小白也能轻松找对音 - 拾光而行
  • 【RT-DETR实战】062、GPU/CPU混合推理加速策略:让RT-DETR在边缘设备上飞起来
  • 国民技术N32G030开发入门:如何像管理项目一样组织你的MDK工程文件夹?
  • DS4Windows终极指南:让PS4手柄在PC上重获新生
  • 一次成功!OpenClaw 2.7.5 Windows 安装全流程
  • 避坑指南:Avalonia在Linux部署时字体报错的终极解决方案(附完整代码)
  • 技术解析:开源抖音内容采集解决方案
  • 3PEAK思瑞浦 LM358A-SR SOP8 运算放大器
  • 功率放大器非线性失真与数字预失真技术详解
  • 自由能原理与预测处理的理论解析及其跨领域启示
  • Gemini 3.5 砍半定价、4倍提速强势入场,Claude Opus 4.7 还守得住编程王座吗?
  • 2026年贵州高考志愿填报与学业规划全链条服务深度指南:AI精准赋能从高考到创业 - 优质企业观察收录
  • 硬件模糊测试技术SynFuzz:门级网表安全检测新范式
  • 别再只玩Arduino了!用ESP32-S3做个能联网的桌面天气站(附完整代码)
  • Beyond Compare 5密钥生成终极指南:3分钟完成软件激活的完整解决方案
  • 【小白也能轻松完成】OpenClaw 2.7.5 Windows 一键部署完整教程(包含安装包)
  • 观察使用Taotoken后月度AI模型调用账单的结构化呈现
  • 从特征图到热力图:手把手用PaDiM+PyTorch可视化你的异常检测结果(附完整代码)