skip.link.title

Подключение Elasticsearch

Elasticsearch - масштабируемый поисковый движок, позволяющий быстро в режиме реального времени хранить, искать и анализировать большие объёмы данных. В сервисе Webim этот движок используется в качестве дополнительного хранилища истории чатов, что позволяет уменьшить время обработки запросов к истории при большом количестве хранящихся в системе чатов. В данной статье приведена инструкция по подключению Elasticsearch к сервису Webim.

Инструкция по подключению

  1. Установите Elasticsearch на отдельный физический или виртуальный сервер, следуя официальной инструкции по установке:

    Требования к серверу Elasticsearch Вы можете найти там же, а также в этой статье.

    Используя официальную документацию, Вы можете масштабировать поисковую систему на несколько серверов.

  2. Обратитесь в техническую поддержку для получения дополнительного компонента сервиса, необходимого для передачи данных из аналитической СУБД (MySQL, PostgreSQL) в Elasticsearch - es-storager, и инструкций по его установке.

  3. Дополните конфигурационный файл /etc/webim/db.json конфигурацией сервера Elasticsearch:

    "dbs": {
      "elastic": {
        "default": {
          "type": "elastic",
          "host": "YOUR_IP_ADDRESS",
          "port": PORT, # default = 9200
          "user": "elastic",
          "password": "ELASTIC_PASSWORD",
          "scheme": "http",
          "index_name_template": "{account}-{object}"
        }
      }
    }
    

    В верхнем регистре указаны плейсхолдеры значений параметров, Вам необходимо заполнить их самостоятельно в соответствии с Вашей конфигурацией.

    N.B.

    В качестве используемой учётной записи Elasticsearch допускается любая учётная запись, обладающая всеми правами для БД.

  4. Перезагрузите Chat Backend.

  5. Активируйте в account config необходимые Вам параметры:

    • elasticsearch_history: поиск в истории диалогов через Elasticsearch. Процесс поиска ускоряется, но данные о новых диалогах в истории будут появляться с задержкой;

    • elasticsearch_threadprocessor: экспорт протоколов чатов через Elasticsearch. Для работы необходимо активировать elasticsearch_history.

Маркер соответствия аккаунта для ES_Storager

Назначение

Маркер соответствия аккаунта инстансу ES_Storager. Producer ES_Storager создает задачи на перекачку данных только для тех аккаунтов, у которых значение es_storager_key в meta-БД совпадает со значением переменной окружения сервиса.

Где задаются значения

  • В окружении ES_Storager (файл .env сервиса): переменная ES_KEY со строковым значением.

  • В meta-БД, таблица accountkeyvalue: строка с key = 'es_storager_key' и value, равным значению ES_KEY из .env.

N.B.

В коде может встречаться имя ES_KEY_VALUE. В конфигурации .env указывается ES_KEY. Используйте ту переменную окружения, которую читает ваш инстанс ES_Storager; значение должно совпадать с accountkeyvalue.value.

Значение по умолчанию

Отсутствует. Значение необходимо задать явно. Пустые/несогласованные значения недопустимы.