Перейти к содержанию

Подключение 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.