FusionInventory Agent что это за программа?
FusionInventory представляет из себя шлюз или модуль сбора информации, которая была отправлена агентами. Сбор информации может производиться с таких устройств как ПК, Принтеры, Виртуальные машины, Android-устройства.
Также FusionInventory может быть использовано в установке, обновления или удаления ПО.
Агент FusionInventory может отправить пакет Wake On LAN в локальную сеть для удаленного включения ПК. При использовании плагина GLPI возможно запланировать отправку запроса Wake On LAN.
Wake On LAN — технология включения компьютера через локальную сеть путем отправки специального пакета данных (magic packet). Для работы технологии сетевая карта должна поддерживать Wake On LAN.
Служба FusionInventory Agent
На компьютере может быть установлена служба FusionInventory Agent. Отключать ее не рекомендуется — FusionInventory это служебная программа, при отключении которой может нарушиться стабильная работа сети или некоторых служебных процессов.

Реализации FusionInventory
Модуль FusionInventory может быть реализован в двух решениях:
- FusionInventory Agent — мультиплатформенный агент. Выполнение большого количества задач управления, таких как локальная инвентаризация, развертывание программного обеспечения, обнаружение сети. Может использоваться как автономно, так и в сочетании с совместимым сервером (OCS Inventory, GLPI, OTRS, Uranos и подобные), действующим как централизованная контрольная точка.
- FusionInventory GLPI Plugin — диспетчер информационных ресурсов с дополнительным интерфейсом администрирования. Применяется для создания базы данных с инвентарем вашей компании (компьютер, программное обеспечение, принтеры и другое). Имеет расширенные функции, облегчающие повседневную жизнь для администраторов, например систему отслеживания заданий с уведомлением по почте и методы для создания базы данных с информацией о вашей сетевой топологии. Присутствует интегрированное решение отслеживания запросов.
Некоторые плюсы FusionInventory — кодировка по умолчанию в UTF-8, нет необходимости в промежуточном сервере (сбор напрямую в плагине GLPI). Нет необходимости в отслеживании синхронизации баз OCSа и GLPI.
Установщик FusionInventory Agent





Программу FusionInventory не рекомендуется удалять без необходимости.
Name already in use
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
The FusionInventory agent is a generic management agent. It can perform a certain number of tasks, according to its own execution plan, or on behalf of a GLPI server with fusioninventory plugin, acting as a control point.
Minimum perl version: 5.8
Mandatory Perl modules:
- File::Which
- LWP::UserAgent
- Net::IP
- Text::Template
- UNIVERSAL::require
- XML::TreePP
Optional Perl modules:
- Compress::Zlib, for message compression
- HTTP::Daemon, for web interface
- IO::Socket::SSL, for HTTPS support
- LWP::Protocol::https, for HTTPS support
- Proc::Daemon, for daemon mode (Unix only)
- Proc::PID::File, for daemon mode (Unix only)
Optional Perl modules:
- Net::CUPS, for printers detection
- Parse::EDID, for EDID data parsing
- DateTime, for reliable timezone name extraction
- dmidecode, for DMI data retrieval
- lspci, for PCI bus scanning
- hdparm, for additional disk drive info retrieval
- monitor-get-edid-using-vbe, monitor-get-edid or get-edid, for EDID data access
- ssh-keyscan, for host SSH public key retrieval
Network discovery tasks
Mandatory Perl modules:
- Thread::Queue
Optional Perl modules:
- Net::NBName, for NetBios method support
- Net::SNMP, for SNMP method support
- arp, for arp table lookup method support
Network inventory tasks
Mandatory Perl modules:
- Net::SNMP
- Thread::Queue
Optional Perl modules:
- Crypt::DES, for SNMPv3 support
Wake on LAN task
Optional Perl modules:
- Net::Write::Layer2, for ethernet method support
Mandatory Perl modules:
- Archive::Extract
- Digest::SHA
- File::Copy::Recursive
- JSON::PP
- URI::Escape
Mandatory Perl modules for P2P Support:
- Net::Ping
- Parallel::ForkManager
See CONTRIB to find references to FusionInventory Agent related scritps/files
- main site: http://www.fusioninventory.org
- Github org: http://github.com/fusioninventory/
Project mailing lists:
Project IRC channel:
- #FusionInventory on FreeNode IRC Network
Please report any issues on Github.
This software is licensed under the terms of GPLv2+, see LICENSE file for details.
Additional pieces of software
The fusioninventory-injector script:
- author: Pascal Danek
- copyright: 2005 Pascal Danek
FusionInventory::Agent::Task::Inventory::Input::Virtualization::Vmsystem contains code from imvirt:
Установка и настройка GLPI и FusionInventory, инвентаризация ИТ инфраструктуры
23.09.2020
insci
CentOS, Linux, Ubuntu
комментариев 39
В этой статье мы рассмотрим пошаговую установку и настройку GLPI. GLPI (Gestionnaire Libre de Parc Informatique — франц.) – это полноценная open-source ITSM система для управления процессами, инвентаризации оборудования и софта, а также для управления заявками и инцидентами. GLPI это большой комбайн, в котором заложено большое количество функционала по управлению ИТ на предприятии. Некоторые из возможностей GLPI:
- Инвентаризация компьютеров, серверов, оргтехники (принтеры, мониторы, МФУ, картриджи и прочее)
- Инвентаризация установленных на компьютерах программ и лицензий
- Управление заявками и инцидентами (регистрация обращений пользоватетелей, HelpDesk)
- База знаний
- Ведение проектов
- Управление бюджетом
Установка и настройка стека LAMP в Linux
GLPI это обычное веб приложение с базой данных, поэтому на сервере нужно развернуть LAMP стек (в данной статье GLPI будет установлен на apache, но возможна также установка на nginx).
apt update
apt install mysql-server mysql-client apache2 php php-mysql libapache2-mod-php php-json php-gd php-curl php-mbstring php-cas php-xml php-cli php-imap php-ldap php-xmlrpc php-apcu
Создайте новую mysql базу данных (можно использовать и mariadb) и пользователя для GLPI:
mysql -u root -p
CREATE DATABASE glpi;
CREATE USER ‘glpi’@’localhost’ IDENTIFIED BY ‘password’;
GRANT ALL PRIVILEGES ON glpi.* TO ‘glpi’@’localhost’;
FLUSH PRIVILEGES;
exit;
Скачайте и распакуйте дистрибутив GLPI:
wget https://github.com/glpi-project/glpi/releases/download/9.4.5/glpi-9.4.5.tgz
tar xvf glpi-9.4.5.tgz
Скопируйте GLPI в веб директорию:
mkdir /var/www/glpi
cp -R glpi/* /var/www/glpi
chown -R www-data:www-data /var/www/glpi
Создайте файл виртуал хоста:
И вставляем следующую конфигурацию Virtual Host:
Проверьте, что виртуалхост активен.

Откройте браузер и переходим по URL адресу, который вы указали в виртуал хосте. В моём случае это glpi.local .

Перед вами должно появится окно веб-установщика GLPI.
Установка GLPI
Сначала нужно выбрать язык интерфейса GLPI и принять лицензионное соглашение. На следующем шаге нажмите Install и убедитесь, чтобы все тесты прошли успешно.

Укажите данные для подключения к базе данных.

Выберите ранее созданную базу данных:

Нажмите Continue и дождитесь импорта данных. База данных может наполняться продолжительное время (несколько минут). Это можно проверить командой show processlist; в mysql.

После этого установка GLPI практически завершена. Зайдите в панель управления (по-умолчанию, логин и пароль – glpi).

Базовая настройка GLPI
Для начала необходимо изменить пароли для встроенных пользователей, это можно сделать на вкладке Administration -> Users.


Если вы не хотите использовать встроенных пользователей, можно их разом отключить.

Обзор интерфейса GLPI
Пробежимся по интерфейсу GLPI и рассмотрим некоторые из возможностей системы.
Вкладка Assets

Эта вкладка отвечает за инвентаризацию оборудования и софта. В GLPI есть возможность создавать шаблоны. Вы можете создавать различные шаблоны для разных устройств (компьютеров, роутеров, мониторов и т.д). Удобство в том, что при создании новых объектов вам не нужно заново заполнять статические данные (например, расположение или тип объекта).

Механизм шаблонов поддерживается и другими функциями, не только инвентаризацией.


Вкладка Assistance
Вкладка отвечает за управление задачами, инцидентами и проектами. Если вы знакомы с Jira, то здесь такой же принцип.

Есть возможность кастомизировать некоторые поля тикетов и создавать шаблоны для них (в Setup -> Dropdowns).
Вкладка Management
Также относится к инвентаризации – можно вести бюджет, учитывать лицензии, поставщиков и т.д.

Вкладка Tools
Эта вкладка содержит в себе разные инструменты – проекты, напоминания, отчеты и базу знаний (wiki).

Управление базой знаний:

Вкладка Administration
Здесь вы можете управлять пользователями, группами и сущностями GLPI, также есть лог действий пользователей GLPi.

Вкладка Setup
Также отвечает за управление GLPI – настройка пунктов меню, изменение различных форм и полей.

Плагин FusionInventory — автоматическая инвентаризация серверов и компьютеров
Рассмотрим одно из применений GLPI в реальной жизни – обнаружение устройств в сети и автоматическое заполнение инвентаризационных данных по оборудованию и установленным программам.
В GLPI не предусмотрено автоматическое обнаружение, но с этим может помочь плагин FusionInventory.
Установка Fusion Inventory

- Скачайте плагин FusionInventory с GitHub https://github.com/fusioninventory/fusioninventory-for-glpi/releases . В моём случае это последняя версия fusioninventory-9.4+2.4.tar.bz2;
- Распакуйте архив ( tar xvf arch.tar.bz2 ) в директорию plugins (в моём случае это /var/www/glpi/plugins);
- На сайте GLPI перейдите в Setup -> Plugins и нажмите на иконку установки плагина;
- Активируйте плагин;

Теперь во вкладке Administration появился пункт FusionInventory.

Перед установкой агентов на компьютеры и сервера нужно сразу включить нужные модули агентов.
Перейдите в Administration -> FusionInventory -> General -> General Configuration

- Computer Inventory
- Network inventory (SNMP)
- Network discovery
- Package deployment
- Collect data
Установка Fusion Agent в Windows
Установить Fusion Agent можно либо через графический интерфейс (инсталлятор), либо через командную строку. Мы будем рассматривать второй вариант, так как он легко масштабируется для разворачивания через групповые политики или SCCM.
- Скачайте агент https://github.com/fusioninventory/fusioninventory-agent/releases. В моём случае я качаю Windows 64-bit OS: fusioninventory-agent_windows-x64_2.5.2.exe (не портейбл);
- Скопируйте установочный .ехе файл fusioninventory на компьютер, с которого вы хотите собирать данные;
- Откройте командную строку с правами администратора и выполните:
fusioninventory-agent_windows-x64_2.5.2.exe /S /acceptlicense /add-firewall-exception /debug=2 /execmode=Service /installtasks=Full /timeout=30 /delaytime=5 /server=»_http://glpi.local/plugins/fusioninventory/» /runnow
Рассмотрим основные параметры уставки
- /S – Silent установка, без графического интерфейса
- /debug=2 – для подробных логов. При боевых развертываниях убирайте этот ключ
- /execmode=Service – ставим агент как службу Windows
- /installtasks=Full – устанавливаем все возможные сборщики
- /delaytime=5 – Задержка перед первым обращения к серверу. Если разворачиваете на большое число компьютеров, ставьте число повыше
- /server – адрес сервера GLPI
Перейдите в Administration -> FusionInventory -> General -> Agent Management, здесь вы можете управлять агентами

Убедитесь, что данные с данного компьютера появились в GLPI. Перейдите в Assets -> Computers.

Здесь отображаются все компьютеры, на которые вы установили агенты FusionInventory с модулем Collect Data. Откройте один из компьютеров и посмотрите на собранные данные. Как вы видите, в базе данных GLPI появилась информация об версии и билде Windows с сервера с агентом.


Вся информация заполняется автоматически из данных, которые приходят с агента. Также эта информация сортируется по категориям. Например, при установке агента на обычный ПК, можно получить информацию о периферийных устройствах. На скриншоте ниже информация о мониторах, подключенных к компьютеру где установлен агент.

Также вы видит список установленного на компьютере ПО.

Установка Fusion Agent на Linux
Рассмотрим установку из пакета на Ubuntu Server 18.04. Установите необходимые зависимости
apt install dmidecode hwdata ucf hdparm perl libuniversal-require-perl libwww-perl libparse-edid-perl libproc-daemon-perl libfile-which-perl libhttp-daemon-perl libxml-treepp-perl libyaml-perl libnet-cups-perl libnet-ip-perl libdigest-sha-perl libsocket-getaddrinfo-perl libtext-template-perl libxml-xpath-perl libyaml-tiny-perl libnet-snmp-perl libcrypt-des-perl libnet-nbname-perl libdigest-hmac-perl libfile-copy-recursive-perl libparallel-forkmanager-perl
dpkg -i fusioninventory-agent_2.5.2-1_all.deb
В конфигурационном файле агента (/etc/fusioninventory/agent.cfg) измените следующие параметры:
systemctl restart fusioninventory-agent
Если всё сделано правильно, вы увидите ваш Ubuntu компьютер/сервер в Assets-> Computers.

Статистика и отчеты в GLPI
В GLPI есть встроенные отчеты.

Но скорее всего вам потребуются отчеты по собственным параметрам. Для этого в GLPI есть плагины:
-
— довольно просто позволяет создавать свои отчеты через PHP — плагин для интеграции с https://www.metabase.com/
Пример встроенного отчета из плагина Reports:

GLPI развивается более 15 лет и содержит в себе огромное количество возможностей для управления ИТ инфраструктуры, а сообщество развивает и поддерживает плагины для различных интеграций и функционала. Система имеет огромные возможности модификации своих элементов, поэтому каждая компания настраивает GLPI под себя.
Чтобы рассмотреть все возможности более подробно, вы можете воспользоваться официальной демо инсталяцией https://demo.glpi-project.org/
Предыдущая статья Следующая статья
Инвентаризация серверов без отвращения
Хочу поделиться история одного успешного проекта по созданию системы инвентаризации серверов. История будет полезна тем кто хочет наконец то навести порядок в своём серверном хозяйстве и ищет реальные примеры с ответами на вопросы.
Это именно история в стиле success story, a не инструкция по установке. Так как пошаговых how to в интернете и на данном сайте для этого продукта предостаточно. Но все они рассказывают про инвентаризацию ПК, а с серверами есть свои нюансы. GLPI не смотря на существующий серверный функционал и плагины специализируется на инвентаризации ПК. Но в умелых руках можно заточить его под нужды серверных Администраторов (сетевых между прочим тоже). Возможно используемые методы у программистов вызовут нарекания, но напомню сделано это админами и для админов.

Предистория
Наверное не нужно объяснять как важно иметь в оперативном доступе актуальную информацию про подопечный зоопарк техники. Особенно это становится важно когда количество начинает переваливает за сотню. Наверняка все проходят через exel файлик с необходимыми полями. С такой же вероятностью у всех возникало чувство отвращения от этого метода при забивании или модифицировании десятка строк.
Проработав в одном сотовом операторе где количество серверов исчислялось 4-х значными числами и оценив прелести используемой там самописной системы для инвентаризации, я озадачился поиском подобного для моего нового работодателя. Подсказку кинул блог Badoo на хабре.
В одной статье было упоминание про использования связки FusionInventory + GLPI для сбора информации по устанавливаемым серверам. В связи с большим уважением к остальным применяемым в статье технологиям я решил опробовать эту в нашей среде.
Реализация
- GLPI — система для организации heldesk в предприятии с базой данных по оборудованию
- FusionInventory — автоматизация сбора данных и выполнения задач
- Хранение основной информации по серверам и виртуальным машинам:
- Автоматический сбор этих данных с серверов
- Отслеживание запросов во внешние ТехПоддержки
- Хранение информации о ТП (кто оказывает поддержку, на каком уровне и когда она кончиться)
- Ассоциация серверов с бизнес сервисами предоставляемыми ИТ
- Отслеживание местоположения сервера в стойке
- Создание отчётов
Поверхностный тюнинг
Суровое наследство GLPI как helpdesk инструмента придётся вырезать залезая в код. Моих навыков в PHP на котором написана система хватает на интуитивное пониманием кода, но несмотря на это можно сделать достаточно много. Сперва рекомендую поправить локализацию для того чтобы элементы инвентаризации назывались не компьютерами, а серверами. Вроде не особо значимый пункт, но помогает в правильном позиционировании продукта внутри компании.
Файл с русской локализации по умолчанию хранится здесь: /usr/share/glpi/locales/ru_RU.php. Сделайте бэкап и смело правьте названия.
Следом рекомендую сменить страницу по умолчанию на список серверов. Это сократит на пару кликов доступ к самой востребованной информации и уберёт лишние вопросы:
- Имя сервера
- Серийный номер
- Модель
- ОС
- Адрес консоли управления
- Статус
- Местоположение
- Контакт ответственного за приложения на сервере: человек и подразделение
При удачной компановке переносами оставшихся полей получаем подобную форму: 
Советую создать шаблоны с предварительно заданными полями для уменьшения отвращения от заполнения инвентаризации.
Hint 1: Добавив пару строк в эту же функцию можно получить удобную ссылку на элемент в системе мониторинга nagios в котором есть обратная ссылка в инвентаризацию (см скриншот выше):
Hint 2: Переименовав неиспользуемое нашей командой поле «инвентарный номер» в «адрес консоли» и сменив тип на url получили возможность прямо из списка серверов перейти на SP консоль. Помогает оперативно решать проблемы со сбойным сервером.
Так же дабы не отвлекать наших администраторов лишними элементами рекомендую закомментировать данные вкладки в том же файле (часть из них может быть убрана зарезанием прав через профиль):
Сбор данных
Для того чтобы не вбивать информацию по компонентам воспользовались плагином FusionInventory. Очень хорошая статья по его установке уже есть на хабре. Могу лишь добавить от себя что было изменено в нашем случае.
- \\share\FusionInventory\Windows\fusioninventory-agent.bat
- /net/share/FusionInventory/RHEL/fusioninventory-agent
В настройках плагина FusionInventory отключаем сбор той информации которая вам не нужна.
Hint: результат работы агента можно выгрузить в файл, а потом импортировать в GLPI. Данный механизм создаёт идиальный API для автоматической загрузки любых данных. Мы реализовали на этой возможности импорт данных по виртуальным машинам из нашей фермы VMware.
У плагина FusionInventory для данных задач есть свой инструмент, но он добавляет компоненты к серверу, вместо создания полноценного элементы списка серверов. Что не так удобно. В последней версии вышедшей пару месяцев назад появился выбор, создавать элемент для виртуалок или компонент к ESXi серверу.
Отслеживаем внешние заявки
Так как админов в команде много, они периодически уходят в отпуск или болеют, нужно где то собирать информацию об активных заявках в ТП. Так же полезно знать какие проблемы были с данным сервером (а в нашем случае и со стороджами, свитчами и софтом).
Решение заложено в GLPI — заявки, но в данном случае они подразумевают заявку наружу, а не внутрь ИТ команды. Для упрощения процедуры заявок было сделано аналогичное урезание функционала: 
Получаем список открытых или закрытых тикетов: 
Дополнение
- Appliances — возможность объединять сервера сервисом которые они предоставляют
- Bays Management — управление серверными стойками, их электропитанием, расположением серверов в стойке
- Custom Fields — добавление кастомных полей к существующим элементам
- Databases — Инвентаризация баз данных, ассоциация с сервисами и серверами
- File injection — Импорт элементов из csv файла
- Objects management — Создание кастомных объектов
Собственно на этом всё. Если у читателей появится интерес к дополнениям и тому как мы их используем я напишу отдельную статью про имплементацию данных плагинов, но для понимания как это выглядит кидаю скриншоты:
Кастомные элементы — storages 
ИТ сервисы 
Стойки 