Действия

URS. Руководство администратора: различия между версиями

Материал из Флора AI

Строка 1: Строка 1:
===== '''Общее описание''' =====
===== '''Общее описание''' =====
Сервис предназначен для обеспечения контроля доступа к отчетам и элементам интерфейса системы kibana на основании стандартных механизмов безопасности системы Флора.
Сервис предназначен для обеспечения контроля доступа к отчетам и элементам интерфейса системы Kibana на основании стандартных механизмов безопасности системы Флора.
 
===== '''Термины и определения''' =====
===== '''Термины и определения''' =====
Universal Report Service (URS) – сервис проксирования запросов к отчетам kibana с авторизацией через Флору. Сервис позволяет фильтровать возвращаемые элементы интерфейса kibana согласно конфигурационным файлам
Universal Report Service (URS) – сервис проксирования запросов к отчетам Kibana с авторизацией через Флору. Сервис позволяет фильтровать возвращаемые элементы интерфейса Kibana согласно конфигурационным файлам.
 
===== '''Требования к окружению''' =====
===== '''Требования к окружению''' =====
Для нормальной работы сервис должен быть установлен на сервере с вэб частью Флоры. В процессе работы сервис взаимодействует со следующими сервисами:
Для нормальной работы сервис должен быть установлен на сервере с вэб частью Флоры. В процессе работы сервис взаимодействует со следующими сервисами:
    • вэб часть Флоры – настройка осуществляется в интерфейсе Флоры
   • вэб часть Флоры – настройка осуществляется в интерфейсе Флоры
    • Kibana – настраивается через файл параметров params.conf
 
    • elasticsearch - настраивается через файл параметров params.conf
   • Kibana – настраивается через файл параметров params.conf
    • MySQL - настраивается через файл параметров params.conf
 
   • elasticsearch - настраивается через файл параметров params.conf
 
   • MySQL - настраивается через файл параметров params.conf.
 
 
===== '''Установка URS''' =====  
===== '''Установка URS''' =====  
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/urs&fileid=479 Дистрибутив] распространяется в виде универсального установочного пакета.  
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/urs&fileid=479 Дистрибутив] распространяется в виде универсального установочного пакета. Пакет может быть установлен в онлайн-режиме (при наличии доступа к репозиториям) или оффлайн (с предварительно собранными пакетами). Для установки в оффлайн-режиме сперва нужно запустить экземпляр скрипта на копии целевой системы (версия и ядро ОС) с доступом к репозиториям. Для установки пакета запустить инсталлятор с требуемыми ключами. При запуске без ключей инсталлятор выдаст короткую справку. Например, «Установить Ursus онлайн» <code>./urs-X.XXX-universal.sh -i -on</code>
Пакет может быть установлен в ''онлайн'' режиме (при наличии доступа к репозиториям) или ''оффлайн'' (с предварительно собранными пакетами).
Для установки в оффлайн режиме сперва нужно запустить экземпляр скрипта на копии целевой системы (версия и ядро ОС) с доступом к репозиториям.
Для установки пакета запустить инсталлятор с требуемыми ключами. При запуске без ключей инсталлятор выдаст короткую справку.
Например  
-Установить urs онлайн
<code>./urs-X.XXX-universal.sh -i -on</code>
  -Установить urs оффлайн
  -Установить urs оффлайн
<code>./urs-X.XXX-universal.sh -i -off</code>
<code>./urs-X.XXX-universal.sh -i -off</code>
Строка 25: Строка 27:
  -Установить elasticsearch онлайн
  -Установить elasticsearch онлайн
<code>./urs-X.XXX-universal.sh -i -e -on</code>
<code>./urs-X.XXX-universal.sh -i -e -on</code>
  -Установить elasticsearch оффлайн(необходимо предварительно собрать с ключами -b -e)
  -Установить elasticsearch оффлайн (необходимо предварительно собрать с ключами -b -e)
<code>./urs-X.XXX-universal.sh -i -e -off</code>
<code>./urs-X.XXX-universal.sh -i -e -off</code>
  -Прописать параметры в конфиг файл elasticsearch
  -Прописать параметры в конфиг файл elasticsearch
<code>./urs-X.XXX-universal.sh -e -c ip_elastic_host</code>
<code>./urs-X.XXX-universal.sh -e -c ip_elastic_host</code>
  -Установить kibana оффлайн(не надо собирать с ключом -b)
  -Установить kibana оффлайн (не надо собирать с ключом -b)
<code>./urs-X.XXX-universal.sh -i -k -off</code>
<code>./urs-X.XXX-universal.sh -i -k -off</code>
  -Прописать параметры в конфиг файл kibana
  -Прописать параметры в конфиг файл kibana
Строка 35: Строка 37:
  -Импортировать шаблоны kibana
  -Импортировать шаблоны kibana
<code>./urs-X.XXX-universal.sh -k -it ip_kibana_host</code>
<code>./urs-X.XXX-universal.sh -k -it ip_kibana_host</code>
  -Скопировать внутренний архив рядом со скриптом не распаковывая в папку
  -Скопировать внутренний архив рядом со скриптом, не распаковывая в папку
<code>./urs-X.XXX-universal.sh --extract</code>
<code>./urs-X.XXX-universal.sh --extract</code>
  -Распаковать внутренний архив рядом со скриптом в каталог
  -Распаковать внутренний архив рядом со скриптом в каталог
Строка 47: Строка 49:


Не забудьте включить сервис в системе и запустить команду:
Не забудьте включить сервис в системе и запустить команду:
<code>.sudo systemctl enable urs.service && sudo systemctl start urs.service</code>
<code>.sudo systemctl enable urs.service && sudo systemctl start urs.service</code>
Удостоверьтесь, что сервис стартовал. Разрешите доступ к порту 6180 на нужном интерфейсе по протоколу tcp.
Удостоверьтесь, что сервис стартовал. Разрешите доступ к порту 6180 на нужном интерфейсе по протоколу tcp.
==='''Настройка'''===
==='''Настройка'''===
Строка 59: Строка 63:
|-
|-
|ip,port
|ip,port
|адрес и порт на котором сервис слушает запросы
|адрес и порт, на котором сервис слушает запросы
|-
|-
|useAuth
|useAuth
Строка 76: Строка 80:
|подключает к страничке с отчетами стили из файла "user.css"
|подключает к страничке с отчетами стили из файла "user.css"
|}
|}
*"cron" - раздел с настройками периодичности отправки данных о звонках в elasticsearch (по умолчанию ежедневно, каждые 3600 секунд)
 
*"kibana" — адрес и порт сервиса Kibana. Как правило располагается на другом сервере.
* "cron" раздел с настройками периодичности отправки данных о звонках в Elasticsearch (по умолчанию ежедневно, каждые 3600 секунд).
*"elasticsearch" — адрес и порт сервиса elasticsearch. Как правило располагается на другом сервере.
* "kibana" — адрес и порт сервиса Kibana. Как правило, располагается на другом сервере.
*"MySQL" — параметры подключения к базе данных с токенами авторизации и данными о звонках
* "elasticsearch" — адрес и порт сервиса Elasticsearch. Как правило, располагается на другом сервере.
* "MySQL" — параметры подключения к базе данных с токенами авторизации и данными о звонках.
 
===='''Настройки интерфейса Флоры'''====
===='''Настройки интерфейса Флоры'''====
[[Файл:Urs1.jpg|мини|300x300пкс|<small>''Рис. 1 Настройка ролей в Kibana''</small>]]
Для правильной работы прокси сервера необходимо:
Для правильной работы прокси сервера необходимо:
*'''настроить для ролей пользователей разрешения''' для доступа к отчетам и конструктору создания отчетов (настройка->безопасность->роли):
[[Файл:Urs1.jpg|безрамки|700x700пкс]]


*'''внести в настройки адрес страницы с отчетами и страницы конструктора отчетов''':
* '''настроить для ролей пользователей разрешения''' для доступа к отчетам и конструктору создания отчетов настройка -> безопасность -> роли:
       Адрес страницы с отчетами можно сформировать зайдя напрямую (по стандартному порту kibana) на страницу, выбрав  
 
и настроив параметры отчета, затем скопировать адрес страницы заменив в нем порт на 6180, а адрес на 127.0.0.1,
* '''внести в настройки адрес страницы с отчетами и страницы конструктора отчетов''':
так как сервис URS рекомендуется располагать на одном сервере с вэб частью Флоры
 
       Адрес страницы с конструктором отчетов можно сформировать аналогично адресу отчетов, выбрав
       Адрес страницы с отчетами можно сформировать, зайдя напрямую (по стандартному порту Kibana) на страницу, выбрав и настроив параметры отчета, затем скопировать адрес страницы, заменив в нем порт на 6180, а адрес на 127.0.0.1, так как сервис URS рекомендуется располагать на одном сервере с веб-частью Флоры.
в качестве исходной страницы домашнюю страницу kibana
       Адрес страницы с конструктором отчетов можно сформировать аналогично адресу отчетов, выбрав в качестве исходной страницы домашнюю страницу Kibana.
      Настройки располагаются по пути:
[[Файл:Urs2.jpg|мини|300x300пкс|''<small>Рис. 2 Настройка путей в Kibana</small>'']]
настройки->система->основные->настройка модулей
 
 
Настройки располагаются по пути:


[[Файл:Urs2.jpg|безрамки|700x700пкс]]
настройки -> система -> основные -> настройка модулей.
 
 
[[Файл:Urs3.jpg|мини|300x300пкс|''<small>Рис. 3 Настройка часового пояса</small>'']]


==== '''Настройка kibana''' ====
==== '''Настройка kibana''' ====
В Kibana необходимо выставить часовой пояс UTC±0:00:
В Kibana необходимо выставить часовой пояс UTC±0:00:


[[Файл:Urs3.jpg|безрамки|700x700пкс]]
Также в Kibana необходимо импортировать файлы dashboard-calls.json
 
Также в Kibana необходимо импортировать файлы dashboard-calls.json  


и index-patterns.json из комплекта поставки URS.
и index-patterns.json из комплекта поставки URS.
Строка 112: Строка 120:


Для увеличения информативности журналов можно выполнить от суперпользователя команду:
Для увеличения информативности журналов можно выполнить от суперпользователя команду:
<code>sed -i 's/log-level error/log-level debug/g' /etc/systemd/system/urs.service && systemctl daemon-reload && systemctl restart urs.service</code>
<code>sed -i 's/log-level error/log-level debug/g' /etc/systemd/system/urs.service && systemctl daemon-reload && systemctl restart urs.service</code>
При возникновении проблем в работе сервиса и недостаточной информативности журналов, можно запустить сервис вручную с привилегиями суперпользователя и выводом информации в stdout:
При возникновении проблем в работе сервиса и недостаточной информативности журналов, можно запустить сервис вручную с привилегиями суперпользователя и выводом информации в stdout:
<code>systemctl stop urs.service && source /opt/urs/pve/bin/activate && cd /opt/urs/ && python3 api.py && deactivate</code>
<code>systemctl stop urs.service && source /opt/urs/pve/bin/activate && cd /opt/urs/ && python3 api.py && deactivate</code>
Завершить - <code>Ctrl + C</code>
Завершить - <code>Ctrl + C</code>


Строка 128: Строка 140:
<code>/opt/urs/uninstall</code>  
<code>/opt/urs/uninstall</code>  


Команда удалит сервис и рабочий каталог, включая все файлы конфигурации. Для обновления запустите скрипт установки как указано в п 4. При этом, обновление не изменяет файл params.conf.
Команда удалит сервис и рабочий каталог, включая все файлы конфигурации. Для обновления запустите скрипт установки, как указано в п. 4. При этом обновление не изменяет файл params.conf.

Версия от 12:16, 20 февраля 2025

Общее описание

Сервис предназначен для обеспечения контроля доступа к отчетам и элементам интерфейса системы Kibana на основании стандартных механизмов безопасности системы Флора.

Термины и определения

Universal Report Service (URS) – сервис проксирования запросов к отчетам Kibana с авторизацией через Флору. Сервис позволяет фильтровать возвращаемые элементы интерфейса Kibana согласно конфигурационным файлам.

Требования к окружению

Для нормальной работы сервис должен быть установлен на сервере с вэб частью Флоры. В процессе работы сервис взаимодействует со следующими сервисами:

   • вэб часть Флоры – настройка осуществляется в интерфейсе Флоры
   • Kibana – настраивается через файл параметров params.conf
   • elasticsearch - настраивается через файл параметров params.conf
   • MySQL - настраивается через файл параметров params.conf.


Установка URS

Дистрибутив распространяется в виде универсального установочного пакета. Пакет может быть установлен в онлайн-режиме (при наличии доступа к репозиториям) или оффлайн (с предварительно собранными пакетами). Для установки в оффлайн-режиме сперва нужно запустить экземпляр скрипта на копии целевой системы (версия и ядро ОС) с доступом к репозиториям. Для установки пакета запустить инсталлятор с требуемыми ключами. При запуске без ключей инсталлятор выдаст короткую справку. Например, «Установить Ursus онлайн» ./urs-X.XXX-universal.sh -i -on

-Установить urs оффлайн

./urs-X.XXX-universal.sh -i -off

-Собрать все пакеты для установки оффлайн urs и elasticsearch

./urs-X.XXX-universal.sh --build

-Собрать пакеты для установки оффлайн только elasticsearch

./urs-X.XXX-universal.sh -b -e

-Установить elasticsearch онлайн

./urs-X.XXX-universal.sh -i -e -on

-Установить elasticsearch оффлайн (необходимо предварительно собрать с ключами -b -e)

./urs-X.XXX-universal.sh -i -e -off

-Прописать параметры в конфиг файл elasticsearch

./urs-X.XXX-universal.sh -e -c ip_elastic_host

-Установить kibana оффлайн (не надо собирать с ключом -b)

./urs-X.XXX-universal.sh -i -k -off

-Прописать параметры в конфиг файл kibana

./urs-X.XXX-universal.sh -k -c ip_kibana_host ip_elastic_host

-Импортировать шаблоны kibana

./urs-X.XXX-universal.sh -k -it ip_kibana_host

-Скопировать внутренний архив рядом со скриптом, не распаковывая в папку

./urs-X.XXX-universal.sh --extract

-Распаковать внутренний архив рядом со скриптом в каталог

./urs-X.XXX-universal.sh -x -d

-Запаковать архив в скрипт

./urs-X.XXX-universal.sh --pack urs-offline.tgz

-Сжать каталог и запаковать архив в скрипт

./urs-X.XXX-universal.sh --pack -d archive

-Удалить внутренний архив из скрипта

./urs-X.XXX-universal.sh --null

Не забудьте включить сервис в системе и запустить команду:

.sudo systemctl enable urs.service && sudo systemctl start urs.service

Удостоверьтесь, что сервис стартовал. Разрешите доступ к порту 6180 на нужном интерфейсе по протоколу tcp.

Настройка

Файл params.conf

Основной файл конфигурации сервиса URS - /opt/urs/params.conf состоит из нескольких разделов:

  • "proxy" – основной раздел
Параметр Назначение
ip,port адрес и порт, на котором сервис слушает запросы
useAuth для совместимости с устаревшими версиями ПО, которые не поддерживают авторизацию (принимает значение 0 в таком случае)
replace раздел настроек фильтров, состоит по умолчанию с 3 подразделов:
show_module_reportbuilder подключает к страничке создания отчетов стили из файла "admin.css"
kbnGlobalNav-isOpen в этом разделе отключается панель навигации kibana
show_module_reports подключает к страничке с отчетами стили из файла "user.css"
  • "cron" — раздел с настройками периодичности отправки данных о звонках в Elasticsearch (по умолчанию ежедневно, каждые 3600 секунд).
  • "kibana" — адрес и порт сервиса Kibana. Как правило, располагается на другом сервере.
  • "elasticsearch" — адрес и порт сервиса Elasticsearch. Как правило, располагается на другом сервере.
  • "MySQL" — параметры подключения к базе данных с токенами авторизации и данными о звонках.

Настройки интерфейса Флоры

Рис. 1 Настройка ролей в Kibana

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

  • настроить для ролей пользователей разрешения для доступа к отчетам и конструктору создания отчетов настройка -> безопасность -> роли:
  • внести в настройки адрес страницы с отчетами и страницы конструктора отчетов:
     Адрес страницы с отчетами можно сформировать, зайдя напрямую (по стандартному порту Kibana) на страницу, выбрав и настроив параметры отчета, затем скопировать адрес страницы, заменив в нем порт на 6180, а адрес на 127.0.0.1, так как сервис URS рекомендуется располагать на одном сервере с веб-частью Флоры.
     Адрес страницы с конструктором отчетов можно сформировать аналогично адресу отчетов, выбрав в качестве исходной страницы домашнюю страницу Kibana.
Рис. 2 Настройка путей в Kibana


Настройки располагаются по пути:

настройки -> система -> основные -> настройка модулей.


Рис. 3 Настройка часового пояса

Настройка kibana

В Kibana необходимо выставить часовой пояс UTC±0:00:

Также в Kibana необходимо импортировать файлы dashboard-calls.json

и index-patterns.json из комплекта поставки URS.

Настройка отправки информации в elasticsearch

В URS можно настроить периодичность отправки. Периодичность может быть не чаще чем раз в час, чтобы не нагружать систему.

Протоколы и порты

Для своей работы сервис использует порт 6180/tcp.

Журналы работы

Для проверки состояния сервиса выполните sudo systemctl status urs. Журнал ошибок пишется в системный журнал, для просмотра можно воспользоваться командой sudo journalctl -u urs

Для увеличения информативности журналов можно выполнить от суперпользователя команду:

sed -i 's/log-level error/log-level debug/g' /etc/systemd/system/urs.service && systemctl daemon-reload && systemctl restart urs.service

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

systemctl stop urs.service && source /opt/urs/pve/bin/activate && cd /opt/urs/ && python3 api.py && deactivate

Завершить - Ctrl + C

Журналы отправки данных в elasticsearch расположены по адресам:

/opt/urs/import/ucdialogs.py.log

/opt/urs/import/ucinteractions.py.log

Удаление и обновление URS

Для удаления выполните команду:

/opt/urs/uninstall

Команда удалит сервис и рабочий каталог, включая все файлы конфигурации. Для обновления запустите скрипт установки, как указано в п. 4. При этом обновление не изменяет файл params.conf.