First_configuration.rst 31.9 KB
Newer Older
1 2 3
Первичные настройки
=================================

4 5 6
Для общей работоспособности
---------------------------------

Elizaveta Kakhovskaya's avatar
Elizaveta Kakhovskaya committed
7
В подсистеме администрирования:
8
    * обновить БД
9
    * завести пользователей и орг.структуру (Либо настроить синхронизацию с AD), в которой будут:
10 11 12 13 14 15 16 17 18
        * Системный пользователь (создается до установки Synergy ITSM, должен быть назначен на должность)
        * Инициаторы обращений
        * Операторы Первой линии
        * Исполнители Второй линии (Количество уровней исполнения можно увеличить).
    * Добавить пользователей в группы:
        * Первая линия - всех операторов первой линии
        * Вторая линия - всех исполнителей второй линии
        * itsm_group_reassign_access - Пользователи, которым предоставляется доступ к Переназначению обращений, находящихся на исполнении.
        * itsm_group_admin - Администраторы и системный пользователь.
19
        * itsm_group_button_rfc - пользователи, для которых доступна кнопка "Запрос на изменение" для создания запросов из обращений.  
20
        * itsm_group_priority_change - пользователи с доступом на смену приоритета обращения
Elizaveta Kakhovskaya's avatar
Elizaveta Kakhovskaya committed
21

22

23
*Примечание*. Обязательно необходимо добавить системного пользователя в группу itsm_group_admin. 
Elizaveta Kakhovskaya's avatar
Elizaveta Kakhovskaya committed
24 25

В Конфигураторе:
26

27
1. В справочник Форм завершения добавить новые формы завершения для обращения, проблемы, запроса на изменение и изменения, базы знаний следующим образом:
28

29 30
ФЗ инцидента: код **itsm_completion_form_new**

31
.. figure:: _static/Configurator_wcf.png
32 33

        Рис. 
34

35
ФЗ проблемы: код **itsm_problem_completion_form_new**
36 37 38 39

.. figure:: _static/Configurator_wcf_problem.png

        Рис. 
40

41 42
ФЗ запроса на изменение: код **itsm_rfc_completion_form_new**

43 44 45 46
.. figure:: _static/Configurator_wcf_rfc.png

        Рис. 

47 48
ФЗ изменения: код **itsm_change_completion_new**

49 50 51
.. figure:: _static/Configurator_wcf_change.png

        Рис. 
52
        
53 54
ФЗ базы знаний: код **itsm_knowledgebase_completion_new**

55 56 57 58 59 60
.. figure:: _static/knowledgebase_completion.jpg

        Рис. 
        
        

61 62 63 64
А также добавить форму завершения без подтверждения:

.. figure:: _static/completion_form.png

65

66
2. На формах:
67
    * в форме “Обращение” вставить значения оператора, исполнителя, системного пользователя по умолчанию
68 69 70
    * в форме “Проблема” вставить значения ответственного менеджера, исполнителя, системного пользователя по умолчанию
    * в форме “Изменение” вставить значение ответственного за координацию изменений в ИТ/администратора системы, владельца БП, ответственного за релиз, бизнес-аналитика, разработчика, тестировщика, системного пользователя по умолчанию
    * в форме "Запрос на изменение RFC" вставить значение ответственного за координацию изменений в ИТ/администратора системы, CAB, системного пользователя по умолчанию
71
    
72
3. Проверить/уточнить права на реестры, а также на фильтры реестров для правильного отображения на АРМ. Обязательно для пользователей, которые подают на портале обращения, дать права на реестр Обращения.
73

74
4. Сбросить значения счетчиков, либо при необходимости создать свои шаблоны номеров для идентификаторов и применить их в соответствующих формах
75

76
5. Прописать логин/пароль системного пользователя для всех скриптов Блокирующих процессов.
Elizaveta Kakhovskaya's avatar
Elizaveta Kakhovskaya committed
77

78
6. Для реестра "Заявка на права доступа" в маршруте активации для работы "Прошу назначить права доступа" указать требуемого ответственного.
79

80
7. Для реестра "База знаний" в маршруте активации для согласования "Прошу согласовать" указать требуемого ответственного.
81

82
8. Для внешнего модуля "Связи конфигурацинных единиц" указать группы доступа.
83

84

85

86
В пользовательской части:
87

88
1. Создать и заполнить одну запись в реестре “Настройки портала” и после этого для всех групп закрыть доступ на создание и удаление в этом реестре (необходимо для корректной работы портала):
89

90 91
.. figure:: _static/portal_settings.png

92
2. Создать и заполнить хотя бы одну запись реестра "Сервисы" для возможности запуска обращения по маршруту.
93

94
3. Для отправки уведомлений из системы настроить в системе администрирования "Настройки уведомлений", это описано в следующей главе "Настройка интеграции с почтой". Нужно создать одну запись реестра "Настройки уведомлений" и проверить, что уведомление к статусу "Ожидает ответа пользователя" (код 4) содержит в тексте `#>Описание:`.
95

96 97 98 99 100
4. Для настройки универсальных уведомлений создать и заполнить одну запись в реестре "Универсальные уведомления": указать код реестра, код поля (полей) пользователей/групп, на email'ы которых нужно отправить уведомления, а также тему и текст уведомления. В соответствующее место маршрута необходимо поставить блок-процесс `event.blocking.interpreter.notifications`.

.. figure:: _static/universal_notifications.png

5. Для работы АРМ необходимо создать одну запись реестра "Настройки АРМ" и для уведомления о заполнении дефолтными значениями указать ОК. После этого таблица "Настройки реестров" заполнится значениями.
101 102

.. figure:: _static/arm_settings.png  
103

104 105 106 107 108 109 110


Если в АРМ необходимо работать с оргстрктурурой - необходимо дополнительно добавить несколько строк в дин.таблицу:
 * Родительский объект `Оргструктура` (Родитель == да)
 * Дочерние реестры: 
     * Назначение на должность (`str_registry_appointment`), 
     * Перевод на новую должность (`str_registry_reassignment`), 
111 112 113
     * Увольнение с должности (`str_registry_dismissal`),
     * Создание подразделения (`str_registry_depart`),
     * Создание должности (`str_registry_position`).
114 115


116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
При обновлении приложения АРМ 
-----------------------------------------
Если до обновления у вас уже был установлен Конструктор с приложением АРМ, код которого ``itsm-arm``, то из-за особенностей загрузки конфигурации в Конструкторе приложений 
после обновления будет 2 приложения: старое и новое. При этом по умолчанию активным будет именно старое приложение. Поэтому все следующие действия сводятся к трем шагам:

1. В старом приложении освободить дефолтные код и URL.

2. В новом приложении настроить дефолтные код и URL.

3. Передеплоить приложение со стороны сервера.

Во-вторых, настроить обновленное приложение в Конструкторе:

* Открыть Конструктор приложений по адресу ``http://адрес_сервера:порт/constructor`` (например: http://192.168.4.80:8080/constructor) и авторизоваться под Системным пользователем.

* Открыть старое приложение с кодом и URL ``itsm-arm`` и выполнить следующие действия в нем:

    * выбрать меню "Клиент" -> "Свойства";
    * изменить название на любое значение, отличное от исходного (для примера подойдет ``АРМ сотрудника ITSM Old``);
    * изменить код и URL на любое значение, отличное от исходного ``itsm-arm`` (для примера подойдет ``itsm-arm1``);
    * сохранить изменения.

* Открыть новое приложение с названием ``АРМ сотрудника ITSM_IMPORTED`` и выполнить следующие действия в нем:

    * выбрать меню "Клиент" -> "Свойства";
    * изменить название на любое значение, отличное от исходного ``АРМ сотрудника ITSM_IMPORTED`` (для примера подойдет название по умолчанию ``АРМ сотрудника ITSM``);
    * изменить код и URL строго на значение ``itsm-arm``;
    * сохранить изменения;
    * выбрать меню "Клиент" -> "Деплой".

В-третьих, передеплоить приложение со стороны сервера:

* Перейти в папку ``deployments``:

    .. code-block:: html 

	# cd /opt/synergy/jboss/standalone/deployments

* Выполнить команду:

    .. code-block:: html 

158
	# touch itsm-arm.war.dodeploy
159 160 161



162 163
Для работоспособности дашбордов:
-----------------------------------------
164

165 166 167 168

В интерфейсе Synergy:
    * создать хотя бы по одной тестовой записи в реестрах “Обращения” и “Проблемы”
    
Elizaveta Kakhovskaya's avatar
Elizaveta Kakhovskaya committed
169 170
В подсистеме администрирования:
    * проиндексировать данные форм
171 172
    
В конфигураторе:  
173
    * заменить во внешних модулях адрес приложения актуальной ссылкой на дашборды Kibana (полностью заменить ссылку):
174
    
175 176
        -  для “Аналитика по инцидентам” - дашборд "Аналитика по обращениям"
        -  для “Аналитика по проблемам” - дашборд "Проблемы"
Elizaveta Kakhovskaya's avatar
Elizaveta Kakhovskaya committed
177 178

В Kibana:
179
    * автоматически будут созданы шаблоны индексов: ``r-itsm_registry_incidents`` и ``r-itsm_registry_problems``, а также созданы дашборды по инцидентам и проблемам
Elizaveta Kakhovskaya's avatar
Elizaveta Kakhovskaya committed
180 181 182 183
    * проверить, что всё загрузилось, в дашбордах отсутствуют визуализации, помеченные «!» (при этом возможно наличие визуализаций со значениями “0”, “?”, “No results found”, и это всё не является ошибкой)

В клиентской части:
    * проверить работоспособность обоих дашбордов
184 185 186 187 188 189
    * для отображения дашбордов на АРМ необходимо создать записи в реестре Дашборды, указав: 
    
         * Название дашборда
         * URL дашборда
         * Есть ли выбор периода?
         * Показывать ли дашборд?
190
         * Группу доступа к данному дашборду (в виде группы, не пользователя)
191
   
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222

    
Для реализации дашборда "Облако тегов"
-----------------------------------------

Данный дашборд отображает самые часто встречающиеся слова в поле "Тема"/"Описание" обращения, частота соответствует размеру текста. Чем чаще встречается то или иное слово, тем больше его шрифт. Таким образом, можно определить с чем чаще всего возникают проблемы.

Для того чтобы исключить слова, которые повторяются, но не несут важности для пользователя, создан "Реестр исключений". Примеры слов: доброе, утро, не, работает и т.д.

.. figure:: _static/exceptions.jpg

        Рис. Реестр исключений

Так как одно слово может быть использовано с разными окончаниями, для группирования создан "Реестр синонимов". Например, в обращении могут использоваться слова: принтер, принтеру, принтера. Чтобы все эти слова воспринимались на визуализации как "принтер", необходимо заполнить его в Реестре синонимов.

.. figure:: _static/synonyms.jpg

        Рис. Реестр синонимов

1. Заполнить по возможности Реестр синонимов и Реестр исключений.

**Примечание:** изменения в синонимах и исключениях после первичной индексации не будут применяться. Для этого требуется использование отдельного скрипта. В связи с этим необходимо на первом этапе заполнить реестры синонимов и исключений всеми необходимыми словами.

2. Создать хотя бы одну запись реестра Обращений, заполнить тему, описание, запустить по маршруту активации.

3. Создать индекс ``itsm_incident_tagcloud`` в Kibana->Management->Index Patterns->Add new

.. figure:: _static/index.jpg

        Рис. Создание индекса

223
4. Загрузить  дашборд "Облако тегов и 2 визуализации "Облако тегов по теме", "Облако тегов по описанию". Архив можно скачать здесь_.
224

225 226 227 228 229 230 231
.. _здесь: _static/TagCloud.7z

Для загрузки его необходимо перейти в Kibana->Management->Saved Objects и загрузить нажав на Import. Загружать необхрдимо json файлы, а не архив.

5. После импорта можно перейти на дашборд и ознакомиться с результатами.

6. При необходимости создать внешний модуль в SynergyIDE и добавить ссылку на этот дашборд, дать права группам пользователей.
232 233 234 235 236 237 238


Для настройки уведомления о том, что у пользователя открыт документ
-----------------------------------------

Реализовано уведомление для записей реестра Обращения в статусе "Зарегистрировано", которое отображается когда один пользователь открывает обращение, которое открыто у другого пользователя. Таким образом можно исключить одновременную работу над одним документом при распределении обращений.

239 240
Также бывают ситуации, когда пользователь закрывает сразу же страницу браузера и тем самым документ не закрывается. В базе данных документ остается открытым под данным пользователем. Реализовано несколько API методов для работы с открытыми документами:

241
1. GET `/itsm/rest/document/isopen?documentID={documentID}` - возвращает информацию по документу если он открыт, пример ответа:
242 243


244 245 246 247 248 249 250 251 252 253
{
    "errorCode": 0,
    "errorMessage": "OK",
    "data": {
        "userID": "1",
        "documentID": "bba1e996-c745-4d4f-b933-47aeef158ab2",
        "dataUUID": "63857",
        "date": "1577244327226"
    }
}
254

255 256

2. GET `/itsm/rest/document/list` - получает весь список открытых документов, пример ответа:
257

258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275
{
    "errorCode": 0,
    "errorMessage": "OK",
    "data": [
        {
            "userID": "f7abd6d9-7b92-4da4-a183-d53feaee2296",
            "documentID": "1b5f6d64-0d61-4f4c-b6a4-8fc80e6be177",
            "dataUUID": "63828",
            "date": "1577244489896"
        },
        {
            "userID": "1",
            "documentID": "bba1e996-c745-4d4f-b933-47aeef158ab2",
            "dataUUID": "63857",
            "date": "1577244327226"
        }
    ]
}
276 277


278
3. POST `/itsm/rest/document/remove/{documentID}` - удаляет из списка один документ, в ответ приходит 1 если был удален или 0 если в базе не найден данный документ, пример ответа:
279

280 281 282 283 284
{
    "errorCode": 0,
    "errorMessage": "OK",
    "data": 1
}
285

286

287
4. POST `/itsm/rest/document/removeAll` - удаляет из списка все документы, в ответ приходит количество удаленных записей, пример ответа:
288

289 290 291
{
    "errorCode": 0,
    "errorMessage": "OK",
292 293
    "data": 4
}
294

295 296

В случае если при выполнении любого из вышеперечисленных методов возникает ошибка, в ответ возвращается json:
297

298 299 300
{
    "errorCode": 13,
    "errorMessage": "сообщение, характеризующее ошибку"
301
}
302

303
Также для удобства реализован скрипт `closeOpenDocument.sh`, который проверяет и удаляет из базы открытые документы. Данный скрипт можно поставить в крон для автоматического удаления зависших документов (*для случаев когда событие закрытия документа из UI Synergy не может быть вызвано*). Скрипт содержит настройки, которые по необходимости изменить под потребности:
304
Скрипт находится в папке `/opt/synergy/apps/itsm/scripts`.
305 306 307 308 309

# кол-во часов, прошедших с даты открытия документа, по истечению которых нужно удалить документ из базы  

HOURS=5  
  
310 311 312 313
# mySQL настройки 

mysqlUser="root"   

314
mysqlPass="root"  
315

316
mysqlDB="synergy"  
317

318
mysqlHost="localhost"
319

320 321 322 323 324 325 326

Для того чтобы поставить в крон необходимо:

1. Подключиться по ssh и в терминале ввести команду 

`$ crontab -e`

327
2. Добавить текст
328

329
0 22 * * * /opt/synergy/apps/itsm/scripts/closeOpenDocument.sh
330

331
В данном случае скрипт будет запускаться каждый день в 22.00. При необходимости можно поменять сроки исполнения.
332 333 334

3. Сделать скрипт исполняемым:

335
$ chmod a+x /opt/synergy/apps/itsm/scripts/closeOpenDocument.sh
336

337 338


339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
Для настройки иерархической эскалации по обращениям
-----------------------------------------


Для того чтобы поставить в крон необходимо:

1. Подключиться по ssh и в терминале ввести команду 

`$ crontab -e`

2. Добавить текст

0 22 * * * /opt/synergy/apps/itsm/scripts/appEscalationRun.sh

В данном случае скрипт будет запускаться каждый день в 22.00. При необходимости можно поменять сроки исполнения.

3. Сделать скрипт исполняемым:

$ chmod a+x /opt/synergy/apps/itsm/scripts/appEscalationRun.sh



361 362 363
Для  закрытия обращений, которые ожидают доработки со стороны инициатора
-----------------------------------------

364
Бывают ситуации, когда пользователь обратился с обращением, и после отправки обращения на доработку пользователь не отвечает (возможно обращение уже не актуально). Обращения так и находится в статусе "Ожидает ответа пользователя". И так может собираться большое количество обращений. Для того чтобы их закрывать реализован скрипт `close_incident.sh`, который позволит закрыть данные заявки, если с момента отправления на доработку прошло 16 рабочих часов. Для того чтобы этот скрипт исполнялся его необходимо поставить в крон.
365 366 367 368 369 370
Скрипт находится в папке `/opt/synergy/apps/itsm/scripts`. В скрипте имеются следующие настройки:

1. файл откуда берутся настройки соединения с synergy: source /opt/synergy/jboss/standalone/configuration/arta/apps/itsm/itsm.properties

2. подключение к базе mysql(при необходимости заменить в скрипте логин и пароль)

371
mysqlUser="User"  
372

373
mysqlPass="Pass"  
374

375
mysqlHost="127.0.0.1"  
376 377 378

3. расположение лог файла, код реестра инцидентов и комментарий по умолчанию:

379
logFile="/var/log/synergy/scripts.log"  
380

381
...  
382

383
registryCode="itsm_registry_incidents"  
384

385
comment="Закрыто по истечению времени на ожидание ответа пользователя"  
386 387

Для того чтобы его поставить в крон необходимо:
388 389 390 391 392 393 394 395 396 397 398 399 400 401

1. Подключиться по ssh и в терминале ввести команду 

`$ crontab -e`

2. Добавить текст

0 23 * * * /opt/synergy/apps/itsm/scripts/close_incident.sh

В данном случае скрипт будет запускаться каждый день в 23.00. При необходимости можно поменять сроки исполнения.

3. Сделать скрипт исполняемым:

$ chmod a+x /opt/synergy/apps/itsm/scripts/close_incident.sh
402

403 404 405 406 407
Для правильной работы скрипта с пакетом дополнительно будет установлена утилита ``jq``. Для проверки правильной установки утилиты можно выполнить в терминале следующую команду:

``jq --version``

В ответ вернется версия установленной утилиты. Например: ``jq-1.5-1-a5b5cbe``  
408 409


410 411 412 413

Для пересмотра и актуализации статей базы знаний
-----------------------------------------

414
Статьи в базе знаний со временем теряют свою актуальность, поэтому периодически их нужно актуализировать. Для этого реализован скрипт knowledgebase_update.sh . Для периодического запуска данного скрипта, его нужно поставить в крон. Скрипт находится здесь: /opt/synergy/apps/itsm/scripts/knowledgebase_update.sh .   
415 416 417 418 419 420 421

Для работы данного скрипта, его необходимо сделать исполняемым:  

$ chmod a+x /opt/synergy/apps/itsm/scripts/knowledgebase_update.sh

Данный скрипт находит все статьи в статусе "В использовании", с "Даты проверки" которых прошло определенное время, и создает по ним работы ответственному менеджеру для актуализации статьи. После проверки статьи ответственный менеджер либо дополняет и оставляет статью в статусе "В использовании", либо отправляет в статус "В архиве". При этом дата проверки обновляется.

422
Для указания времени, которое должно пройти с даты проверки, необходимо внести изменения в скрипт:
423

424
#Срок проверки статей
425

426
termyear=1    # год 
427

428
termmonth=2   # месяц 
429

430
termdays=10    # день   
431

432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449

Также есть следующие настройки, которые необходимо настроить под данные клиента:    

#Код реестра Базы знаний  

registryCode="itsm_registry_knowledgebase"  

#настройки mysql  

mysqlUser="root"  

mysqlPass="root"  

mysqlHost="127.0.0.1"  

#тут есть логин/пароль и хост синержи  

source /opt/synergy/jboss/standalone/configuration/itsm.properties  
450

451 452 453 454 455 456

Для уведомления определенных пользователей об окончании сроков документов по активам
-----------------------------------------

На форме реестра Активы в разделе Документы есть возможностью добавления договоров, гарантийных документов, контрактов для активов. Также добавлена возможность уведомления об окончании сроков с указанием даты уведомления и пользователей. При включении данной опции пользователям на почту с помощью скрипта будет направлено увдомление об окончании сроков документов.

457
Реализован скрипт contractExpirationNotice.sh . Данный скрипт запускает запись реестра "Реестр для отправки уведомлений по срокам действия контрактов" и находит документы, по которым необходимо направить уведомления в текущем месяце. И соответственно направляются уведомления на почту. Для удобства данный скрипт необходимо поставить в крон в подходящее время. Но перед этим его нужно сделать исполняемым с помощью следующей команды:  
458 459

$ chmod a+x /opt/synergy/apps/itsm/scripts/contractExpirationNotice.sh  
460 461 462 463 464 465



Для регистрации обращений из внешних систем
-----------------------------------------------

466
Для регистрации обращений из внешних систем можно использовать кастомную API ${HOST}/itsm/rest/incident/create  
467

468 469
Для каждого описанного ниже апи, для авторизации необходимо передавать заголовок:  
"Authorization", "Basic " + btoa(unescape(encodeURIComponent(login + ":" + password)))  
470 471


472
1. вызвать метод для создания временного файла на сервере: ${HOST}/Synergy/rest/api/storage/start_upload (start_upload)  
473

474
Method: GET  
475

476
В ответе получаем путь до временного файла, пример ответа:  
477

478 479 480 481 482 483 484
{
   "errorCode": "0",
   "file": "/opt/synergy/jboss/standalone/tmp/Synergy/upload.tmp/96f50f11-17e7-4aa9-9798-cba4d81f4135"
}



485
2. Далее необходимо загрузить данные во временный файл с помощью метода ${HOST}/Synergy/rest/api/storage/upload_part (upload_part)  
486

487
Method: POST  
488

489
Enctype: multipart/form-data  
490

491
3. после загрузки файлов на сервер, необходимо вызвать метод создания обращения ${HOST}/itsm/rest/incident/create  
492

493
Method: POST  
494

495
Content Type: application/json; charset=utf-8  
496

497
пример передаваемых параметров:  
498

499 500 501 502 503 504 505 506 507 508 509 510
{
    "theme": "text theme",
    "description": "text description",
    "files": [
        {
            "name": "file.txt",
            "path": "/opt/synergy/jboss/standalone/tmp/Synergy/upload.tmp/96f50f11-17e7-4aa9-9798-cba4d81f4135"
        }
    ]
}

В параметр files передается массив объектов, в каждом объекте передается имя файла и путь до временного файла на сервере, который получается при выполнении апи rest/api/storage/start_upload
511
пример успешного ответа:  
512 513 514 515 516 517 518
{
    "regNumber": "inc-29181",
    "dataUUID": "67423",
    "documentID": "e924f754-d23e-4528-90a0-4b81d3085fd5"
}

Если необходимости в передачи файлов нет, то можно сразу вызвать апи ${HOST}/itsm/rest/incident/create без параметра files, пропустив первые 2 шага.