Жизненный цикл активов в GLPI: от закупки до списания

В GLPI автоматическая инвентаризация даёт данные об оборудовании, но никогда — стоимость закупки, гарантию или поставщика: финансовый жизненный цикл живёт на вкладке «Управление» и в таблице glpi_infocoms, и именно здесь останавливается большинство проектов. Руководство по пяти фазам, сопоставленным с реальными объектами GLPI, cron, благодаря которому срабатывают оповещения о гарантии, методам амортизации и запросу из практики сопровождения, который находит активы, невидимые для амортизации.

В этой статьеРазделов: 8

GLPI Agent за несколько дней приносит сотни активов — и ни у одного нет стоимости закупки, гарантии или поставщика. Автоматическая инвентаризация заполняет данные об оборудовании; финансовый жизненный цикл — приобретение, амортизация, оповещение о гарантии и списание — это отдельный слой, он живёт на вкладке «Управление» и в таблице glpi_infocoms, и именно здесь почти каждый проект по управлению активами застревает на полпути. Это руководство сопоставляет пять фаз с реальными объектами GLPI, показывает cron, благодаря которому срабатывают оповещения, и запрос, который мы запускаем в рамках сопровождения, чтобы найти активы, невидимые для амортизации.

Что автоматическая инвентаризация не заполняет

Первое разочарование почти в каждом проекте одно и то же: клиент устанавливает GLPI Agent, видит, как появляются 400 машин с CPU, RAM, диском и серийным номером, и делает вывод, что «управление активами готово». Это не так. Агент собирает то, что операционная система знает о себе, — а ОС не знает, сколько стоила машина, у кого её купили, когда истекает гарантия и к какому центру затрат она относится. Все эти данные живут в Infocom (вкладка «Управление» актива, таблица glpi_infocoms) и вводятся вручную или импортируются. Ни одна версия агента этого не заполняет, и это путаница номер один, которую мы встречаем в унаследованных средах: прекрасная инвентаризация и пустой финансовый жизненный цикл. Без Infocom нет амортизации, нет оповещений о гарантии и нет совокупной стоимости — под поверхностью жизненного цикла просто не существует.

Пять фаз, сопоставленных с объектами GLPI

Прежде чем что-либо настраивать, стоит понять, где на самом деле живёт каждая фаза в GLPI. Модуля «жизненный цикл» нет; есть поля, статусы и таблицы, которые вместе образуют цикл. Вот карта, которую мы используем как чек-лист внедрения:

ФазаГде живёт в GLPIТаблицаКто заполняет
ПриобретениеВкладка «Управление»: поставщик, счёт-фактура, стоимость, гарантияglpi_infocomsВручную или импорт CSV
Ввод в эксплуатациюСтатус + местоположение + пользователь/группаglpi_states, glpi_locationsАгент (характеристики) + вручную (статус/место)
ЭксплуатацияЗаявки, связанные с активомglpi_items_ticketsАвтоматически при создании заявки
АмортизацияВкладка «Управление»: тип, срок, коэффициентglpi_infocoms (sink_type, sink_time)Автоматический расчёт GLPI
СписаниеСтатус «Списан» + прикреплённый документglpi_states, glpi_documents_itemsВручную

Обратите внимание: автоматические только две строки — характеристики оборудования и связь актива с заявкой. Всё остальное — то, что придаёт активу финансовый смысл, — это решение и дисциплина людей. Поэтому управление активами проваливается из-за процесса, а не из-за инструмента.

Приобретение: Infocom — сердце цикла

Фаза приобретения сводится к тому, чтобы правильно заполнить Infocom. Поля, которые важны и на которых держится весь остальной цикл:

  • Поставщик, номер счёта-фактуры и дата закупки — прослеживаемость и основание для обращения по гарантии.
  • Стоимость — база для расчёта амортизации; без неё остаточная стоимость никогда не будет рассчитана.
  • Срок гарантии — в месяцах; используйте -1 для пожизненной гарантии. Именно от этой даты срабатывает оповещение.
  • Бюджет (budget) — привязывает актив к центру затрат для отчётов по статьям.

Заполнять это вручную для 400 активов нереально, поэтому при внедрении мы импортируем Infocom вместе с парком из CSV таблицы закупок, сопоставляя по серийному номеру. Типичная ошибка здесь — оставить стоимость пустой, «чтобы заполнить потом»: потом так и не наступает, и амортизация рождается мёртвой.

Статус: компактная машина состояний

Статус актива (поле states_id, таблица glpi_states) — это то, что двигает актив по циклу: «Используется», «На складе», «В ремонте», «Списан». Статусы полностью настраиваются в Настройки > Выпадающие списки > Статусы, и здесь кроется вторая ловушка из практики: взрыв статусов. Мы видели среды с тридцатью статусами («Используется — головной офис», «Используется — филиал 2», «Используется — ноутбук»...), которые на деле смешивают статус с местоположением и типом и ломают любой отчёт по состоянию. Статус — это машина состояний, а не таксономия: держите полдюжины статусов, общих для всех типов активов.

Две детали из практики сопровождения о статусах и агенте. Первая: в настройках встроенной инвентаризации вы задаёте статус по умолчанию для новых обнаруженных активов — укажите «На складе», чтобы новая машина не попадала сразу в «Используется». Вторая: проинвентаризированные активы являются динамическими (is_dynamic = 1); если удалить актив, который агент всё ещё видит, он воскреснет в следующем цикле. Чтобы убрать его по-настоящему, удалите агент с машины или заблокируйте объект, а не просто удаляйте его в интерфейсе.

Амортизация: линейная или дегрессивная

Когда в Infocom указаны стоимость и дата закупки, GLPI сам рассчитывает остаточную стоимость. Метод выбирается в самом активе:

Тип (sink_type)Как амортизируетсяКогда использовать
ЛинейнаяФиксированная доля в год на протяжении срока полезного использования (sink_time)Бухгалтерский стандарт для большинства ИТ-активов
ДегрессивнаяБольшая доля в начале, через коэффициент (sink_coeff)Когда налоговая политика требует ускорить потерю стоимости

Срок (sink_time) указывается в годах — обычно от 3 до 5 для компьютеров, в зависимости от вашей политики. Можно задать глобальное значение по умолчанию, чтобы не вводить его в каждом активе, но реальный срок полезного использования зависит от класса оборудования: сервер амортизируется не так, как ноутбук. Оставьте значение по умолчанию для типичного случая и скорректируйте исключения.

Оповещения зависят от правильного cron

Истечение гарантии и окончание договора превращаются в уведомление, только если выполняется автоматическое действие infocom. И здесь ловушка, которая чаще всего порождает жалобу «GLPI меня не предупредил»: cron в режиме GLPI (внутреннем) запускается при посещении страниц. В инсталляции с низким трафиком — типичной для управления активами, куда заходит только ИТ-команда, — автоматические действия запаздывают или не запускаются вовсе, и оповещение о гарантии так и не уходит. Решение — вывести cron из внутреннего режима и привязать его к операционной системе:

# /etc/cron.d/glpi - triggers GLPI automatic actions every 5 min.
# Among them the "infocom" action: warranty expiry and contract end alerts.
*/5 * * * * www-data /usr/bin/php /var/www/glpi/front/cron.php >/dev/null 2>&1

Затем в Настройки > Автоматические действия > infocom смените режим выполнения на CLI/внешний. Без этого весь остальной гарантийный цикл — просто декорация.

Диагностический SQL: активы, невидимые для амортизации

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

-- Computers WITHOUT financial information (infocom):
-- inventoried by the agent, but invisible to depreciation and warranty alerts.
SELECT c.id, c.name, c.serial
FROM glpi_computers c
LEFT JOIN glpi_infocoms i
       ON i.itemtype = 'Computer' AND i.items_id = c.id
WHERE c.is_deleted  = 0
  AND c.is_template = 0
  AND i.id IS NULL
ORDER BY c.name;

Тот же шаблон подходит для мониторов, принтеров и сетевого оборудования — замените таблицу и itemtype. Полученное число — реальный объём работы по внесению финансовых данных, и обычно оно становится здоровым шоком для тех, кто считал парк «полностью заведённым».

Списание со следом для LGPD

Конец жизни — это не просто смена статуса на «Списан». Оборудование с данными (ноутбук, сервер, СХД) покидает компанию с персональной информацией внутри, и списание требует проверяемого следа для LGPD. В GLPI: смените статус, зафиксируйте дату окончания использования в Infocom и прикрепите к активу документ, подтверждающий его дальнейшую судьбу (сертификат уничтожения диска, акт дарения, манифест утилизации электроники). Тогда, когда DPO спросит: «докажите, что жёсткий диск ноутбука уволенного сотрудника уничтожен», ответ будет в самом активе, а не в чьей-то памяти. Не удаляйте списанный актив: он и есть доказательство. Просто исключите его из операционных отчётов фильтром по статусу.

Нужно превратить автоматическую инвентаризацию в жизненный цикл активов, который действительно поддерживает амортизацию, оповещения о гарантии и след списания? Узнайте о сопровождении GLPI от NexTool.


Проверено командой NexTool Solutions.

Часто задаваемые вопросы

Нет. Агент собирает то, что знает операционная система (CPU, RAM, диск, серийный номер), но никогда не заполняет Infocom — стоимость, поставщик, дата закупки и гарантия живут на вкладке «Управление» (таблица glpi_infocoms) и вводятся вручную или импортируются. Без этих данных нет ни амортизации, ни оповещений о гарантии, какой бы полной ни казалась инвентаризация оборудования.

Почти всегда потому, что cron работает в режиме GLPI (внутреннем) и запускается при посещении страниц. В инсталляции с низким трафиком автоматические действия запаздывают или не выполняются вовсе. Настройте cron в операционной системе (front/cron.php каждые 5 минут) и переведите автоматическое действие infocom в режим CLI/внешний.

Линейная применяет фиксированную долю в год на протяжении срока полезного использования (поле sink_time) и является бухгалтерским стандартом для большинства ИТ-активов. Дегрессивная концентрирует потерю стоимости в начале с помощью коэффициента (sink_coeff) и подходит, когда налоговая политика требует ускоренной амортизации. Обе используют стоимость и дату закупки из Infocom.

Потому что он динамический (is_dynamic = 1): он был создан автоматической инвентаризацией, и агент всё ещё его видит. Если удалить его только в интерфейсе, следующий цикл агента создаст его заново. Чтобы удалить по-настоящему, удалите агент с машины или заблокируйте объект; если речь о списании, лучше сменить статус на «Списан», а не удалять.

Смените статус на «Списан», зафиксируйте дату окончания использования в Infocom и прикрепите к активу подтверждающий документ (сертификат уничтожения диска, акт дарения или манифест утилизации). Не удаляйте актив: он является проверяемым доказательством того, что оборудование с данными было обработано правильно. Чтобы убрать его из операционных отчётов, используйте фильтр по статусу.

Нужна помощь?