Настройка отдельного кластера мониторинга для Elasticsearch

Я пытаюсь настроить отдельный кластер (kibanacluster) для мониторинга моего основного кластера эластичного поиска (marveltest). Ниже приведены версии ES, Marvel и Kibana, которые я использую. Версия ES исправлена ​​на данный момент. Я могу обновить или понизить другие компоненты, если это необходимо.

  • kibana-4.4.1
  • elasticsearch-2.2.1
  • Чудо-агент 2.2.1

Кластер мониторинга и Kibana оба работают на хосте 192.168.2.124, а основной кластер работает на отдельном хосте 192.168.2.116.

192.168.2.116:asticsearch.yml

marvel.agent.exporter.es.hosts: ["192.168.2.124"]
marvel.enabled: true
marvel.agent.exporters:

id1:
    type: http
    host: ["http://192.168.2.124:9200"]

Глядя на DEBUG Журналы в кластере мониторинга. Я вижу, что данные поступают из первичного кластера, но они "фильтруются", поскольку имя кластера отличается.

[2016-07-04 16: 33: 25,144] [DEBUG] [transport.netty] [nodek] подключен к узлу [{# zen_unicast_2 #} {192.168.2.124} {192.168.2.124:9300}]

[2016-07-04 16: 33: 25,144] [DEBUG] [transport.netty] [nodek] подключен к узлу [{# zen_unicast_1 #} {192.168.2.116} {192.168.2.116:9300}]

[2016-07-04 16: 33: 25,183] [DEBUG] [discovery.zen.ping.unicast] [nodek] [1] отфильтровывают ответ от {node1}{Rmgg0Mw1TSmIpytqfnFgFQ}{192.168.2.116}{192.168.2.116:9300}, не то же имя кластера [marveltest]

[2016-07-04 16: 33: 26,533] [DEBUG] [discovery.zen.ping.unicast] [nodek] [1] отфильтровывают ответ от {node1}{Rmgg0Mw1TSmIpytqfnFgFQ}{192.168.2.116}{192.168.2.116:9300}, не то же имя кластера [marveltest]

[2016-07-04 16: 33: 28,039] [DEBUG] [discovery.zen.ping.unicast] [nodek] [1] отфильтровывают ответ от {node1}{Rmgg0Mw1TSmIpytqfnFgFQ}{192.168.2.116}{192.168.2.116:9300}, не то же имя кластера [marveltest]

[2016-07-04 16:33:28,040][DEBUG][transport.netty ] [nodek] disconnecting from [{#zen_unicast_2#}{192.168.2.124}{192.168.2.124:9300}] due to explicit disconnect call [2016-07-04 16:33:28,040][DEBUG][discovery.zen ] [nodek] filtered ping responses: (filter_client[true], filter_data[false]) --> ping_response{node [{nodek}{vQ-Iq8dKSz26AJUX77Ncfw}{192.168.2.124}{192.168.2.124:9300}], id[42], master [{nodek}{vQ-Iq8dKSz26AJUX77Ncfw}{192.168.2.124}{192.168.2.124:9300}], hasJoinedOnce [true], cluster_name[kibanacluster]}

[2016-07-04 16:33:28,053][DEBUG][transport.netty ] [nodek] disconnecting from [{#zen_unicast_1#}{192.168.2.116}{192.168.2.116:9300}] due to explicit disconnect call [2016-07-04 16:33:28,057][DEBUG][transport.netty ] [nodek] connected to node [{nodek}{vQ-Iq8dKSz26AJUX77Ncfw}{192.168.2.124}{192.168.2.124:9300}]

[2016-07-04 16:33:28,117][DEBUG][discovery.zen.publish ] [nodek] received full cluster state version 32 with size 5589

1 ответ

Решение

Проблема в том, что вы смешиваете использование настроек Marvel 1.x с настройками Marvel 2.2, но ваша другая конфигурация, кажется, отключена, как указал Андрей в комментарии.

marvel.agent.exporter.es.hosts: ["192.168.2.124"]

Это не параметр, известный в Marvel 2.x. И в зависимости от вашего копирования / вставки, также возможно, что YAML искажен из-за пробелов:

marvel.agent.exporters:

id1:
    type: http
    host: ["http://192.168.2.124:9200"]

Это должно быть:

marvel.agent.exporters:
  id1:
    type: http
    host: ["http://192.168.2.124:9200"]

Поскольку Андрей намекнул, вы, вероятно, добавили производственные узлы к discovery.zen.ping.unicast.hosts, который пытается объединить его со своим кластером. Я подозреваю, что вы можете просто удалить этот параметр в своем кластере мониторинга.

[2016-07-04 16:33:26,533][DEBUG][discovery.zen.ping.unicast] [nodek] [1] filtering out response from {node1}{Rmgg0Mw1TSmIpytqfnFgFQ}{192.168.2.116}{192.168.2.116:9300}, not same cluster_name [marveltest]

Это указывает на то, что он игнорирует узел, к которому он тоже подключается, потому что другой узел (node1) не в том же кластере.


Чтобы настроить отдельный кластер мониторинга, это довольно просто, но сначала нужно понять движущиеся части.

  1. Вам нужен отдельный кластер, по крайней мере, с одним узлом (большинство людей используют один узел).
    • Этот отдельный кластер фактически не знает о кластерах, которые он отслеживает. Он только получает данные.
  2. Вам необходимо отправить данные из производственных кластеров в этот отдельный кластер.
  3. Кластер мониторинга интерпретирует эти данные с помощью плагина Kibana + Marvel UI для отображения графиков.

Итак, что вам нужно:

  • Ваш производственный кластер должен быть установлен marvel-agent на каждом узле.
  • Каждый узел должен настроить экспортер (ы):

Это то же самое, что и раньше:

marvel.agent.exporters:
  id1:
    type: http
    host: ["http://192.168.2.124:9200"]
  • Кибана должна поговорить с кластером мониторинга (192.168.2.124 в этом примере) и Kibana нужна та же версия плагина пользовательского интерфейса Marvel.
Другие вопросы по тегам