Glpi ошибка перемещения файла

Обновлено: 04.07.2024

Задача: организовать Portal в небольшой коммерческой компании способный помочь в управлении IT-инфраструктурой, в техподдержке пользователей, в планировании бюджета, в управлении отделами и во многом другом.

Основные причины, по которым можно прийти к выводу, что такая система необходима:

  • Удобное ведение поступивших заявок — заявки поступившие в систему не забываются и не надо вести дополнительных блокнотов;
  • Хронология каждой заявки — в процессе решения собирается вся необходимая информация в одном месте;
  • История заявок — в случае проблем с заказчиком всегда можно посмотреть все события по заявке и освежить в памяти события которые со временем забываются.

Требования к системе предъявлялись:

  • Свободная система работающая на свободных операционных системах;
  • Система должна активно развиваться и иметь возможность простого обновления;
  • Система должна работать на популярном языке программирования;
  • Возможность удобной подачи заявки и последующего ведения;
  • Ведение в одной системе разных организаций;
  • Гибкое администрирование уровня доступа пользователей;
  • Создание базы знаний для пользователей;
  • Использование доменных пользователей;
  • Личный планировщик заданий.

Что очень порадовало в системе GLPI это:

  • Систему GLPI можно установить на простой хостинг как обычный сайт так как он написан на PHP;
  • Настроек очень много и это позволяет реализовать практические любые пожелания;
  • Простота и продуманность обновления;
  • Информативность по выполняемым действиям очень радует, так как можно посмотреть подробную историю как действий пользователей так и автоматических заданий;
  • Расширение возможностей с помощью большого количества дополнений;
  • Почти во всех настройках есть история изменений где можно посмотреть кто и что делал;
  • Делать резервные копии базы данных перед серьезными настройками в системе GLPI;
  • Возможности GLPI значительно расширяют дополнения, которые просты в использовании и имеют богатый функционал.

Основной состав компонентов:

2. Описание свободного менеджера IT-инфраструктуры.

2.1. Что такое GLPI.

2.2. Особенности.

GLPI включает возможности:

  • Инвентаризацию компьютеров, периферийного оборудования, сетевых принтеров и связанных компонентов через интерфейс с OCS Inventory или FusionInventory.
  • Управление заявками и инцидентами.
  • Управление лицензиями, договорами (по стандарту ITIL).
  • Связывание пользователей и групп по географическому положению.
  • Управление деловой и финансовой информацией (договоры).
  • Управление статусом объектов.
  • Поддержка базы знаний и Часто задаваемых вопросов (FAQ).
  • Генераторы отчетов.
  • Поддерживаются база данных MariaDB.
  • Поддержка UTF8.
  • Система оповещения о событиях.

GLPI позволяет увеличивать функциональность с помощью подключения плагинов.

3. Предварительная подготовка сервера.

Предварительную подготовку сервера: обновление системы CentOS 7, удаление SELinus, открытие порта 80 и порта 443 проведем по по статье «CentOS 7: Настройка web-сервера Nginx и выход в Интернет со своим доменным именем.»

3.1. Установка nginx.

3.2. Настройка nginx.

Настраивать свободный менеджер ИТ-инфраструктуры GLPI будем с учетом наличия других виртуальных хостов (в перспективе) на данном сервере под управлением nginx.

Создадим виртуальный хост и подготовим директории для размещения системы GLPI и log-файлов:

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

Копируем в файл конфигурации данный текст и по смыслу меняем его на свои параметры:

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

3.3. Установка php-fpm.

Перезапускаем php-fpm.

3.5. Установка MariaDB.

3.6. Ротация логов виртуальных хостов.

4. Первый вход в web-интерфейс.


Соглашаемся с лицензионным соглашением:


Так как мы ставим на чистовую и с нуля, то нажимаем клавишу Install:


Пройдет небольшая самодиагностика установленных компонентов. У нас всё установлено кроме парольного доступа на страничку с авторизацией. Это можно сделать позднее самостоятельно в любое удобное время. Нажимаем клавишу Continue:



Система предложит автоматически отформатировать нашу базу данных под нужды GLPI. Выбираем ее по названию. Соглашаемся и нажимаем клавишу Continue:


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

Вот эти учетные записи:

  • Логин: glpi , пароль: glpi . Учетная запись для администратора системы.
  • Логин: tech , пароль: tech . Учетная запись для техника системы.
  • Логин: normal , пароль: normal . Учетная запись для потребителя системы.
  • Логин: post-only , пароль: postonly . Учетная запись для координатора системы.

Введите там учётные данные по-умолчанию для администратора системы:


5. Первичная настройка GLPI.

5.1. Удаление файла автонастройки install.php.

На главной странице появится уведомление о том, что надо удалить файл из корневой папки /web/glpi/www/install/install.php :

5.2. Переименовывание базовых пользователей.

Не забудьте и сменить пароли как у учётной записи GLPI, так и у других встроенных учётных записей.

Переходим в Администрирование -> Пользователь:


Меняем пароль для следующих учетных записей:

5.3. Настройка cron для GLPI.

Проверим, работает ли у нас cron в фоновом режиме?


Открываем файл заданий cron:

Добавляем строки по смыслу общего синтаксиса в файле:

Где указаны следующие параметры:

В данном примере скрипт /web/glpi/www/front/cron.php будет выполняться раз в минуту.

Через некоторое время проверим периодичность выполнения задания:


5.4. Расположение пунктов важных настроек.

Для удобства использования портала необходимо самостоятельно настроить следующее:

6. Подключение плагинов.

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

Установка плагинов в GLPI выполняется по следующему алгоритму:

  • Скачиваем плагин, версия которого совместима с установленной версией GLPI.
  • Распаковываем скачанный архив в каталог /plugins , который находится в каталоге с GLPI.
  • Заходим на наш портал GLPI, переходим в Настройки -> Плагины. Находим нужный плагин -> кликаем напротив него по Установить и затем Включить.

Рассмотрим некоторые из них.

7. Доменная аутентификация Active Directory.

Если в нашей сети есть сервер с установленной ролью контроллера домена, мы можем выполнять аутентификацию на основе LDAP. Настройка выполняется в два этапа — настройка связи с LDAP и импорт пользователей из каталога.

7.1. Настройка связи с LDAP.

Для начала, создаем учетную запись в каталоге Active Directory для настройки связывания с GLPI. У нее должны быть минимальные права.

Теперь создаем каталог LDAP. Для этого переходим в Настройки -> Аутентификация:


Кликаем по LDAP каталог и нажимаем Добавить:


Заполняем поля для настройки LDAP:


  • Наименование — произвольное имя каталога, например, dmosk.local .
  • Сервер — сервер с ролью LDAP-сервера. В данном примере указан весь домен, по которому могут отзываться все серверы.
  • Фильтр соединений — фильтр объектов, которые мы извлекаем. Для Active Directory работает ( &(objectClass=user )( objectCategory=person) ).
  • База поиска (baseDN) — контейнер или организационный юнит, с которого начинается поиск объектов. В нашем случае, OU=Users,DC=dmosk,DC=local .
  • Поле имени пользователя — поле LDAP, по которому будет ассоциироваться имя пользователя ( samaccountname ).
  • Сервер по умолчанию и Активен переводим в Да.
  • rootDN (пользователь для подключения) — учетная запись в AD DS, у которой есть права на чтение каталога ( CN=glpi,CN=Users,DC=dmosk,DC=local ). Ее мы создавали на первом этапе.
  • Пароль (пользователь для подключения) — вводим пароль для учетной записи в AD.

Нажимаем Добавить.

Переходим в подраздел Тест и проверяем подключение к каталогу. Если оно выполнится с ошибкой, подождите, минут, 15 — возможно, не прошла репликация между всеми контроллерами.

Переходим в подраздел Пользователь — заполняем поля для ассоциаций с LDAP:


Нажимаем Сохранить.

  1. В группах можно добавить фильтр ( &(objectClass=group)(objectCategory=group) ).
  2. В дополнительной информации меняем часовой пояс.

7.2. Импорт пользователей.

Переходим в Администрирование -> Пользователь:


Кликаем по Связи с LDAP:


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

8. Отчеты.

Также, возможности отчетов можно расширить с помощью плагинов, например, Reports.


Q: Как сделать, чтобы при создании пользователем заявки в поле Заказчик->Группа автоматически прописывалась группа, к которой принадлежит этот заказчик.
А1: Допустим, вы обслуживаете внешних клиентов и не хотите чтобы клиент видел чужие заявки. Для этого, для каждого клиента создайте отдельную организацию и добавьте в нее клиента. Потом зайдите в Администрирование > Правила > Правила для заявок, создайте новое правило (картинка ввиде знака + (плюс) вверху), выберите критерий организация и укажиде нужную организацию. А в "Действие" выберите "Заказчик - Группа" и укажите группу.
А2: Вы хотите чтобы для определенного пользователя (заказчика) автоматом назначалась нужная группа. Для этого создайте правило для заявок, укажите критерий "Заказчик - Пользователь" и выберите нужного пользователя, а в действиях укажите как в А1.


Q: Как сделать, чтобы заявка от конкретного заказчика автоматически назначалась конкретному исполнителю?
А: Администрирование > Правила > Правила для заявок, жмем + (плюс) вверху (там, где написано "Central > Администрирование > Правила"). Создаем правило, выбираем критерий "Заказчик - Пользователь" и указываем нужного заказчика. Потом в действиях выбираем "Назначено - Тех.специалист" и выбираем нужного исполнитея.


Q: Как создать группы, которым назначается заявка?
А: Администрирование > Группы, там вверху, на серой панельке, где написано "Central > Администрирование > Группы", есть кнопка (точнее картинка) ввиде знака "+". Это и есть добавление групп.


Q: Добавил информацию в базу знаний, но она не отображается ни под одним профилем, как настроить?
А: Идем в редактирование нужного профиля, там находим "ЧаВо:" и "База знаний:", ставим нужные права. Все.
PS1: Для профилей с интерфейсом "Поддержка" доступно только ЧаВо.
PS2: Чтобы юзер увидел запись в БЗ, он должен входить в ту организацию, в которую добавлена запись. Т.ж. можно указать (при создании записи) "Подчинённые организации: Да", тогда чтобы видели записи юзеры из всех организаций достаточно добавлять записи в основную организацию.


Q: Как в GLPI использовать планирование?
А: Когда вы создаете заявку или редактируете ее, в разделе "Добавить ответ" есть пункт "Планирование" и справа от него ссылка "Запланировать", если на нее нажать, то появятся нужные поля. Это и будет планирование. А в Поддержка -> Планирование можно посмотреть что запланировано на день/неделю/месяц.


Q: GLPI видит письма, но не хочет их забирать. В чем может быть дело?
А: Особенностей не выяснили, но в нашем случае GLPI "не нравилось" одно из писем. После его удаления из ящика все письма загрузились.
(ответ от анонимного читателя)

Q: Как сделать, чтобы были русские буквы при экспорте в PDF?
А: Прочитайте пост GLPI: Экспорт в PDF по русски.


Q: Как добавить свои статусы для заявок?
А: Прочитайте пост GLPI: Добавляем свои статусы для заявок.


UPD: Я уже несколько лет не использую GLPI и вряд ли смогу толково ответить на ваши вопросы. Сорри.

Ставить лучше из репозитория t7 - там версия всегда более актуальная, чем в p7.

Подключаем виртуальный хост glpi:

Запускаем mysql и apache:

Выставляем автозапуск сервисов.

Создаем БД glpi и права пользователю glpi с паролем Password (например)

После завершения установки в целях безопасности не забудьте удалить файл:

Настройки - Общие - Все

  • Включить уведомления на почту
  • Добавить назначенного специалиста в уведомления
  • Те же действия для Уведомлений: Update Ticket, Close Ticket, Add Followup, Add Task, Update Followup, Update Task, Delete Followup, Delete Task, Resolve ticket

На время тестирования GLPI в отделе ИТ можно отключить уведомления заказчику (чтобы пользователей не пугали странные письма) для этого нужно таким же способом удалить запись Заказчик

Пример настроек для AD на Win2003
На контроллере домена создать пользователя (например'GLPI user search') в OU users, задать пароль (Password).

Просто выслать письмо на настроенный ящик.

  • GLPI иногда пишет ошибку после сохранения настроек, но письма нормально принимает по кнопке "Получить заявки сейчас".
  • После сохранения настроек меняется поле validate-cert/novalidate-cert на противоположное.

Проверено на GLPI 0.84.3

Проверка текущего статуса GLPI:

Ошибка возникает если права super-admin выданы пользователю без наследования, нужно выдать снова с выставленной галкой.

  • Не приходят уведомления по почте при добавлении комментария (Сопровождение)
    • Решается включением уведомления для followup (по-умолчанию выключено)
    • Нужно проверить частоту напоминаний о картриджах и минимальный порог в свойствах организации:
    • При обновлении заявки в уведомлении не указывается, что конкретно изменилось.
      • Решается внедрением отдельного шаблона уведомления со специально прописанным выводом изменения (по-умолчанию шаблон универсальный)

      Логи расположены здесь - /var/www/webapps/glpi/files/_log/php-errors.log

      Ошибка доступа при перемещении временного файла, который glpi переименовывает и размещает в рандомный (видимо) каталог в /var/www/webapps/glpi/files/<тип файла>/xx. Решается выставлением корректных прав на каталоги в /var/www/webapps/glpi/files/<тип файла> (владелец/группа: apache2/apache2 или apache2/_webservers).

      Проект предназначен для работы с базой данных IT и телекоммуникационного оборудования установленного на предприятии. Также имеется возможность ведения учета расходных материалов и организации службы технической поддержки по расписанию и по заявкам пользователей. GLPI русифицирована, создана на PHP и использует СУБД MySQL/MariaDB, лицензия GPL.
      При использовании совместно с продуктами FusionInventory и OCS-Inventory возможно создание максимально автоматизированной системы инвентаризации. OCS-Inventory основан на распределяемых модулях, устанавливаемых на инвентаризируемые машины, которые отсылают подробную информацию о системе и подключенных устройствах в выделенную базу данных.

      Презентация | GLPI - небольшой обзор | Релизы | Сообщить о баге разработчикам GLPI (английский, французский) | Инвентаризация компьютерной и оргтехники. OCS Inventory | Плагины GLPI | Плагины GLPI на GitHub
      Инвентаризация FusionInventory | Форум FusionInventory | FusionInventory на GitHub | Агенты FusionInventory для Windows

      Всем папкам доступ есть, кроме последнего пункта с защитой файла:
      (Веб доступ к файлам папки защищён Веб-доступ к файлам директории должен быть запрещен
      Проверьте файл .htaccess и конфигурацию веб-сервера)

      Установлена версия 9.5.1

      при попытке обновить до 9.5.2 не проходит дальше начала

      ____________________________________
      GLPI SETUP

      Обновление
      Соединение с БД установлено
      Версия базы данных корректна (10.3.25) - Совместимо!Версия базы данных корректна (10.3.25) - Совместимо!

      Обновление до 9.5.2
      Работа в процессе. (0 секунд)

      Building inline images data in glpi_documents_items
      ______________________________________________
      И не обновляет

      Обновился, работает на php 7.3.21

      Я установил GLPI 9.5.3, добавил туда сотрудников и технику, соответственно каждому сотруднику привязал нужную ему технику. Я использую этот сервис только исключительно как инвентаризацию техники, без тикетов и т.д.

      Все учетки доменные и установка крякнутого софта жестоко карается, но в суровых реалиях без такого софта пока никак, так же как и без доменной учётки.

      Поэтому появилась идея поставить виртуалку от VMWare (мне больше нравиться чем VirtualBox) поставить в неё лицензионную винду (ключ имеется) и уже в виртуалке использовать доменную учётку при необходимости, а самому сидеть в локальной учетке с крякнутым софтом.


      Вопрос - не вычислит ли меня fusioninventory, что VMWare у меня тоже крякнутая и не увидит ли она, всё что ЗА виртуалкой?

      Number of messages: available=1, already imported=0, retrieved=1, refused=0, errors=1, blacklisted=0

      Хотя в опциях (завел через Imap) при заведении ящика могу к нему обратиться и указать какие папки использовать для приема и в какую папку перемещать отработанные заявки. Т.е. по сути верно настроил параметры ящика. В настройках указал что принимать заявки с анонимных источников. Больше никаких настроек не производил пока.
      Как решить ошибку? Что упустил.

      PS
      Изменил на POP и все заработало. Видимо Яндекс через Imap странно как-то работает

      В новых заявках документы отображаются нормально.

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

      Пример команд приведен на базе UNIX-систем — Linux, FreeBSD .

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

      Подготовка

      Перед выполнение действий по обновлению, необходимо создать архивы файлов проекта (чаще всего, в каталоге /var/www) и базы данных. Подробнее статья о резервировании MySQL/MariaDB. Возможно, стоит для эксперимента выполнить пару обновлений на тестовой виртуальной машине.

      Выбирая новую версию GLPI, проверяем, что используемые плагины есть в наличие.

      Загрузка обновления

      Ссылка на скачивание последней версии GLPI

      Воспользовавшись ссылкой, скачиваем ПО.

      * также можно скачать GLPI в обычном браузере и перенести на сервер программой WinSCP.

      Установка обновления

      Далее возможны два варианта:

      1. Обновление поверх существующих файлов. Распаковка портала происходит в уже существующий каталог с GLPI. Плюс: нет необходимости копировать данные с предыдущей папки, минус: не во всех случаях обновления это возможно, например, в случае радикального изменения кода мы получим ошибку при обновлении.
      2. Обновление только базы данных. Распаковываем GLPI в пустой каталог и выполняем установку в режиме обновления базы данных.

      Разберем оба варианта.

      1. Обновление поверх существующих файлов

      Скачанный архив нужно распаковать в каталог с порталом. Определить его можно, посмотрев конфигурацию веб-сервера: в nginx параметр root, в apache — DocumentRoot. Например, если GLPI размещен в каталоге /var/www/glpi, распаковываем архив следующей командой:

      tar -xvzf glpi-*.tgz -C /var/www/glpi --strip-components 1

      Затем переходим на наш портал GLPI — откроется страница обновления. Если возникнут ошибки, устраняем их:

      Пример ошибок при обновлении GLPI

      После появится возможность нажать на кнопку Обновление:

      Кнопка для обновления GLPI в веб-интерфейсе

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

      2. Обновление только базы данных

      Переносим каталог с порталом. Определить его расположение можно посмотрев конфигурацию веб-сервера: в nginx параметр root, в apache — DocumentRoot. Например, если GLPI размещен в каталоге /var/www/glpi, выполняем такую команду:

      mv /var/www/glpi /var/www/back_glpi

      * в данном примере мы переименуем каталог для портала с glpi в back_glpi.

      Создаем новый каталог:

      Распакуем в него скачанный архив:

      tar -xvzf glpi-*.tgz -C /var/www/glpi --strip-components 1

      Зададим владельца для созданного каталога и распакованных файлов:

      chown apache:apache /var/www/glpi

      * как правило, обработка php-скриптов выполняется программами, которые работают от пользователя apache.

      Переходим на наш портал GLPI — откроется страница установки. Выбираем язык установки и нажимаем OK:

      Выбираем язык установки GLPI

      Принимаем лицензионное соглашение - Продолжить и в следующем окне Обновление:

      Выбираем обновление базы GLPI

      Если есть, исправляем ошибки и нажимаем Продолжить:

      Пример ошибок при обновлении GLPI

      Продолжаем обновление

      Прописываем настройки для сервера баз данных:

      Настраиваем соединение с базой данных

      * в данном примере используется локальная СУБД (localhost); glpi — имя пользователя с правами на базу данных.

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

      Ждем обновления базы и после его окончания — Запустить GLPI.

      Запуск GLPI после обновления

      После обновления базы нужно перенести оставшиеся файлы проекта (./files) и плагины (./plugins).

      Обновление плагинов

      Переходим в раздел Настройки - Плагины:

      Список плагинов в GLPI

      Как правило, некоторые плагины перестанут работать и потребуется их обновление. Переходим на страницу загрузки дополнений GLPI и скачиваем подходящую версию нужного плагина. После этого распаковываем архив в каталог с плагинами, переходим на портал GLPI (страницу с плагинами). Кликаем напротив нужного плагина Обновить:

      Читайте также: