OTRS (аббр. от англ. Open-source Ticket Request System) — открытая система обработки заявок. OTRS позволяет организациям, занимающимся технической поддержкой каких-либо проектов, совместно работать над решением проблем пользователей. Программа написана на языке Perl, поддерживает множество СУБД (MySQL, PostgreSQL и т.д.), может интегрироваться с LDAP каталогом, распространяется по лицензии — AGPL версии 3.
OTRS прекрасно и без особых хлопот устанавливается на любой LAMP (Linux, Apache, MySQL, PHP). Но как быть, если нет опыта работы и администрирования Linux?
Четвертая версия OTRS не имеет инсталлятора Windows-версии. Я решил выложить свой способ установки OTRS из исходников в Windows-окружении. Однако, важно понимать, что производительность OTRS, запущенной в родном Linux-окружении, будет выше, чем на аналогичном железе в Windows-окружении.
Самая большая проблема, с которой я столкнулся при установке OTRS – рабочий mod_perl для Apache. К счастью, энтузиасты регулярно выкладывают свежие версии мода под новые версии Perl и Apache.
Итак, нам понадобятся:
• MySQL Server v 5.5 64-bit.
• Apache v 2.2 32-bit.
• Strawberry Perl 5.20.1.1 32-bit.
• Ну и сам mod_perl.
• Планировщик Cron for Windows (опционально).
• Visual C++ 2008 SP1 Redistributable Package (x86).
• Visual C++ 2010 SP1 Redistributable Package (x86).
• Собственно сама OTRS.
Установка Apache HTTP Server
Для работы Apache требует Visual C++ 2008 SP1 Redistributable Package. Качаем по ссылке выше и устанавливаем.
Выкачаем архив с Apache и распаковываем папку apache2 из архива в папку c:/apache2 (по умолчанию ServerRoot расположен по этому пути). Если для Apache Вы выбрали другое расположение, необходимо изменить ServerRoot в httpd.conf, а также расположение Documenroot, Directories, ScriptAlias.
Для установки службы Apache из папки c:\Apache2\bin в командной строке вводим
httpd.exe -k install
Служба успешно установлена.
Запустим файл c:\Apache2\bin\ApacheMonitor.exe и поместим его в автозагрузку. Запустим службу Apache.
В браузере в адресной строке переходим по адресу http://localhost. Если все хорошо, то увидим страничку с текстом «It works!».
Устанавливаем Strawberry Perl
Качаем Strawberry Perl по ссылке выше, распаковываем все в папку c:/strawberry. В командной строке запускаем следующие файлы.
c:\strawberry\relocation.pl.bat
c:\strawberry\update_env.pl.bat
Устанавливаем mod_perl для Apache
Качаем mod_perl. В архиве две папки – с apache и perl. Распаковываем их содержимое с заменой файлов соответственно в папки, где у нас установлены Apache и Perl.
Перезапускаем службу Apache.
Устанавливаем MySQL Server
Качаем и запускаем mysql-5.5.43-winx64.msi. Установка без особенностей.
После завершения установки запускается Мастер Настройки.
Выбираем стандартную конфигурацию.
Задаем название для службы.
Устанавливаем пароль root.
После завершения установки правим файл my.ini.
Для большей производительности в файле c:\Program Files\MySQL\MySQL Server 5.5\my.ini установим значение параметра
query_cache_size=32M
Перезапускаем службу MySQL.
Устанавливаем OTRS
Качаем zip-архив с последней версией OTRS (на момент написания статьи версия 4-0-8) и распаковываем в папку c:\otrs\
Почти все готово.
Устанавливаем необходимые perl-пакеты
Из командной строки из папки c:\otrs\bin запускаем скрипт
perl otrs.CheckModules.pl
Устанавливаем необходимые пакеты. Среди них есть как обязательные (required), так и необязательные (optional). Установим все, кроме Encode::HanExtra.
cpan Crypt::Eksblowfish cpan GD::Text cpan GD::Graph cpan Mail::IMAPClient cpan Net::LDAP cpan PDF::API2
Также мы получаем одну ошибку на пакет DBD::Oracle.
Внутренний перфекционист требует устранения этой ошибки, хоть в данном примере и не используется БД Oracle. Oci.dll – библиотека клиента Oracle. Качаем клиент, устанавливать его не нужно, просто забираем из архива библиотеку Oci.dll и кладем ее в c:\Windows\System32\.
Теперь появляется сообщение о недостающей библиотеке MSVCR100.dll.
Устанавливаем Visual C++ 2010 SP1 Redistributable Package (x86).
Запускаем скрипт еще раз
perl otrs.CheckModules.pl
Все необходимые модули установлены.
Настраиваем OTRS
Вся настройка заключается в изменении пути установки OTRS в конфигурационных файлах.
c:\otrs\scripts\apache2-httpd.include.conf
Меняем это | … на это |
ScriptAlias /otrs/ “/opt/otrs/bin/cgi-bin/” | ScriptAlias /otrs/ “c:/otrs/bin/cgi-bin/” |
Alias /otrs-web/ “/opt/otrs/var/httpd/htdocs/” | Alias /otrs-web/ “c:/otrs/var/httpd/htdocs/” |
Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl | Perlrequire c:/otrs/scripts/apache2-perl-startup.pl |
<Directory “/opt/otrs/bin/cgi-bin/”> | <Directory “c:/otrs/bin/cgi-bin/”> |
<Directory “/opt/otrs/var/httpd/htdocs/”> | <Directory “c:/otrs/var/httpd/htdocs/”> |
<Directory “/opt/otrs/var/httpd/htdocs/skins/*/*/css-cache”> | <Directory “c:/otrs/var/httpd/htdocs/skins/*/*/css-cache”> |
<Directory “/opt/otrs/var/httpd/htdocs/js/js-cache”> | <Directory “c:/otrs/var/httpd/htdocs/js/js-cache”> |
Проще всего сделать поиск/замену для “/opt” на “с:”
c:\otrs\scripts\apache2-perl-startup.pl
Меняем это | … на это |
use lib “/opt/otrs/”; | use lib “c:/otrs/”; |
use lib “/opt/otrs/Kernel/cpan-lib”; | use lib “c:/otrs/Kernel/cpan-lib”; |
use lib “/opt/otrs/Custom”; | use lib “c:/otrs/Custom”; |
c:\otrs\Kernel\Config.pm
Переименовываем файл c:\otrs\Kernel\Config.pm.dist в c:\otrs\Kernel\Config.pm. В текстовом редакторе
Меняем это | … на это |
$Self->{Home} = ‘/opt/otrs'; | $Self->{Home} = ‘c:/otrs'; |
Для ведения логов добавим следующие строки:
$Self->{'LogModule'} = 'Kernel::System::Log::File';
$Self->{'LogModule::LogFile'} = "$Self->{Home}/var/log/otrs.log";
Настраиваем Apache
В папке c:\Apache2\conf\ редактируем файл httpd.conf, добавляем следующие строки:
# указываем апачу где у нас установлен перл
LoadFile “c:/strawberry/perl/bin/perl520.dll”
# load mod_perl
LoadModule perl_module modules/mod_perl.so
# Указываем, куда установлена OTRS
Include “c:/otrs/scripts/apache2-httpd.include.conf”
Убедимся, что с синтаксисом все хорошо. В командной строке из папки c:\Apache2\bin выполняем
httpd –t
Перезапускаем службу Apache.
Если появилась такая ошибка:
Нужно проверить, во всех ли конфигах мы изменили путь инсталляции при настройке OTRS.
Запускаем web-установку
В адресной строке запускаем http://localhost/otrs/installer.pl
Принимаем лицензионное соглашение, выбираем тип базы данных MySQL, вводим пароль от учетной записи root.
При нажатии кнопки проверки настроек БД получаем ошибку. OTRS просит увеличить значение параметра max_allowed_packet.
Добавляем в файл c:\Program Files\MySQL\MySQL Server 5.5\my.ini строку
max_allowed_packet = 20M
Перезапускаем службу MySQL и снова проверяем БД.
Получаем уже другое сообщение.
Параметр innodb_log_file_size отвечает за размер логов MySQL. Останавливаем службу MySQL. В данной версии MySQL логи находятся в папке c:\ProgramData\MySQL\MySQL Server 5.5\data\
Удаляем файлы ib_logfile0 и ib_logfile1. В файле my.ini устанавливаем значение параметра
innodb_log_file_size = 512М
Запускаем службу MySQL. Видим, что файлы ib_logfile0 и ib_logfile1 стали нужного размера.
Вновь нажимаем на кнопку проверки БД. Все получилось. OTRS создал новую учетную запись для новой базы данных OTRS и сгенерировал пароль.
На Шаге 3 предлагается настроить систему и почту. Это можно сделать в любой момент.
Наконец, на Шаге 4 нам генерируется пароль для пользователя root@localhost. Заходим под этой учетной записью.
Настройка планировщика
При входе под агентом мы видим сообщение, что планировщик не запущен. Имеется ввиду внутренняя служба OTRS.
В командной строке выполняем скрипт
c:\otrs\bin\otrs.Scheduler4winInstaller.pl -a install
Затем запускаем службу. Обновляем страницу, видим, что сообщение исчезло, а в оснастке служб появилась новая – OTRS Scheduler.
Теперь нужно настроить работу собственно планировщика. Можно использовать либо Планировщик заданий Windows, либо CRON.
Качаем CRONw и распаковываем в папку c:\cronw. Для корректной работы CRONw нам понадобится установить несколько модулей перл.
В командной строке выполняем:
cpan Date::Manip cpan Log::Dispatch cpan Log::Dispatch::FileRotate
Все задания в CRONw хранятся в специальном файле crontab. Его можно создать, запустив C:/otrs/bin/otrs.Cron4Win32.pl, предварительно его отредактировав следующим образом:
my $PerlExe = «c:/strawberry/perl/bin/perl.exe»;
my $CronTabFile = «c:/cronw/crontab.txt»;
my $OTRSHome = «c:/otrs»;
Запустим скрипт из командной строки:
perl c:\otrs\bin\otrs.Cron4Win32.pl
Скрипт отработал, в папке c:\CRONw\ появился файл crontab.txt.
Установим CRON в качестве службы Windows. В командной строке запускаем скрипт
perl cronHelper.pl –install
Служба установлена. Запускаем ее.
В папке c:/otrs/var/cron/ есть несколько стандартных заданий. По сути данные задания запускают perl-скрипты. Запустим планировщик заданий, меню Действия – Создать задачу.
Откроем в папке c:/otrs/var/cron/ первый файл cache.dist
# delete expired cache weekly (Sunday mornings)
20 0 * * 0 $HOME/bin/otrs.DeleteCache.pl --expired >> /dev/null
30 0 * * 0 $HOME/bin/otrs.LoaderCache.pl -o delete >> /dev/null
Дадим задаче имя — OTRS Weekly. Очистка кэша. Настроим выполнение задачи вне зависимости от регистрации пользователя и с наивысшими правами.
Переходим на вкладку Триггеры, нажимаем на кнопку Создать. Указываем расписание такое же, как нам предлагает OTRS.
Переходим на вкладку Действия, нажимаем кнопку Создать. Действие – Запуск программы. В качестве программы указываем путь до perl.exe, в качестве аргумента – требуемый скрипт с параметрами.
По аналогии создаем Действие для второго скрипта.
Повторяем операцию для всех нужных нам задач. Запускаем каждую задачу вручную, чтобы убедиться, что она выполняется.
На этом все, OTRS готова для дальнейшей настройки.
Если интересно, в будущем будут опубликованы руководства по настройке авторизации через Active Directory и SSO-аутентификация.
Комментарии (19)
dnbdrive
19.05.2015 07:47В свое время уломал руководство на виртуалку с Linux, в итоге все прекрасно работает.
Но мануал будет полезен для того, чтобы развернуть «тестово» 4-ю версию…
А то боевая у нас 3.3 и нужно понять целесообразность обновления…Hesed
19.05.2015 08:46Мы пока тестируем 4-ю версию. Собственно процесс обновления по мануалу прошёл без проблем. Виртуализация облегчает задачу, в случае чего легко вернуться к стабильному состоянию.
Субъективно улучшилось быстродействие, особенно для больших цепочек. Появился поиск по аттачам, что зачастую требовалось. Добавились и расширились возможности по автоматизации и фильтрации (обилие возможностей может поначалу запутать, ибо интерфейс ещё более загружен сейчас). Из минусов — довольно часто выходят патчи (Patch Levels), которые пачками фиксят баги, местами довольно неприятные.
zhavoronok
19.05.2015 08:14+2Тоже используем. Напишите про настройку авторизации через AD, будет очень интересно и думаю, что полезно многим.
Ivan_83
19.05.2015 08:29+1«Но как быть, если нет опыта работы и администрирования Linux?»
— Поставить линукс и приобрести опыт
— Нанять специалиста
И охота было так извращаться, когда накатить «убунту сервер» ума не надо и занимает минут 10 с распитием чая.
Прекрасно живёт в виртуалбоксе.Botkin
19.05.2015 12:48Украл комментарий.
Инструмент под задачи надо выбирать, а не задачи под инструмент
Realpanter
19.05.2015 10:15Я использую OTRS уже года два.
Изначально тоже стоял на Windows, однако, через некоторое время после начала эксплуатации, начал плодить процессы perl по непонятным причинам. В результате перешли на linux, больше проблем, кроме однократной миграции с 3 на 4 не было.
WondeRu
19.05.2015 12:03Количество шагов можно было сократить, установив XAMP.
supersuperoleg Автор
19.05.2015 12:19У XAMP нет mod_perl для апача, сам perl в нем урезанный (необходимые otrs модули не удастся установить), а существующие mod_perl не поддерживают версию апача 2.4.*.
Но вообще, конечно, для всего есть свои костыли, и XAMP можно приспособить для OTRS.
mrMendoza
19.05.2015 18:07Для начала непло.
Если интересно, в будущем будут опубликованы руководства по настройке авторизации через Active Directory и SSO-аутентификация.
Это будет крайне полезно, особенно с SSO, ну и конечно же с разделением пользователей по группам.
amaranth
03.06.2015 09:08Из nix* какая ОС более предпочтительна? Debian, Ubuntu или RHEL?
Hesed
04.06.2015 11:26Исключительно дело вкуса. На нашем продакшене CentOS/RHEL, по заказу развёртывал на Ubuntu. Ни там, ни там проблем не возникло ни с установкой, ни с обновлениями.
amaranth
04.06.2015 14:59Ясно. Для тестов выбрал голый Debian, без x-window. Попробую все запустить. А ITSM прикрутить сложно?
Hesed
05.06.2015 09:38Прикрутить несложно — всё реализовано через пакеты и репозитории. Есть документация на русском. Сложнее вписать работу с ITSM в свои бизнес-процессы и заставить сотрудников пользоваться системой на всю катушку, и этого в документации не найти :)
Sergey-S-Kovalev
10.06.2015 08:22+1Самая первая ошибка внедрения ITSM, ну и как следствие всего ITIL — менять бизнес процессы под «требования».
ITIL отнюдь не требует — он рекомендует, и только там где методику можно натянуть на процесс. Если оно не натягивается, то применять его не следует, поскольку процесс не дорос и не готов.
Так же если ИТ подразделение не заинтересовано в прозрачности своей работы ITSM не внедрится. В итоге на все воля руководителя по ИТ.
Sergey-S-Kovalev
Отличный хэлпдеск, может потребовать немного допиливания, но в общем, на фоне бесплатных конкурентов весьма хорош.
Sergey-S-Kovalev
Впрочем, тем кому не хочется извращений :) настоятельно рекомендую ManageEngine Service Desk.
Бесплатно до 100 одновременно работающих специалистов после ни к чему не обязывающей регистрации.