Инвентаризация Сервера Без Отвращения

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

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

Это история в стиле истории успеха, а не инструкция по установке.

Поскольку в Интернете и на этом сайте есть множество пошаговых инструкций по этому продукту.

Но все они говорят об инвентаризации ПК, а у серверов есть свои нюансы.

GLPI, несмотря на существующие серверные функции и плагины, специализируется на инвентаризации ПК.

Но в умелых руках можно адаптировать его под нужды Администраторов серверов (Администраторов сети, кстати, тоже).

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



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



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

Это становится особенно важным, когда их число начинает превышать сотню.

Наверняка каждый просматривает файл Excel с необходимыми полями.

С такой же вероятностью чувство отвращения от этого метода возникало у каждого при забивании или доработке десятка строк.

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

Блог дал мне подсказку Баду на хабе.

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

Из-за моего большого уважения к другим технологиям, использованным в статье, я решил попробовать эту в наших условиях.



Выполнение
Несколько слов о продукции:
  • ГЛПИ — система организации холдеск на предприятии с базой данных оборудования
  • FusionInventory — автоматизация сбора данных и выполнения задач
Оба продукта имеют открытый исходный код, оба периодически обновляются и дополняются новыми функциями.

Но нам нужна только часть функционала от обоих продуктов:

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

Это можно легко решить с помощью гибкой системы управления профилями.

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

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



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



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

Во-первых, рекомендую подправить локализацию, чтобы предметы инвентаря назывались серверами, а не компьютерами.

Вроде бы не особо существенный момент, но помогает в правильном позиционировании продукта внутри компании.

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

Далее я рекомендую изменить страницу по умолчанию на список серверов.

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

  
  
   

cp /usr/share/glpi/front/central.php /usr/share/glpi/front/central.php.b cp /usr/share/glpi/front/computer.php /usr/share/glpi/front/central.php

Далее мы определим набор полей, которые мы хотим видеть для серверов.

В нашем случае это привело к следующему списку:

  • Имя сервера
  • Серийный номер
  • Модель
  • Операционные системы
  • Адрес консоли управления
  • Положение дел
  • Расположение
  • Контакт лицо, ответственное за приложения на сервере: человек и отдел
Давайте попробуем удалить ненужное из веб-формы отображения нашего сервера.

Для этого вам необходимо отредактировать класс компьютера: /usr/share/glpi/inc/computer.class.php .

Найдите функцию showForm( и прокомментируйте вывод полей.

Если верстка прошла удачно, перенеся остальные поля получим аналогичную форму:

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

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

Подсказка 1: Добавив пару строк в эту же функцию, можно получить удобную ссылку на элемент в системе мониторинга nagios, имеющий обратную ссылку на инвентарь (см.

скриншот выше):

echo "<tr class='tab_bg_1'>"; echo "<td></td><td></td>"; echo "<td></td>"; echo "<td><a href= http://nagios/check_mk/view.pyЭview_name=host&site=&host=".

$this- >fields["name"].

"> Server monitoring in NAGIOS </a> </td>";

Подсказка 2: Переименовав поле «инвентарный номер», которое не использовалось нашей командой, в «адрес консоли» и изменив тип на url, мы получили возможность напрямую переключаться со списка серверов на консоль SP. Помогает быстро решить проблемы с неисправным сервером.

Также, чтобы не отвлекать наших администраторов лишними элементами, рекомендую закомментировать эти вкладки в этом же файле (некоторые из них можно удалить, отрезав права через профиль):

# $this->addStandardTab('ComputerVirtualMachine', $ong, $options); # $this->addStandardTab('RegistryKey', $ong, $options); # $this->addStandardTab('Item_Problem', $ong, $options); # $this->addStandardTab('Link', $ong, $options); # $this->addStandardTab('Reservation', $ong, $options); # $this->addStandardTab('OcsLink', $ong, $options); # $this->addStandardTab('Computer_SoftwareVersion', $ong, $options); # $this->addStandardTab('Note', $ong, $options); # $this->addStandardTab('Document', $ong, $options);



Сбор данных
Чтобы не вводить информацию о компонентах, мы использовали плагин FusionInventory. Очень хорошая статья по установке уже доступен в хабе .

От себя могу только добавить, что изменилось в нашем случае.

Агенты ставить не хотелось ввиду и без того большого количества зарубежного ПО на серверах.

Более того, чаще всего для сбора данных достаточно одного прогона.

Не каждый день ваша ОС или компоненты на вашем сервере меняются.

Сетевой ресурс (CIFS и NFS) и распакованный на нем дистрибутив агента FusionInventory для каждой используемой в компании ОС позволяют собирать данные одной командой:

  • \\share\FusionInventory\Windows\fusioninventory-agent.bat
  • /net/share/FusionInventory/RHEL/fusioninventory-агент
Как массово запустить эту процедуру в вашей компании – решать вам.

После запуска мы либо получим новый объект в инвентаре, либо обновим данные существующего (уникальность проверяется по серийному номеру/MAC/IP/имени) с заполненными данными:

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

В настройках плагина FusionInventory отключите сбор ненужной вам информации.

Намекать: результат работы агента можно загрузить в файл, а затем импортировать в GLPI. Этот механизм создает идеальный API для автоматической загрузки любых данных.

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

Что не так уж и удобно.

В последней версии, вышедшей пару месяцев назад, появился выбор: создавать элемент для виртуальных машин или компонент для ESXi-сервера.



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

Также полезно знать, какие проблемы были с этим сервером (а в нашем случае с охранниками, коммутаторами и ПО).

Решение заложено в GLPI — запросы, но в данном случае они подразумевают приложение снаружи, а не внутри ИТ-команды.

Для упрощения процедуры применения было сделано аналогичное сокращение функционала:

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

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

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



Добавление
Собственно, на этом инвентаризация сервера завершена; затем, в зависимости от необходимости, дополняем функционал плагины .

Рекомендую следующие дополнения:

  • Техника — возможность объединения серверов с предоставляемыми ими услугами
  • Бэйс Менеджмент — управление серверными стойками, их электропитание, расположение серверов в стойке
  • Настраиваемые поля — добавление произвольных полей к существующим элементам
  • Базы данных — Инвентаризация БД, привязка к сервисам и серверам
  • Внедрение файлов — Импортировать элементы из файла csv.
  • Управление объектами — Создание нестандартных объектов
Собственно, это все.

Если читателям интересны дополнения и то, как мы их используем, о реализации этих плагинов я напишу отдельную статью, а чтобы было понятно, как это выглядит, выложу скриншоты: Пользовательские элементы - хранилища

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

ИТ-услуги

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

Стеллажи

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

Теги: #linux #it инфраструктура #Windows #Системное администрирование #инвентаризация #сервер #glpi

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.