Инструменты пользователя

Инструменты сайта


service:glpi

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:glpi [02.07.2018 11:01] – [Полезные команды] viacheslavservice:glpi [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== GLPI ======
 +GLPI является системой работы с заявками и инцидентами, а также для инвентаризации компьютерного оборудования (компьютеры, программное обеспечение, принтеры и прочее), также имеет расширенные функции, такие как работа системы отслеживания почты с уведомлением и т. д. https://ru.wikipedia.org/wiki/GLPI
  
 +===== Установка =====
 +Показано на примере Ubuntu server 16.03 LTS + LAMP + SSH server.
 +<code bash>
 +sudo -i
 +# Статический IP
 +nano /etc/network/interfaces
 +</code>
 +<code>
 +auto eth0
 +iface eth0 inet static
 +address 192.168.2.32
 +netmask 255.255.252.0
 +gateway 192.168.0.254
 +dns-nameservers 192.168.2.5 192.168.2.2 192.168.2.10
 +</code>
 +
 +<code bash>
 +# Необходимые компоненты
 +apt-get install php-ldap php-imap php-apcu php-xml php-xmlrpc php-mbstring php-curl php-gd php-cli
 +# Скачать
 +wget https://github.com/glpi-project/glpi/releases/download/9.2.1/glpi-9.2.1.tgz
 +# Распаковать дистрибутив
 +tar xzf glpi-9.2.1.tgz --strip=1 -C /var/www/html
 +# Дать права веб-серверу
 +chown -R www-data:www-data /var/www/html
 +# Прописать в Апаче AllowOverride All в секции /var/www
 +nano /etc/apache2/apache2.conf
 +AllowOverride All
 +# Перезапуск Апача
 +systemctl restart apache2
 +# Можно ещё сделать базу заранее:
 +mysql -u root -p -e "create database glpi";
 +# После этого зайти на веб-интерфейс и пройти мастер настройки
 +# Стандартный логин и пароль - glpi
 +# После успешной установки стереть install/install.php
 +rm /var/www/html/install/install.php
 +</code>
 +
 +==== Особенности обновления ====
 +Бывают проблемы, если обновлять старый дистрибутив сразу на самую новую версию. Лучше всего обновлять последовательно. Например версию 0.90.2 получилось обновить так: glpi-0.90.5.tar.gz -> glpi-9.1.tar.gz -> glpi-9.1.1.tgz -> glpi-9.1.2.tgz -> glpi-9.1.3.tgz -> glpi-9.1.4.tgz -> glpi-9.1.5.tgz -> glpi-9.1.6.tgz -> glpi-9.1.7.1.tgz -> glpi-9.2.1.tgz (ругнётся, что 9.1.7.1 несовместимая версия, но всё равно обновится).
 +
 +С плагином редактора форм та же песня - обновление было с версии 0.90-1.3:
 +<code bash>
 +wget https://github.com/pluginsGLPI/formcreator/releases/download/2.4.0/glpi-formcreator-2.4.0.tar.bz2
 +tar xjf glpi-formcreator-2.4.0.tar.bz2 -C /var/www/html/plugins
 +# после этого обновить плагин в веб-интерфейсе
 +wget https://github.com/pluginsGLPI/formcreator/releases/download/2.5.0/glpi-formcreator-2.5.0.tar.bz2
 +tar xjf glpi-formcreator-2.5.0.tar.bz2 -C /var/www/html/plugins
 +# после этого обновить плагин в веб-интерфейсе
 +wget https://github.com/pluginsGLPI/formcreator/releases/download/2.6.0/glpi-formcreator-2.6.0.tar.bz2
 +tar xjf glpi-formcreator-2.6.0.tar.bz2 -C /var/www/html/plugins
 +# после этого обновить плагин в веб-интерфейсе
 +</code>
 +===== Инвентаризация =====
 +==== Fusion Inventory ====
 +<code bash>
 +wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.2%2B1.0/glpi-fusioninventory-9.2.1.0.tar.bz2
 +tar xjf glpi-fusioninventory-9.2.1.0.tar.bz2 -C /var/www/html/plugins
 +</code>
 +Настройки - Дополнения, установить плагин в систему
 +
 +Администрирование -> Организации -> Root Entity -> вкладка FusionInventory, ввести URL:\\
 +http://glpi
 +
 +=== Агенты ===
 +[[https://github.com/fusioninventory/fusioninventory-agent/releases|Скачать]]\\
 +[[http://fusioninventory.org/documentation/agent/installation/windows/|Инструкция по установке (Windows)]]\\
 +[[http://fusioninventory.org/documentation/agent/installation/linux/deb.html|Инструкция по установке (Debian & Ubuntu)]]
 +
 +Примерный набор ключей для тихой установки на Windows:
 +<code dos>
 +fusioninventory-agent_windows-x64_2.3.21.exe /acceptlicense /add-firewall-exception /execmode=service /no-httpd /no-ssl-check /server='http://glpi/plugins/fusioninventory' /S /runnow
 +</code>
 +
 +=== Настройка Cron ===
 +Настройки -> Автоматические задания -> выделить нужные (или все) -> изменить способ выполнения на CLI
 +
 +Run the [[http://fusioninventory.org/documentation/fi4g/cron.html|GLPI crontab]]:
 +<code bash>
 +crontab -u www-data -e
 +# Добавить
 +* * * * * /usr/bin/php /var/www/html/front/cron.php &>/dev/null
 +
 +# или
 +echo '* * * * * www-data /usr/bin/php /var/www/html/front/cron.php &>/dev/null' >> /etc/crontab
 +</code>
 +
 +=== Инвентаризация SNMP ===
 +Установить агента на сервер GLPI (или на ту машину, которая будет опрашивать устройства по SNMP)
 +<code bash>
 +# Зависимости для fusioninventory-agent
 +apt-get -y install dmidecode hwdata ucf hdparm perl libuniversal-require-perl libwww-perl libparse-edid-perl libproc-daemon-perl  libproc-pid-file-perl libfile-which-perl libxml-treepp-perl libyaml-perl libnet-cups-perl libnet-ip-perl libdigest-sha-perl libsocket-getaddrinfo-perl libtext-template-perl
 +# Зависимости для fusioninventory-agent-task-network
 +apt-get -y install nmap libnet-snmp-perl libcrypt-des-perl libnet-nbname-perl
 +# Скачать
 +wget http://debian.fusioninventory.org/downloads/fusioninventory-agent_2.3.21-2_all.deb
 +wget http://debian.fusioninventory.org/downloads/fusioninventory-agent-task-network_2.3.21-2_all.deb
 +# Установить
 +dpkg -i fusioninventory-agent_2.3.21-2_all.deb
 +dpkg -i fusioninventory-agent-task-network_2.3.21-2_all.deb
 +# Настроить путь к серверу (к плагину FusionInventory):
 +nano /etc/fusioninventory/agent.cfg
 +# Запустить агента:
 +systemctl restart fusioninventory-agent
 +# или перечитать конфигурацию:
 +systemctl reload fusioninventory-agent
 +</code>
 +
 +Создать диапазон IP: Сеть -> Диапазоны IP адресов, затем там же - Add a SNMP authentication, добавить обе версии SNMP, v1 и v2c.
 +
 +Зайти в свойства агента, который будет собирать информацию по SNMP, включить у него модули "сетевое обнаружение" и "сетевая инвентаризация SNMP". Можно также включить эту функцию у всех агентов.
 +
 +Сделать задачу сетевого обнаружения (Задачи -> Управление задачами). Пометить активной, старт в текущее время, Интервал пробуждения агента - 5 мин. Добавить задание: модуль метода - сетевое обнаружение, в цели добавить диапазоны, созданные ранее, в исполнители - агента, который будет работать с SNMP.
 +
 +Сделать задачу сетевой инвентаризации (Задачи -> Управление задачами). Всё то же самое, что и в задаче обнаружения, только модуль метода - сетевая инвентаризация (SNMP).
 +
 +<WRAP round tip 100%>
 +Если какие-то принтеры не импортируются, то может быть полезным выключить правило импорта Printer constraint (name), так как некоторые принтеры (например, Kyocera, Sharp, Konica Minolta) имеют пустое имя.
 +
 +В общих настройках имеет смысл заблокировать местоположение (в принтере зачастую нельзя по-русски написать и это сбивает то, что уже есть в GLPI) и название (если принтеры уже есть в GLPI и тогда при импорте названия могут затереться по причине, указанной выше).
 +</WRAP>
 +
 +==== OCS inventory ====
 +<WRAP round important 100%>
 +Здесь описана старая версия, и вообще рекомендуется использовать FusionInventory
 +</WRAP>
 +
 +<code bash>
 +# Зависимости
 +sudo apt-get install php-imap php-ldap make libapache-dbi-perl libxml-simple-perl libnet-ip-perl libsoap-lite-perl php-soap libphp-pclzip php-gd
 +# Модули Perl
 +cpan -i XML::Entities
 +cpan -i Compress::Zlib 
 +# Скачать
 +wget https://launchpad.net/ocsinventory-server/stable-2.1/2.1.1/+download/OCSNG_UNIX_SERVER-2.1.1.tar.gz
 +# Распаковать и установить
 +tar -zxvf OCSNG_UNIX_SERVER-2.1.1.tar.gz
 +cd OCSNG_UNIX_SERVER-2.1.1
 +./setup.sh
 +
 +# Where is Apache main configuration file [] ?
 +/etc/apache2/apache2.conf
 +
 +# Where is Apache Include configuration directory [] ?
 +/etc/apache2/sites-available
 +
 +nano /etc/apache2/sites-available/000-default.conf
 +#add the line just above the closing "" directive.
 +Alias /ocsreports /usr/share/ocsinventory-reports
 +
 +service apache2 restart
 +</code>
 +
 +=== Удаление агента с клиентских машин ===
 +<code dos>
 +IF EXIST "%programfiles(x86)%\OCS Inventory Agent\uninst.exe" (
 +"%programfiles(x86)%\OCS Inventory Agent\uninst.exe" /s
 +)
 +IF EXIST "%programfiles%\OCS Inventory Agent\uninst.exe" (
 +"%programfiles%\OCS Inventory Agent\uninst.exe" /s
 +)
 +</code>
 +
 +
 +===== Решение проблем =====
 +==== Table 'glpi.glpi_logs' doesn't exist ====
 +При обновлении версии GLPI идёт ругань примерно такого вида:
 +<WRAP box 100%>
 +9.3 migrate Ticket solution history - Ошибка во время запроса базы данных: REPLACE INTO `glpi_itilsolutions` (itemtype, items_id, date_creation, users_id, user_name, solutiontypes_id, content, status, date_approval) SELECT 'Ticket' AS itemtype, ticket.`id` AS items_id, ticket.`solvedate` AS date_creation, IF(log.user_name REGEXP '[(][0-9]+[)]$', SUBSTRING_INDEX(SUBSTRING_INDEX(log.`user_name`, '(', -1), ')', 1), 0) AS users_id, IF(log.user_name REGEXP '[(][0-9]+[)]$', NULL, log.`user_name`) AS user_name, ticket.`solutiontypes_id` AS solutiontypes_id, ticket.`solution` AS content, (CASE WHEN ticket.status = 6 THEN 3 -- if CLOSED, ACCEPTED WHEN ticket.status = 5 THEN 2 -- if SOLVED, WAITING WHEN ticket.status <= 4 THEN 4 -- if INCOMING|ASSIGNED|PLANNED, REFUSED ELSE 1 -- else NONE END) AS status, ticket.`closedate` AS date_approval FROM glpi_tickets AS ticket LEFT JOIN `glpi_logs` AS log ON log.`itemtype` = 'Ticket' AND log.`items_id` = ticket.`id` AND log.`id_search_option` = 24 WHERE LENGTH(ticket.`solution`) > 0 GROUP BY ticket.`id` ORDER BY ticket.`id` ASC, log.id DESC - Ошибка - Table 'glpi.glpi_logs' doesn't exist
 +</WRAP>
 +
 +Решение: создать таблицу glpi_logs заново, и затем снова запустить обновление:
 +<code mysql>
 +# DROP TABLE IF EXISTS `glpi_logs`;
 +CREATE TABLE `glpi_logs` (
 +  `id` int(11) NOT NULL AUTO_INCREMENT,
 +  `itemtype` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
 +  `items_id` int(11) NOT NULL DEFAULT '0',
 +  `itemtype_link` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
 +  `linked_action` int(11) NOT NULL DEFAULT '0' COMMENT 'see define.php HISTORY_* constant',
 +  `user_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 +  `date_mod` datetime DEFAULT NULL,
 +  `id_search_option` int(11) NOT NULL DEFAULT '0' COMMENT 'see search.constant.php for value',
 +  `old_value` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 +  `new_value` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 +  PRIMARY KEY (`id`),
 +  KEY `date_mod` (`date_mod`),
 +  KEY `itemtype_link` (`itemtype_link`),
 +  KEY `item` (`itemtype`,`items_id`),
 +  KEY `id_search_option` (`id_search_option`)
 +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
 +</code>
 +https://github.com/glpi-project/glpi/blob/9.3/bugfixes/install/mysql/glpi-empty.sql#L4255
 +
 +==== N tables not migrated to InnoDB engine ====
 +После входа в GLPI показывается сообщение типа
 +<code>
 +355 tables not migrated to InnoDB engine.
 +</code>
 +Решение: выполнить скрипт
 +<code bash>
 +php /var/www/html/scripts/innodb_migration.php
 +</code>
 +
 +===== Полезные команды =====
 +<code bash>
 +# Ремонт базы:
 +mysqlcheck -u root -p1111111 -r --databases glpi
 +# Проверка базы:
 +mysqlcheck -u root -p1111111 -c --databases glpi
 +# Бэкап базы:
 +mysqldump -u root -p glpi > /usr/share/glpi/_files/dumps/$ (date +%Y-%m-%d).glpi.backup.sql
 +# Восстановление базы:
 +mysql -u root -p glpi < /usr/share/glpi/files/_dumps/glpi-backup.sql
 +</code>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki