image
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

image

Служба успешно установлена.
Запустим файл c:\Apache2\bin\ApacheMonitor.exe и поместим его в автозагрузку. Запустим службу Apache.

image

В браузере в адресной строке переходим по адресу http://localhost. Если все хорошо, то увидим страничку с текстом «It works!».

image

Устанавливаем Strawberry Perl


Качаем Strawberry Perl по ссылке выше, распаковываем все в папку c:/strawberry. В командной строке запускаем следующие файлы.

c:\strawberry\relocation.pl.bat
c:\strawberry\update_env.pl.bat

image

Устанавливаем mod_perl для Apache


Качаем mod_perl. В архиве две папки – с apache и perl. Распаковываем их содержимое с заменой файлов соответственно в папки, где у нас установлены Apache и Perl.
Перезапускаем службу Apache.

Устанавливаем MySQL Server


Качаем и запускаем mysql-5.5.43-winx64.msi. Установка без особенностей.
После завершения установки запускается Мастер Настройки.

image

Выбираем стандартную конфигурацию.

image

Задаем название для службы.

image

Устанавливаем пароль root.

image

После завершения установки правим файл my.ini.

image

Для большей производительности в файле 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


image

Устанавливаем необходимые пакеты. Среди них есть как обязательные (required), так и необязательные (optional). Установим все, кроме Encode::HanExtra.

cpan Crypt::Eksblowfish

cpan GD::Text

cpan GD::Graph

cpan Mail::IMAPClient

cpan Net::LDAP

cpan PDF::API2


Также мы получаем одну ошибку на пакет DBD::Oracle.

image

Внутренний перфекционист требует устранения этой ошибки, хоть в данном примере и не используется БД Oracle. Oci.dll – библиотека клиента Oracle. Качаем клиент, устанавливать его не нужно, просто забираем из архива библиотеку Oci.dll и кладем ее в c:\Windows\System32\.

Теперь появляется сообщение о недостающей библиотеке MSVCR100.dll.

image

Устанавливаем Visual C++ 2010 SP1 Redistributable Package (x86).

Запускаем скрипт еще раз

perl otrs.CheckModules.pl


image

Все необходимые модули установлены.

Настраиваем 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


image

Перезапускаем службу Apache.

Если появилась такая ошибка:

image

Нужно проверить, во всех ли конфигах мы изменили путь инсталляции при настройке 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 и снова проверяем БД.

image

Получаем уже другое сообщение.

Параметр innodb_log_file_size отвечает за размер логов MySQL. Останавливаем службу MySQL. В данной версии MySQL логи находятся в папке c:\ProgramData\MySQL\MySQL Server 5.5\data\

image

Удаляем файлы ib_logfile0 и ib_logfile1. В файле my.ini устанавливаем значение параметра

innodb_log_file_size = 512М

Запускаем службу MySQL. Видим, что файлы ib_logfile0 и ib_logfile1 стали нужного размера.

Вновь нажимаем на кнопку проверки БД. Все получилось. OTRS создал новую учетную запись для новой базы данных OTRS и сгенерировал пароль.

image

На Шаге 3 предлагается настроить систему и почту. Это можно сделать в любой момент.
Наконец, на Шаге 4 нам генерируется пароль для пользователя root@localhost. Заходим под этой учетной записью.

image

Настройка планировщика


При входе под агентом мы видим сообщение, что планировщик не запущен. Имеется ввиду внутренняя служба OTRS.

В командной строке выполняем скрипт

c:\otrs\bin\otrs.Scheduler4winInstaller.pl -a install


image

Затем запускаем службу. Обновляем страницу, видим, что сообщение исчезло, а в оснастке служб появилась новая – OTRS Scheduler.

Теперь нужно настроить работу собственно планировщика. Можно использовать либо Планировщик заданий Windows, либо CRON.

Настройка CRON
В OTRS нативно используется планировщик 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»;

image

Запустим скрипт из командной строки:

perl c:\otrs\bin\otrs.Cron4Win32.pl


Скрипт отработал, в папке c:\CRONw\ появился файл crontab.txt.

Установим CRON в качестве службы Windows. В командной строке запускаем скрипт

perl cronHelper.pl –install


image

Служба установлена. Запускаем ее.

Настройка планировщика заданий Windows
Раз уж мы взялись устанавливать OTRS в Windows-окружении, то и планировщик можно использовать местный.

В папке 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. Очистка кэша. Настроим выполнение задачи вне зависимости от регистрации пользователя и с наивысшими правами.

image

Переходим на вкладку Триггеры, нажимаем на кнопку Создать. Указываем расписание такое же, как нам предлагает OTRS.

image

Переходим на вкладку Действия, нажимаем кнопку Создать. Действие – Запуск программы. В качестве программы указываем путь до perl.exe, в качестве аргумента – требуемый скрипт с параметрами.

image

По аналогии создаем Действие для второго скрипта.

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


На этом все, OTRS готова для дальнейшей настройки.

Если интересно, в будущем будут опубликованы руководства по настройке авторизации через Active Directory и SSO-аутентификация.

Комментарии (19)


  1. Sergey-S-Kovalev
    19.05.2015 06:01
    +2

    Отличный хэлпдеск, может потребовать немного допиливания, но в общем, на фоне бесплатных конкурентов весьма хорош.


    1. Sergey-S-Kovalev
      19.05.2015 14:03
      +1

      Впрочем, тем кому не хочется извращений :) настоятельно рекомендую ManageEngine Service Desk.
      Бесплатно до 100 одновременно работающих специалистов после ни к чему не обязывающей регистрации.


  1. dnbdrive
    19.05.2015 07:47

    В свое время уломал руководство на виртуалку с Linux, в итоге все прекрасно работает.
    Но мануал будет полезен для того, чтобы развернуть «тестово» 4-ю версию…
    А то боевая у нас 3.3 и нужно понять целесообразность обновления…


    1. Hesed
      19.05.2015 08:46

      Мы пока тестируем 4-ю версию. Собственно процесс обновления по мануалу прошёл без проблем. Виртуализация облегчает задачу, в случае чего легко вернуться к стабильному состоянию.
      Субъективно улучшилось быстродействие, особенно для больших цепочек. Появился поиск по аттачам, что зачастую требовалось. Добавились и расширились возможности по автоматизации и фильтрации (обилие возможностей может поначалу запутать, ибо интерфейс ещё более загружен сейчас). Из минусов — довольно часто выходят патчи (Patch Levels), которые пачками фиксят баги, местами довольно неприятные.


      1. dnbdrive
        19.05.2015 12:04

        Вот из-за этого минуса я и не спешу с обновлением…


  1. zhavoronok
    19.05.2015 08:14
    +2

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


  1. Ivan_83
    19.05.2015 08:29
    +1

    «Но как быть, если нет опыта работы и администрирования Linux?»
    — Поставить линукс и приобрести опыт
    — Нанять специалиста

    И охота было так извращаться, когда накатить «убунту сервер» ума не надо и занимает минут 10 с распитием чая.
    Прекрасно живёт в виртуалбоксе.


    1. Botkin
      19.05.2015 12:48

      Украл комментарий.
      Инструмент под задачи надо выбирать, а не задачи под инструмент


  1. ivan-vovanych
    19.05.2015 09:50

    Перед всем этим надо было выполнить древний индейский ритуал.


  1. Realpanter
    19.05.2015 10:15

    Я использую OTRS уже года два.
    Изначально тоже стоял на Windows, однако, через некоторое время после начала эксплуатации, начал плодить процессы perl по непонятным причинам. В результате перешли на linux, больше проблем, кроме однократной миграции с 3 на 4 не было.


  1. WondeRu
    19.05.2015 12:03

    Количество шагов можно было сократить, установив XAMP.


    1. supersuperoleg Автор
      19.05.2015 12:19

      У XAMP нет mod_perl для апача, сам perl в нем урезанный (необходимые otrs модули не удастся установить), а существующие mod_perl не поддерживают версию апача 2.4.*.
      Но вообще, конечно, для всего есть свои костыли, и XAMP можно приспособить для OTRS.


  1. SantaClaus16
    19.05.2015 12:43
    +1

    Месье знает толк в извpащениях


  1. mrMendoza
    19.05.2015 18:07

    Для начала непло.

    Если интересно, в будущем будут опубликованы руководства по настройке авторизации через Active Directory и SSO-аутентификация.
    Это будет крайне полезно, особенно с SSO, ну и конечно же с разделением пользователей по группам.


  1. amaranth
    03.06.2015 09:08

    Из nix* какая ОС более предпочтительна? Debian, Ubuntu или RHEL?


    1. Hesed
      04.06.2015 11:26

      Исключительно дело вкуса. На нашем продакшене CentOS/RHEL, по заказу развёртывал на Ubuntu. Ни там, ни там проблем не возникло ни с установкой, ни с обновлениями.


      1. amaranth
        04.06.2015 14:59

        Ясно. Для тестов выбрал голый Debian, без x-window. Попробую все запустить. А ITSM прикрутить сложно?


        1. Hesed
          05.06.2015 09:38

          Прикрутить несложно — всё реализовано через пакеты и репозитории. Есть документация на русском. Сложнее вписать работу с ITSM в свои бизнес-процессы и заставить сотрудников пользоваться системой на всю катушку, и этого в документации не найти :)


          1. Sergey-S-Kovalev
            10.06.2015 08:22
            +1

            Самая первая ошибка внедрения ITSM, ну и как следствие всего ITIL — менять бизнес процессы под «требования».
            ITIL отнюдь не требует — он рекомендует, и только там где методику можно натянуть на процесс. Если оно не натягивается, то применять его не следует, поскольку процесс не дорос и не готов.

            Так же если ИТ подразделение не заинтересовано в прозрачности своей работы ITSM не внедрится. В итоге на все воля руководителя по ИТ.