Поиск
Описание
Сервис поиска требует отдельной установки Elastic Search и настройки сервиса.
Использование сервиса оправдано при следующих случаях:
использование сервисов основанных на DVR: доступ к архиву телепередач и EPG VOD
использование VOD
Поиск осуществляется по:
названиям каналов, из доступных абоненту согласно действующему тарифному плану.
названию телепередач каналов, из доступных абоненту согласно действующему тарифному плану и глубине архива.
элементам VOD библиотеки
Установка
Elasticsearch может быть установлен как на сервер с TMS, так и отдельно, в зависимости от свободных ресурсов. Настройка выполняется командой setup-search утилиты tms_ctl:
sudo tms_ctl setup-search
Команда работает интерактивно и предлагает два режима:
установить Elasticsearch на этот же сервер — утилита установит пакет
elasticsearchиз репозитория TVIP, настроит/etc/elasticsearch/elasticsearch.yml, ограничение памяти (по умолчанию 2 ГБ, можно задать своё значение или 0 — без ограничения), создаст пользователяtmsи увеличит лимит шардов (по умолчанию 5000, рекомендуемый диапазон — от 5000 до 10000);подключиться к существующему Elasticsearch на другом сервере — утилита проверит доступность сервера, версию и настройки кластера.
В обоих режимах команда автоматически записывает параметры подключения в конфигурацию менеджера поиска и перезапускает сервис manager-tvip-tms-search.
Примечание
Индикатор поиска в веб-панели TMS может оставаться красным до 5 минут после завершения настройки — это не является ошибкой.
Для проверки текущей конфигурации поиска и связи с Elasticsearch используйте диагностику (изменений не вносит):
sudo tms_ctl setup-search doctor
Elasticsearch на отдельном сервере
Если Elasticsearch выносится на отдельный сервер, сначала подготовьте этот сервер командой:
sudo tms_ctl setup-search --prepare-db
Команда подключит репозиторий TVIP, установит и настроит Elasticsearch с приёмом подключений по сети и выведет адреса сервера. Затем на сервере с TMS запустите sudo tms_ctl setup-search и выберите подключение к существующему Elasticsearch, указав адрес подготовленного сервера и пользователя tms.
Ручная настройка
Команды ниже применяются в нестандартных сценариях или в качестве альтернативы tms_ctl setup-search. Ручная настройка повторяет шаги, которые команда выполняет автоматически.
Установите Elasticsearch из репозитория TVIP:
sudo echo "deb http://deb.packages.tvip.tv/ xenial main" >> /etc/apt/sources.list.d/tms.list
sudo wget --quiet -O - http://deb.packages.tvip.tv/deploy/key.asc | apt-key add -
sudo apt-get update
sudo apt-get install elasticsearch
Отредактируйте опции в конфигурационном файле /etc/elasticsearch/elasticsearch.yml:
indices.memory.index_buffer_size: "30%"
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: false
xpack.security.transport.ssl:
enabled: false
http.host: 0.0.0.0
Внимание
Опцию http.host 0.0.0.0 требуется прописать в конфигурации только если Elasticsearch и TMS установлены на разных серверах, в ином случае она не является обязательной.
Внимание
При установке Elasticsearch на сервер с TMS, рекомендуем также установить ограничение на использование оперативной памяти параметром -Xmx*g в файле /etc/elasticsearch/jvm.options. * - значение в Gb.
Включение автозагрузки elasticsearch и запуск:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Добавьте пользователя tms с правами супер пользователя и надежным паролем:
/usr/share/elasticsearch/bin/elasticsearch-users useradd tms -r superuser -p your_password
Отредактируйте конфигурацию менеджера поиска TVIP TMS согласно настройкам Elastic Search.
После редактирования конфигурационного файла необходимо перезапустить сервис manager-tvip-tms-search
systemctl restart manager-tvip-tms-search
Внимание
После установки Elasticsearch рекомендуем увеличить максимально допустимое количество шардов с помощью следующей команды:
curl -u tms:<password> -X PUT "localhost:9200/_cluster/settings" -H "Content-Type: application/json" -d'
{
"persistent": {
"cluster.max_shards_per_node": <number>
}
}
'
где <password> - пароль заданный ранее для пользователя tms с помощью утилиты elasticsearch-users, а <number> - задаваемое максимальное количество шардов. Рекомендуемое количество шардов - от 5000 до 10000.