• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Инвентаризация периферии или как загнать в базу GLPI данные об USBDEVICES.
#1
Добрый день. На данный момент используем связку Fusion Inventory + GLPI. До сегодня базового функционала хватало с головой. Но сейчас на горизонте появилась новая задача: провести инвентаризацию периферии(мыши, клавиатуры) парка компьютеров(примерно 350 ПК).
Поиск решений в гугле не дал результатов.
В общем, суть задачи в следующем: получить все ProductID/DEV_ID и VendorID/VEN_ID USB девайсов каждого ПК. То есть, у нас будет таблица с полями PC_ID(FK), DEV_ID, VEN_ID.
Fusion Inventory Agent владеет данной информацией на этапе формирования  .xml (прикреплю пример ниже). 

Code:
<USBDEVICES>
      <CAPTION>Optical Mouse</CAPTION>
      <CLASS>3</CLASS>
      <MANUFACTURER>Pixart Imaging, Inc.</MANUFACTURER>
      <PRODUCTID>2510</PRODUCTID>
      <SUBCLASS>1</SUBCLASS>
      <VENDORID>093a</VENDORID>
    </USBDEVICES>
    <USBDEVICES>
      <CAPTION>Integrated Rate Matching Hub</CAPTION>
      <CLASS>9</CLASS>
      <MANUFACTURER>Intel Corp.</MANUFACTURER>
      <PRODUCTID>0024</PRODUCTID>
      <SUBCLASS>0</SUBCLASS>
      <VENDORID>8087</VENDORID>
    </USBDEVICES>

Хотелось бы узнать как научить FusionInventory for GLPI обрабатывать эти данные. Есть ли уже готовые решения? Если нет, то в какую сторону смотреть, что бы реализовать это самому и стоит ли оно того?
  Reply
#2
Привествую.
В целом, мышки с клавами и прочая периферия(не только USB) подтягивается в систему после изменения соответствующего правила импорта и связи оборудования. Я мышки не считаю, но ради эксперимента проверил - работает, также подтягивается производитель мышки.
А вот подтягивание VEN_ID и прочего скорее всего придётся организовывать собственными разработками, причём изменять придётся не только код FI4GLPI но и самого GLPI.
Т.к. я почти ноль в PHP и MSQL, то при наличии такой задачи и моих возможностей проработал бы следующие варианты:
- плагин fields может создавать собственные поля, к ПК точно, возможно и к подключенным устройствам
- плагин Data Injection может внедрять данные в систему из собственных источников
- FI4GLPI имеет все файлы .xml у себя.
Поэтому через одно место, но в принципе возможно сделать парсер этих файлов и внедрение в новые поля GLPI, или добавление в поле комментария устройства.
  Reply
#3
(2020-10-01, 11:40:55)maxwal41 Wrote: В целом, мышки с клавами и прочая периферия(не только USB) подтягивается в систему после изменения соответствующего правила импорта и связи оборудования.

Пытался исправить правило Peripheral Import следующим образом:

Активы для импорта: Тип элемента; равен; Устройства
агент: Идентификатор устройства; существует; Да

До этого вместо идентификатора был критерий с серийником. 
Но оно все же не срабатывает. Не подскажешь правильно ли я понял что нужно поменять?
  Reply
#4
(2020-10-05, 11:19:36)Apomelitos Wrote:
(2020-10-01, 11:40:55)maxwal41 Wrote: В целом, мышки с клавами и прочая периферия(не только USB) подтягивается в систему после изменения соответствующего правила импорта и связи оборудования.

Пытался исправить правило Peripheral Import следующим образом:

Активы для импорта: Тип элемента;    равен;            Устройства
агент: Идентификатор устройства;      существует;  Да

До этого вместо идентификатора был критерий с серийником. 
Но оно все же не срабатывает. Не подскажешь правильно ли я понял что нужно поменять?

Я просто из этого правила удалил серийник и полезли мышки с клавами, Соответственно правило должно быть включено и находиться выше запрещающих.
Оставил только "Активы для импорта: Тип элемента;    равен;            Устройства"
  Reply
#5
(2020-10-05, 12:05:57)maxwal41 Wrote:
(2020-10-05, 11:19:36)Apomelitos Wrote:
(2020-10-01, 11:40:55)maxwal41 Wrote: В целом, мышки с клавами и прочая периферия(не только USB) подтягивается в систему после изменения соответствующего правила импорта и связи оборудования.

Пытался исправить правило Peripheral Import следующим образом:

Активы для импорта: Тип элемента;    равен;            Устройства
агент: Идентификатор устройства;      существует;  Да

До этого вместо идентификатора был критерий с серийником. 
Но оно все же не срабатывает. Не подскажешь правильно ли я понял что нужно поменять?

Я просто из этого правила удалил серийник и полезли мышки с клавами, Соответственно правило должно быть включено и находиться выше запрещающих.
Оставил только "Активы для импорта: Тип элемента;    равен;            Устройства"

Спасибо. Благодаря тебе все заработало. Мыши и клавиатуры подтянулись.
Только вот проблемка, производитель подтягивается отлично, а с моделью устройства беда. У тебя были проблемы с получением названия модели устройства(в xml тег CAPTION)?


Attached Files Thumbnail(s)
       
  Reply
#6
Я этот функционал не использую, так что проблем не было)) На днях еще раз попробую запустить, посмотрю, что получается.

Вообще, замечал на компах или сетевых устройствах такую особенность - во время первой инвенты подтягивается только пару показателей(имя, адрес и т.п.), а остальные тянутся уже потом. Это может быть в теории связано с порядком чтения xml, т.е. система не возвращается к уже прочитанным данным. Например она сначала прочитала CAPTION, а потом только на основе других данных решила, что пора подцепить устройство в базу.

И я немного неверно расписал. Правил надо изменять два. Первое на добавление устройства, а второе на его обновление. У меня порядок правил до сих пор нарушен, обычно они друг под другом стоят, у меня вверху общего списка 3 правила и внизу еще 3, не знаю правильно ли это.

Если модель не подтягивается в xml, то нужно посмотреть, что вообще комп выдает, кажется FI использует WMI. Но могу ошибаться.

Code:
wmic path CIM_LogicalDevice where "Description like 'USB%'" get /value

команда покажет USB устройства. Но например на моём компе в полях CAPTION и NAME по этой команде стандартные данные типа "расширенная клавиатура", и в FI4GLPI я видел нечто подобное.

Кстати....

В FI есть такой интересный функционал, как сбор сведений. Он позволяет выцепить нужную инфу из файла, реестра или wmi. Это могло бы решить изначальную задачу. Но тут нужно читать, я это не пробовал и куда добавляется полученная информация - непонятно.

А вообще, как я понял поле CAPTION переходит в поле "Наименование" в GLPI
  Reply
#7
В общем, поле модель у меня тоже не заполняется. Хотя я и не понимаю откуда оно должно заполняться.
Также непонятно как происходит процесс обновления, т.к. нет никаких уникальных идентификаторов устройства - могут быть глюки и "перепрыгивание" устройства с компа на комп.
Еще один непонятный момент. Эти появившиеся устройства по непонятной для меня причине различаются полем "Автоматическая инвентаризация". По идее везде должно стоять "да", но в некоторых стоит "нет". Т.е. система считает, что устройство добавлено руками.

Вообще, смотрю, поле "модель" почти нигде не подтягивается, даже у тех устройств которые имеют серийник. У кого есть, так это у сетевых принтеров и некоторых обычных принтеров, и то возможно последние я сам создавал.

Также, если нужно видеть заполненное поле "модель", которое равно полю наименование, вполне можно попробовать сделать соответствующее правило или словарь. Типа модель=наименованию.
  Reply
#8
(2020-10-08, 07:43:07)maxwal41 Wrote: В общем, поле модель у меня тоже не заполняется. Хотя я и не понимаю откуда оно должно заполняться.
Также непонятно как происходит процесс обновления, т.к. нет никаких уникальных идентификаторов устройства - могут быть глюки и "перепрыгивание" устройства с компа на комп.
Еще один непонятный момент. Эти появившиеся устройства по непонятной для меня причине различаются полем "Автоматическая инвентаризация". По идее везде должно стоять "да", но в некоторых стоит "нет". Т.е. система считает, что устройство добавлено руками.

Вообще, смотрю, поле "модель" почти нигде не подтягивается, даже у тех устройств которые имеют серийник.  У кого есть, так это у сетевых принтеров и некоторых обычных принтеров, и то возможно последние я сам создавал.

Также, если нужно видеть заполненное поле "модель", которое равно полю наименование, вполне можно попробовать сделать соответствующее правило или словарь. Типа модель=наименованию.

Мне сейчас хоть наименование достать, было бы отлично. Добавлено более тысячи устройств с момента изменения правил импорта. Сейчас Они выглядят примерно так:

1. Peripheral update(by serial):
    Активы для импорта: тип элемента  |  равен  |  Устройство

2. Peripheral  import:
    Активы для импорта: тип элемента  |  равен  |  Устройство

На выходе получается следующее:    

Ни одного наименования не подтянуло из 1к добавленых устройств. Я что то явно делаю не так. Знать бы что Sad
  Reply
#9
Странное поведение.
Посмотри настройки GLPI - активы- ограничить управление устройствами.
Также глянь на любом компе раздел блокировки.
В противном случае стоит включить отладку и поглядеть что там происходит.
У меня версия старая, обычно на версиях х.х.0 или 1 постоянно имеются глюки.

А еще в xml у тебя я не увидел поле name может копать агента надо. WMI выдает эту инфу?

https://github.com/fusioninventory/fusio...ssues/2878

Не оно случайно?
  Reply
#10
(2020-10-08, 12:18:23)maxwal41 Wrote: Странное поведение.
Посмотри настройки GLPI -  активы- ограничить управление устройствами.
Также глянь на любом компе раздел блокировки.
В противном случае стоит включить отладку и поглядеть что там происходит.
У меня версия старая, обычно на версиях х.х.0 или 1 постоянно имеются глюки.

А еще в xml у тебя я не увидел поле name может копать агента надо. WMI выдает эту инфу?

WMI выдает следующее:
ОШИБКА.
Описание: Неопознанная ошибка
Недопустимое содержимое XML.

Есть альтернативная команда для Linux?

Версия GLPI 9.4.3 / FusionInventory 9.4+1.1

Из блокировок у некоторых заблочен инвентарник, но не у всех.
  Reply
#11
https://github.com/fusioninventory/fusio...ssues/2878 это посмотри сначала, возможно всё проще.

В линуксе если не ошибаюсь используется dmidecode но у меня нет компов с линуксом.

У меня 9.4.5 FI9.4+2.3
  Reply
#12
(2020-10-08, 12:53:36)maxwal41 Wrote: https://github.com/fusioninventory/fusio...ssues/2878 это посмотри сначала, возможно всё проще.

В линуксе если не ошибаюсь используется dmidecode но у меня нет компов с линуксом.

У меня 9.4.5 FI9.4+2.3

Спасибо тебе огромное. Все получилось. Была проблема в баге версии 9.4+1.1, которая фиксится редактированием двух строчек. Но мы решили сделать апгрейд, так как в новых версиях баг уже исправлен. Сейчас стоит 9.5+1.0.
  Reply
#13
Отлично, еще одно дело раскрыто)))
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)