Настройка отдельного кластера мониторинга для 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
) не в том же кластере.
Чтобы настроить отдельный кластер мониторинга, это довольно просто, но сначала нужно понять движущиеся части.
- Вам нужен отдельный кластер, по крайней мере, с одним узлом (большинство людей используют один узел).
- Этот отдельный кластер фактически не знает о кластерах, которые он отслеживает. Он только получает данные.
- Вам необходимо отправить данные из производственных кластеров в этот отдельный кластер.
- Кластер мониторинга интерпретирует эти данные с помощью плагина Kibana + Marvel UI для отображения графиков.
Итак, что вам нужно:
- Ваш производственный кластер должен быть установлен
marvel-agent
на каждом узле. - Каждый узел должен настроить экспортер (ы):
Это то же самое, что и раньше:
marvel.agent.exporters:
id1:
type: http
host: ["http://192.168.2.124:9200"]
- Кибана должна поговорить с кластером мониторинга (
192.168.2.124
в этом примере) и Kibana нужна та же версия плагина пользовательского интерфейса Marvel.