Перейти к содержимому

Fusioninventory agent что это за программа

  • автор:

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 может быть реализован в двух решениях:

  1. FusionInventory Agent — мультиплатформенный агент. Выполнение большого количества задач управления, таких как локальная инвентаризация, развертывание программного обеспечения, обнаружение сети. Может использоваться как автономно, так и в сочетании с совместимым сервером (OCS Inventory, GLPI, OTRS, Uranos и подобные), действующим как централизованная контрольная точка.
  2. 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, инвентаризация ИТ инфраструктуры

date23.09.2020
userinsci
directoryCentOS, Linux, Ubuntu
commentsкомментариев 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:

Проверьте, что виртуалхост активен.

настройка apache для glpi

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

glpi web installer

Перед вами должно появится окно веб-установщика GLPI.

Установка GLPI

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

glpi prerequisites

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

параметры подключения к базе данных glpi

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

выберите базу glpi

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

наполнение базы данных glpi

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

панель управления glpi

Базовая настройка GLPI

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

управление пользователями glpi

сменить пароль glpi

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

отключить лишних пользователей glpi

Обзор интерфейса GLPI

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

Вкладка Assets

GLPI assets

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

шаблон инвентаризации компьютера

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

gppi шаблоны

gppi скопировать шаблон

Вкладка Assistance

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

glpi Assistance - itsm управление задачами и инцидентами

Есть возможность кастомизировать некоторые поля тикетов и создавать шаблоны для них (в Setup -> Dropdowns).

Вкладка Management

Также относится к инвентаризации – можно вести бюджет, учитывать лицензии, поставщиков и т.д.

glpi Management

Вкладка Tools

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

tools glpi

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

база знаний в glpi

Вкладка Administration

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

логи действий пользователей в glpi

Вкладка Setup

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

настройки интерфейса glpi

Плагин FusionInventory — автоматическая инвентаризация серверов и компьютеров

Рассмотрим одно из применений GLPI в реальной жизни – обнаружение устройств в сети и автоматическое заполнение инвентаризационных данных по оборудованию и установленным программам.

В GLPI не предусмотрено автоматическое обнаружение, но с этим может помочь плагин FusionInventory.

Установка Fusion Inventory

установка модуля fusioninventory в glpi

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

включить плагин fusioninventory

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

FusionInventory в glpi

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

Перейдите в Administration -> FusionInventory -> General -> General Configuration

настройки сбора данных с агентов в FusionInventory

  • Computer Inventory
  • Network inventory (SNMP)
  • Network discovery
  • Package deployment
  • Collect data

Установка Fusion Agent в Windows

Установить Fusion Agent можно либо через графический интерфейс (инсталлятор), либо через командную строку. Мы будем рассматривать второй вариант, так как он легко масштабируется для разворачивания через групповые политики или SCCM.

  1. Скачайте агент https://github.com/fusioninventory/fusioninventory-agent/releases. В моём случае я качаю Windows 64-bit OS: fusioninventory-agent_windows-x64_2.5.2.exe (не портейбл);
  2. Скопируйте установочный .ехе файл fusioninventory на компьютер, с которого вы хотите собирать данные;
  3. Откройте командную строку с правами администратора и выполните:

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, здесь вы можете управлять агентами

управление агентами FusionInventory

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

данные с копьютера в базе данных glpi через агент FusionInventory

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

получена информацию об ОС через FusionInventory

информация об оборудовании компьютеров и серверов в glpi

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

информация о подключенных мониторах

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

glpi информация об на компьютерах установленных программах

Установка 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 fusioninventory сбор данных с Linux компьютеров

Статистика и отчеты в GLPI

В GLPI есть встроенные отчеты.

отчеты glpi

Но скорее всего вам потребуются отчеты по собственным параметрам. Для этого в GLPI есть плагины:

    — довольно просто позволяет создавать свои отчеты через PHP — плагин для интеграции с https://www.metabase.com/

Пример встроенного отчета из плагина Reports:

glpi встроенные отчеты

GLPI развивается более 15 лет и содержит в себе огромное количество возможностей для управления ИТ инфраструктуры, а сообщество развивает и поддерживает плагины для различных интеграций и функционала. Система имеет огромные возможности модификации своих элементов, поэтому каждая компания настраивает GLPI под себя.

Чтобы рассмотреть все возможности более подробно, вы можете воспользоваться официальной демо инсталяцией https://demo.glpi-project.org/

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Инвентаризация серверов без отвращения

Хочу поделиться история одного успешного проекта по созданию системы инвентаризации серверов. История будет полезна тем кто хочет наконец то навести порядок в своём серверном хозяйстве и ищет реальные примеры с ответами на вопросы.

Это именно история в стиле success story, a не инструкция по установке. Так как пошаговых how to в интернете и на данном сайте для этого продукта предостаточно. Но все они рассказывают про инвентаризацию ПК, а с серверами есть свои нюансы. GLPI не смотря на существующий серверный функционал и плагины специализируется на инвентаризации ПК. Но в умелых руках можно заточить его под нужды серверных Администраторов (сетевых между прочим тоже). Возможно используемые методы у программистов вызовут нарекания, но напомню сделано это админами и для админов.

image

Предистория

Наверное не нужно объяснять как важно иметь в оперативном доступе актуальную информацию про подопечный зоопарк техники. Особенно это становится важно когда количество начинает переваливает за сотню. Наверняка все проходят через exel файлик с необходимыми полями. С такой же вероятностью у всех возникало чувство отвращения от этого метода при забивании или модифицировании десятка строк.

Проработав в одном сотовом операторе где количество серверов исчислялось 4-х значными числами и оценив прелести используемой там самописной системы для инвентаризации, я озадачился поиском подобного для моего нового работодателя. Подсказку кинул блог Badoo на хабре.

В одной статье было упоминание про использования связки FusionInventory + GLPI для сбора информации по устанавливаемым серверам. В связи с большим уважением к остальным применяемым в статье технологиям я решил опробовать эту в нашей среде.

Реализация
  • GLPI — система для организации heldesk в предприятии с базой данных по оборудованию
  • FusionInventory — автоматизация сбора данных и выполнения задач
  • Хранение основной информации по серверам и виртуальным машинам:
  • Автоматический сбор этих данных с серверов
  • Отслеживание запросов во внешние ТехПоддержки
  • Хранение информации о ТП (кто оказывает поддержку, на каком уровне и когда она кончиться)
  • Ассоциация серверов с бизнес сервисами предоставляемыми ИТ
  • Отслеживание местоположения сервера в стойке
  • Создание отчётов
Поверхностный тюнинг

Суровое наследство GLPI как helpdesk инструмента придётся вырезать залезая в код. Моих навыков в PHP на котором написана система хватает на интуитивное пониманием кода, но несмотря на это можно сделать достаточно много. Сперва рекомендую поправить локализацию для того чтобы элементы инвентаризации назывались не компьютерами, а серверами. Вроде не особо значимый пункт, но помогает в правильном позиционировании продукта внутри компании.

Файл с русской локализации по умолчанию хранится здесь: /usr/share/glpi/locales/ru_RU.php. Сделайте бэкап и смело правьте названия.

Следом рекомендую сменить страницу по умолчанию на список серверов. Это сократит на пару кликов доступ к самой востребованной информации и уберёт лишние вопросы:

  • Имя сервера
  • Серийный номер
  • Модель
  • ОС
  • Адрес консоли управления
  • Статус
  • Местоположение
  • Контакт ответственного за приложения на сервере: человек и подразделение

При удачной компановке переносами оставшихся полей получаем подобную форму:
image

Советую создать шаблоны с предварительно заданными полями для уменьшения отвращения от заполнения инвентаризации.

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 — заявки, но в данном случае они подразумевают заявку наружу, а не внутрь ИТ команды. Для упрощения процедуры заявок было сделано аналогичное урезание функционала:
image

Получаем список открытых или закрытых тикетов:
image

Дополнение
  • Appliances — возможность объединять сервера сервисом которые они предоставляют
  • Bays Management — управление серверными стойками, их электропитанием, расположением серверов в стойке
  • Custom Fields — добавление кастомных полей к существующим элементам
  • Databases — Инвентаризация баз данных, ассоциация с сервисами и серверами
  • File injection — Импорт элементов из csv файла
  • Objects management — Создание кастомных объектов

Собственно на этом всё. Если у читателей появится интерес к дополнениям и тому как мы их используем я напишу отдельную статью про имплементацию данных плагинов, но для понимания как это выглядит кидаю скриншоты:
Кастомные элементы — storages
image

ИТ сервисы
image

Стойки
image

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *