Система техподдержки

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Система техподдержки

Сообщение RomA »

Зачем это надо:
1) Начальство хочет смотреть как мы работаем.
2) Иногда пользователи звонят и жалуются, говорят что мы ничего не делаем, и нам, кроме как словами, нечем аргументировать в ответ. В итоге, даже если вы и объяснили всё начальнику - осадок всёравно остался и вы на плохом счету.
По мимо этого у каждого на предприятии наверняка есть такой тип людей, которые только и делают что скандалят, прикрывая этим своё безделие на работе.
3) Есть такое выражение, что надо лечить не симптомы болезни, а саму болезнь. За частую, исправляя мелкие косяки, мы не замечаем их причины, так как не видим картины в целом, а ведь можно было потратить время один раз на устранение проблемы и жить спокойно. Концентрация всех поломок в одном месте позволит взглянуть какраз на корень проблемы, сквозь множество мелких поломок

Правовая база:
У каждого из вас на предприятиях должен быть регламент о техподдержки, подписанный директором. Был соответствующий приказ на эту тему от АПК СН

Задача:
Создать систему технической поодержки пользователей.

Теория:
В качестве системы техподдержки было выбрано решение OTRS::ITSM портала http://otrs.org/
Для работы надо что бы
1) у вас был домен и пользователи были в домене
2) у каждого доменного пользователя была ПЕРСОНАЛЬНАЯ почта
3) эта самая персональная почта должна быть заполнена в домене в соответствующем поле

Решение:
Ставим систему

Код: Выделить всё

cd /usr/ports/devel/otrs
make install clean
Когда нас спросят о параметрах - отвечаем мледующее

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                    Options for otrs 3.0.10_1                       │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │        [X] MYSQL            MySQL database support             │ │  
                      │ │        [ ] PGSQL            PostgreSQL database support        │ │  
                      │ │        [X] REPORTS_MODULES  Reports support                    │ │  
                      │ │        [X] SMTP             Send email via SMTP                │ │  
                      │ │        [X] POP3             Fetch email via POP3               │ │  
                      │ │        [X] IMAP             Fetch email via IMAP               │ │  
                      │ │        [X] LDAP             Enable LDAP support                │ │  
                      │ │        [X] PDF              Enable PDF output                  │ │  
                      │ │        [ ] ISPELL           Enable ispell checking             │ │  
                      │ │        [X] ASPELL           Enable aspell checking             │ │  
                      │ │        [ ] GNUPG            Use GnuPG                          │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  
                                                                                              
По пути у меня что-то спрашивали - я всё оставлял по умолчанию, кроме одного раза, когда было предложено выбрать аутентификацию кербирос - так как домена виндового у меня нет, я посчитал данный шаг бессмысленным и снял галочку
Всё поставилось.
Таким образом мы поставили все необходимые перловые модули и рассказали системе, что у нас есть такой пакет - это позволит в последствии безболезнено обновлять фрю.
Итак, в портах версия 3.0.1 а реальная версия 3.0.11. Вообще otrs обновляется очень часто, и обновлять так часто систему смысла нет, потому будем ставить портал руками. Качаем и распаковываем:

Код: Выделить всё

www# fetch http://ftp.otrs.org/pub/otrs/otrs-3.0.11.tar.gz
otrs-3.0.11.tar.gz                            100% of   21 MB 3283 kBps

www# tar -xzf /usr/local/install/otrs-3.0.11.tar.gz 
Теперь это надо куда-то деть... я создал каталог /usr/home/www/support в который и перенёс содержимое архива.
Опытным путём было выявлено что много путей залочены на каталог /opt - что бы не править каждый раз было решено пойти на встречу - создаём каталог opt и делаем там символическую ссылку на ту папку, что мы создали

Код: Выделить всё

www# mkdir /opt
www# ln -s /usr/home/www/support /opt/otrs
Теперь надо подумать как всё это дело будет открываться у нас и прописать в апаче. Я решил, что пользователю для запоминания лучше иметь имя перед глазами, для чего в DNS сделал доменное имя support.stniva.ru - таким образом подразумевается что пользователь будет в браузере набирать http://support.stniva.ru и попадать на портал техподдержки. Как создаются записи в DNS тут я писать не буду - на это есть другая статья.

Теперь наше имя надо прописать в апаче - для этого я в файл /usr/local/etc/apache22/extra/httpd-vhosts.conf дописываю следующие строки

Код: Выделить всё

#
<VirtualHost *:80>
    ServerAdmin admin@stniva.ru
    DocumentRoot /usr/home/www/support/var/httpd/htdocs/
    ServerName support.stniva.ru
    ErrorLog /var/log/httpd/support_stniva_ru-error_log
    CustomLog /var/log/httpd/support_stniva_ru-access_log combined
    
    Include /usr/local/etc/apache22/extra/otrs.conf
     
</VirtualHost>
#
Тут я пробелами выделил строку, на которую следует обратить внимание - в данном конфиге я описал только часть настроек виртуалхоста - остальные я подгружаю из из некого файла /usr/local/etc/apache22/extra/otrs.conf - посмотрим что это за файл - сделал я его вот таким вот образом

Код: Выделить всё

www# cp /usr/home/www/support/scripts/apache2-httpd.include.conf /usr/local/etc/apache22/extra/otrs.conf
Давайте сразу поправим этот файлик - включим ntlm аутоидентификацию пользователей - дя этого в файлик я добавляю следующее

Код: Выделить всё

# directory settings
<Directory "/opt/otrs/bin/cgi-bin/">
     AllowOverride None
     Options +ExecCGI -Includes
      
     AuthType NTLM
     NTLMAuth on
     NTLMAuthoritative on
     NTLMDomain APK
     NTLMServer 192.168.0.11
     Require valid-user
      
     Order allow,deny
     Allow from all
</Directory>
Я привёл с куском оригинального конфига - вставил я только то, что качается NTLM - на форуме уже есть описание как это настраивается и какие модули апача надо поставить - так что подробности там.
А так же в самом конце файла надо закоментировать строку

Код: Выделить всё

# MaxRequestsPerChild 4000
Ну а нам теперь остаётся только перезапустить апач

Код: Выделить всё

www# /usr/local/etc/rc.d/apache22 stop
Stopping apache22.
Waiting for PIDS: 38312.

www# /usr/local/etc/rc.d/apache22 start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
www# 
Теперь можно идти по адресу http://support.stniva.ru/otrs/index.pl и наблюдать приглашение в систему техподдержки :-) - если вы всё сделали правильно, то увидите приглашение - набирайте дефолтовый логин и пароль - и вы в системе! :-)
1.jpg
1.jpg (44.17 КБ) 7021 просмотр
Траблешутинг:
Ну пока вообще то всё без сучка и задоринки )))
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Установка модулей на примере ITSM

Сообщение RomA »

Добавить функционал системе можно при помощи модулей. Первый модуль, который нам очень нужен - это ITSM - на его примере и посмотрим как добавляются расширения.
Скачиваем себе на компьютер нужный нам модуль отсюда http://otrs.org/download/otrs-itsm
прямая ссылка будет выглядеть так http://ftp.otrs.org/pub/otrs/itsm/bundl ... -3.0.5.opm - судя по расширению - это уже готовый пакет, для инсталяции в нашу систему.
Идём в нашу систему техподдержки в раздел Администрирование => Управление пакетами
1.jpg
1.jpg (75.06 КБ) 7021 просмотр
и выбираем пакет, загруженный к нам на компьютер и ставим его.
2.jpg
2.jpg (155.91 КБ) 7021 просмотр
Пакет радостно сообщит что он поставит - жмём продолжить
3.jpg
3.jpg (162.65 КБ) 7021 просмотр
Через некоторое время всё поставится и страничка вернётся на начало, только уже будут видны установленные пакеты
4.jpg
4.jpg (138.11 КБ) 7021 просмотр
Советы:
Не всегда меню пакета сразу отображается - есть пакеты для которых надо зайти и выйти из системы, есть которые надо включить в настройках. Данный же пакем применяется сразу, изменяя ваше меню
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Первоначальная настройка

Сообщение RomA »

Все нужные настройки собраны в разделе Администрирование - там мы и будем копаться

Создание нового пользователя:
Это не тот кто подаёт заявку, а тот кто её исполняет или контролирует
1) Добавляем пового пользователя. Это меню Агенты. Заполняем все поля. Этот тот пользователь, кто будет выполнять заявки.
1.jpg
1.jpg (64.1 КБ) 7021 просмотр
2) Назначаем пользоватлю нужные права
3) Дабавляем его в нужные группы
2.jpg
2.jpg (111.34 КБ) 7021 просмотр
3.jpg
3.jpg (94.15 КБ) 7021 просмотр
Добавление новых групп:
В нашем случае это отделы
Группы - это некое логическое деление заявок. Делается это в меню Группы - там всё ясно и понятно
4.jpg
4.jpg (19.28 КБ) 7021 просмотр
Добавление ролей:
у нас тут специалисты (техники, админы, программисты)
Роли вместе с пользователями и группами создают логическую структуру нашей техподдержки. Добавляются в меню Роли
5.jpg
5.jpg (20.4 КБ) 7021 просмотр
Добавление очередей:
Очереди - это логическое деление, которое видит пользователь. То есть чем понятнее у вас будет название очереди, тем больше вероятность что пользователь положит заявку в ножное место и она попадёт к нужному человеку
1.jpg
1.jpg (57.14 КБ) 7021 просмотр
Клиенты:
Ну и на последок добавим тех, кто может у нас просить помощи. Дабы не заводить их снова, подтянем этот списокчек из домена. В статье выше уже было показано как настроить систему так, что бы пользователи автоматически заходили на страничку техподдержки, авторизовываясь средствами ntlm. Так же не забываем что у пользователей должно быть заполнено поле email, иначе они не смогут войти в систему техподдержки. Пользователи ищатся в меню Клиенты и по звёздочке можно выбрать всех имеющихся пользователей
2.jpg
2.jpg (60.47 КБ) 7021 просмотр
Посли переделки картинка выглядит так
3.jpg
3.jpg (126.11 КБ) 7021 просмотр
Теперь о переделки... как это сделать с вебморды я найти не смог (а ведь где то есть) потому я правил руками файл /usr/home/www/support/Kernel/Config/Defaults.pm но при каждом обновлении он затирался, потому был выделен патч - кто не знает применяется патч такой командой

Код: Выделить всё

 patch ./Defaults.pm < ./ldap.diff 
Листинг файла ldap.diff следующий:

Код: Выделить всё

1422,1425c1413,1416
< #    $Self->{CustomerUser} = {
< #        Name => 'LDAP Backend',
< #        Module => 'Kernel::System::CustomerUser::LDAP',
< #        Params => {
---
>     $Self->{CustomerUser} = {
>         Name => 'LDAP Backend',
>         Module => 'Kernel::System::CustomerUser::LDAP',
>         Params => {
1427c1418
< #            Host => 'bay.csuhayward.edu',
---
>             Host => '192.168.0.5',
1429c1420
< #            BaseDN => 'ou=seas,o=csuh',
---
>             BaseDN => 'ou=users,dc=apk,dc=stniva,dc=ru',
1431c1422
< #            SSCOPE => 'sub',
---
>             SSCOPE => 'sub',
1434,1435c1425,1426
< #            UserDN => '',
< #            UserPw => '',
---
>             UserDN => 'cn=support,dc=apk,dc=stniva,dc=ru',
>             UserPw => 'password',
1438c1429
< #            AlwaysFilter => '',
---
>             AlwaysFilter => '',
1440,1441c1431,1432
< #            SourceCharset => 'utf-8',
< #            DestCharset   => 'utf-8',
---
>             SourceCharset => 'utf-8',
>             DestCharset   => 'utf-8',
1447c1438
< #            Die => 0,
---
>             Die => 0,
1455c1446
< #        },
---
>         },
1457c1448
< #        CustomerKey => 'uid',
---
>         CustomerKey => 'uid',
1459,1466c1450,1457
< #        CustomerID => 'mail',
< #        CustomerUserListFields => ['cn', 'mail'],
< #        CustomerUserSearchFields => ['uid', 'cn', 'mail'],
< #        CustomerUserSearchPrefix => '',
< #        CustomerUserSearchSuffix => '*',
< #        CustomerUserSearchListLimit => 250,
< #        CustomerUserPostMasterSearchFields => ['mail'],
< #        CustomerUserNameFields => ['givenname', 'sn'],
---
>         CustomerID => 'mail',
>         CustomerUserListFields => ['cn', 'mail'],
>         CustomerUserSearchFields => ['uid', 'cn', 'mail'],
>         CustomerUserSearchPrefix => '',
>         CustomerUserSearchSuffix => '*',
>         CustomerUserSearchListLimit => 250,
>         CustomerUserPostMasterSearchFields => ['mail'],
>         CustomerUserNameFields => ['givenname', 'sn'],
1468c1459
< #        CustomerUserExcludePrimaryCustomerID => 0,
---
>         CustomerUserExcludePrimaryCustomerID => 0,
1472c1463
< #        AdminSetPreferences => 0,
---
>         AdminSetPreferences => 0,
1475c1466
< #        Map => [
---
>         Map => [
1479,1483c1470,1474
< #            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
< #            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
< #            [ 'UserLogin',      'Username',   'uid',             1, 1, 'var', '', 0 ],
< #            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
< #            [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
---
>             [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
>             [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
>             [ 'UserLogin',      'Username',   'uid',             1, 1, 'var', '', 0 ],
>             [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
>             [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
1488,1489c1479,1480
< #        ],
< #    };
---
>         ],
>     };

Что вам надо править:
1) Host - ИП Лдап сервера
2) BaseDN - В какой ветке искать пользователей
3) UserDN и UserPw - пользователь и пароль для доступа к лдапу. Обратите внимание что бы у этого пользователя были права на чтение на других пользователей.

Оригинал файла тут
ldap.diff
(3.23 КБ) 823 скачивания
Напомню, что я это всё делал применительно домена на юниксе, настройка которого описана тут на форуме
Ответить