На кофе

Вход

Cистема работы с заявками и инцидентами и инвентаризация оборудования GLPI на Astra Linux 1.8

Поделиться статьей

GLPI — аббревиатура для Gestionnaire libre de parc informatique (Свободный менеджер ИТ-инфраструктуры), является системой работы с заявками и инцидентами, а также для инвентаризации компьютерного оборудования (компьютеры, программное обеспечение, принтеры и т.д.). Имеет расширенные функции, такие как работа системы отслеживания почты с уведомлением и методы, для создания базы данных с основной информацией о топологии сети.

GLPI это веб-приложение, разрабатывающееся на PHP. GLPI включает возможности:

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

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

Интеграция GLPI и Zabbix

Предварительные настройки

1. В терминале (Alt+t) переходим под root

sudo su

Установим необходимые для работы пакеты

sudo apt -y install gnupg wget tar chrony apt-transport-https ca-certificates

2. Добавим репозиторий Astra Linux 1.8:

cat << EOF > /etc/apt/sources.list

deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free non-free-firmware

deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware

EOF

Подразумеваем, что изначально ОС Astra Linux обновлена, если нет, то выполняем

apt update

astra-update -r -A -T

После обновления перегружаемся по требованию

sudo reboot

Удалим устаревшие и неиспользуемые пакеты:

sudo apt autoremove -fy

3. Вначале установим имя хоста системы на доменное имя (FQDN), которое мы будем использовать

hostnamectl set-hostname glpi.entnet.ru

4. В файл hosts добавим имя хоста:

Определим ip адрес:

ifconfig | grep "inet" | grep "broadcast" |  awk '{print $2}'

Отредактируем /etc/hosts:

mcedit /etc/hosts

Установим имя нашего сервера в файле конфигурации hosts:

192.168.1.XXX   glpi.entnet.ru      glpi  

где 192.168.1.XXX — IP-адрес нашего сервера; glpi — имя сервера; entnet.ru — наш домен, если используется.

5. Установка необходимых пакетов

apt install mariadb-server mariadb-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-zip php-bz2 php-intl php-apcu -fy

6. Включим сервисы вебсервера и базы данных

sudo systemctl enable apache2.service --now

sudo systemctl enable mariadb.service --now

7. Установим пакет для синхронизации времени:

apt install chrony

Задаем часовой пояс:

timedatectl set-timezone Europe/Moscow

8. Настроим параметры безопасности нашей БД:

sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
     SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): enter
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

9. Теперь нам необходимо создать базу данных.

Создадим ее с названием glpi для пользователя glpi и с паролем entnet:

# sudo mysql

MariaDB [(none)]> CREATE DATABASE glpi;
MariaDB [(none)]> CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'entnet';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;

10. Закачаем содержимое веб-приложения от разработчика.

wget -O /tmp/glpi.tgz https://github.com/glpi-project/glpi/releases/download/10.0.17/glpi-10.0.17.tgz

Распакуем

tar -C /var/www/html -zxvf /tmp/glpi.tgz

Присвоим владельца папке с приложением

chown -R www-data:www-data /var/www/html/glpi

11. Настройка веб приложения.

Сначала выключим режим режим Astra 

sudo echo "AstraMode off" >> /etc/apache2/apache2.conf

12. Поднастроим параметры php

mcedit /etc/php/8.2/apache2/php.ini

Заменим в нем значения пяти параметров:
max_execution_time = 120
memory_limit = 512M
post_max_size = 80M
upload_max_filesize = 80M
session.cookie_httponly = on

Создадим и отредактируем файл конфигурации сайта в настройках веб сервера

mcedit /etc/apache2/sites-available/glpi.conf

<VirtualHost *:80>
    ServerName glpi.entnet.ru
    DocumentRoot /var/www/html/glpi/public
    # If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
    # you can use an Alias directive. If you do this, the DocumentRoot directive MUST NOT target the GLPI directory itself.
    # Alias "/glpi" "/var/www/html/glpi/public"
    <Directory /var/www/html/glpi/public>
        Require all granted
        RewriteEngine On
        # Ensure authorization headers are passed to PHP.
        # Some Apache configurations may filter them and break usage of API, CalDAV, ...
        RewriteCond %{HTTP:Authorization} ^(.+)$
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
        # Redirect all requests to GLPI router, unless file exists.
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>

Естественно, перезагрузим веб-сервер и сервер базы данных:

systemctl restart mysql apache2

13. Включаем модуль rewritel для нашего вновь созданного сайта GLPI и включаем веб-сервер:

sudo a2enmod rewrite
sudo a2ensite glpi.conf

отключим сайт по умолчанию и перезапустим базу данных и веб-приложение:

sudo a2dissite 000-default.conf
sudo systemctl restart apache2

Ну вот и готово, Вы можете перейти на страницу GLPI по указанному в файле конфигурации адресу (в нашем случае glpi.entnet.ru), и начать установку движка по образцу на следующих картинках:

xdg-open http://glpi.entnet.ru

Сначала нас встречает окно выбора локализации:

 

Затем мы соглашаемся с лицензией:

 

Начинаем процесс новой установки:

 

Первый этап - это система заявляет нам о готовности к установке

 

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

 

Ждем сообщения об успешном соединении приложения с сервером БД, выбираем созданную нами уже в п.9 базу данных (по желанию можете создать новую):

 

Ожидаем инициализации БД

 

Ждем такого получения сообщения об успешной инициализации БД:

 

На Ваш выбор, отправлять или не отправлять статистику использования:

 

Также Вы можете оформить предложенную платную подписку по ссылке, указанной в следующем окне:

 

Ну, в целом, если мы дошли до следующего окна - можно считать, что установка завершена, о чем Вам и сообщет итогове окно установщика:

На всякий случай:

glpi/glpi для учётной записи администратора

tech/tech для технической учётной записи

normal/normal для обычной учётной записи

post-only/postonly только для подачи заявок

 

В итоге, после нажатия на кнопку "Запустить GLPI", Вас встречает окно авторизации:

 

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

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

 

В терминале удаляем вышеуказанный файл командой 

rm /var/www/html/glpi/install/install.php

Заменяем штатные пароли, и вот - главное окно встречает нас:


Далее установим плагин инвентаризации

Скачаем его у производителя:

wget -O /tmp/glpi-glpiinventory-1.4.0.tar.bz2 https://github.com/glpi-project/glpi-inventory-plugin/releases/download/1.4.0/glpi-glpiinventory-1.4.0.tar.bz2

Распакуем в каталог plugins нашего веб-приложения GLPI

tar -C /var/www/html/glpi/plugins -xvjf /tmp/glpi-glpiinventory-1.4.0.tar.bz2

Ну и, конечно же, назначим каталогу владельца

chown -R www-data:www-data /var/www/html/glpi/plugins

Затем перезапустим веб-сервер и перейдем в раздел Настройки -> Плагины и видим там в списке наш плагин инвентаризации.

Нам необходимо его установить, для этого жмем на папку с плюсиком и устанавливаем:

Несколько секунд видим в окне прогресс установки:

Затем видим, что плагин установлен, но не включен:

Конечно же включаем и получаем подтверждение:

 

Кроме того, нам, собственно, нужно включить саму инвентаризацию, для этого переходим в раздел Администрирование -> Оборудование:


Установка Агента GLPI на ноды.

GLPI Agent для Linux

Скачиваем приложение Appimage

wget -O /tmp/glpi-agent-1.7-x86_64.AppImage  https://github.com/glpi-project/glpi-agent/releases/download/1.7/glpi-agent-1.7-x86_64.AppImage

Задаем файлу права на исполнение:

chmod +x /tmp/glpi-agent-1.7-x86_64.AppImage

Устанавливаем агента, указав путь к плагину на сервере: 

sudo /tmp/glpi-agent-1.7-x86_64.AppImage --install --server http://glpi.entnet.ru/plugins/glpiinventory/

Проверяем сервер в файле конфигурации агента, должно быть так:

mcedit /etc/glpi-agent/conf.d/00-install.cfg

server = http://glpi.entnet.ru/plugins/glpiinventory/

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

delaytime = 5

Перезапустим службу агента на ноде:

systemctl restart glpi-agent

И ожидаем появления в панели управления GLPI

GLPI Agent для Windows:

Скачиваем тут

Как устанавливать и настраивать, там интуитивно понятно.

Единственное, сервер также рекомендую указать в виде http://glpi.entnet.ru/plugins/glpiinventory/


 

В целом, мы протестировали на 2 машинах, получилось пока вот как-то так:

 

Это только верхушка надводной части айсберга. 

 

Если Вам понравилась статья, Вы можете отблагодарить автора донатом