Как настроить несколько экземпляров поиска elasti c на одном сервере с разными данными? - PullRequest
0 голосов
/ 02 марта 2020

Мы используем Elasti c Поиск и Kibana в моей компании. Я хочу создать второй экземпляр поиска elasti c, работающий на том же сервере, но в другой JVM - давайте назовем их A и B. Я бы хотел, чтобы A имел индекс other_logs, а B - индекс batch. Я хочу иметь возможность искать их обоих с помощью одного экземпляра kibana и настраивать информационные панели, которые могут читать любой индекс на любой JVM. Данные, записанные в A, не должны записываться в B и наоборот.

Причина в том, что у нас есть некоторые пакетные задания, которые зависят от ES, и ES была немного нестабильной, вызывая сбои пакетных заданий. Пакет читает / пишет очень мало данных в ES, но остальная часть приложения записывает тонну журналов и вызывает нестабильность. Если мы не можем прочитать журналы, это небольшая проблема, но если пакет не удается, это серьезная проблема. Поэтому для кратковременного исправления, пока мы смотрим на нестабильность ES, я бы хотел перенести пакетные зависимости на новую JVM (экземпляр ES) B, которая должна быть небольшой и более стабильной.

Полагаю, мне нужна второй экземпляр ES для запуска с другим именем кластера, в противном случае данные будут реплицированы. При тестировании этого я вижу несколько исключений, поэтому не уверен, что иду в правильном направлении. Я смотрю на «поиск между кластерами», который, похоже, может позволить мне сохранить одну кибану и искать оба кластера, но у меня нет опыта работы с ES или Kibana и не так много времени, чтобы исследовать это.

Любые предложения о том, как я могу выполнить sh конфигурацию? Я на правильном пути?

1 Ответ

0 голосов
/ 02 марта 2020

Кажется, я все доказал, по крайней мере, на своей локальной тестовой машине. По сути, я создал второй кластер, который может работать на той же машине и иметь независимые файлы конфигурации. Изменяя папку, я также могу установить независимые jvm.options, так как я хочу меньше памяти для нового кластера. После того, как это сработало, я настроил один экземпляр kibana, чтобы узнать о новом кластере, а затем создал шаблон индекса, чтобы я мог искать его. Поиск кросс-кластера обсуждается здесь, и вы можете обратиться к новому «удаленному» кластеру непосредственно в поиске: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/modules-remote-clusters.html

Порт 9300 - это порт по умолчанию, который будут использовать все узлы в кластере. чтобы поговорить друг с другом, я изменил новый кластер на использование 9301. По умолчанию он сначала сканировал 9300, а затем генерировал исключение, а затем сканировал 9301. Таким образом, он работал без жесткого кодирования до 9301, но мне не нравится видеть исключения в журналах и Я хотел контролировать, какой порт используется.

Для потомков вот подробности:

1). Создайте скопированную конфигурационную папку в разделе elasti c, выполните поиск в configB и отредактируйтеasticsearch.yml:

  • cluster.name: ClusterB
  • path.data: dataB
  • path.logs: logsB
  • http.port: 9201
  • transport.port: 9301

2). После тестирования на windows я скопировалasticsearch.bat вasticsearchB.bat и добавил его вверху (linux имеет несколько иной способ передачи каталога конфигурации). Это позволяет новому пакетному файлу использовать свой собственный каталог конфигурации, в то время как все остальные папки для ES остаются теми же (поэтому обновление ES обновит оба экземпляра):

  • SET ES_PATH_CONF = .. \ configB

3). начал оба экземпляра поиска elasti c сasticsearch.bat иasticsearch2.bat

4). запустить отдельный экземпляр kibana, который по умолчанию указывает на 9200

5). В kibana измените настройки кластера, запустив это в инструментах разработчика:

PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "CluserB": {
          "seeds": [
            "127.0.0.1:9301"
          ]
        }
      }
    }
  }
}

4). Созданные данные в новом кластере ES (PUT / batch / _doc / 1 {...})

5). В kibana создайте новый шаблон индекса и обратитесь к удаленному кластеру и индексируйте, как этот ClusterB: batch

6). Создайте панель мониторинга, используя новый шаблон удаленного индекса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...