# 7.3.2 и потеря мастера

**URL:** https://discuss.elastic.co/t/7-3-2/201228
**Category:** Вопросы на русском языке
**Created:** [September 26, 2019, 12:24pm UTC](https://discuss.elastic.co/t/7-3-2/201228 "2019-09-26T12:24:20Z")
**Posts on this page:** 14
**Page:** 4

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 25, 2019, 4:25pm UTC](https://discuss.elastic.co/t/7-3-2/201228/61 "2019-10-25T16:25:29Z")

</div>

А можно ничего не вырезать или хотя бы предупреждать об этом. Эта информация важна, потому что мы думали что в это время вообще ничего не происходило.

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 25, 2019, 4:25pm UTC](https://discuss.elastic.co/t/7-3-2/201228/62 "2019-10-25T16:25:53Z")

</div>

Да, пришлю полный лог

---

<div class="post-metadata">

### Author: ![GreenX](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/greenx/32/51751_2.png) [@GreenX](https://discuss.elastic.co/u/GreenX)
#### Post date: [October 26, 2019, 7:17am UTC](https://discuss.elastic.co/t/7-3-2/201228/63 "2019-10-26T07:17:39Z")

</div>

У вас железное железо или виртуалки?

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 26, 2019, 11:09am UTC](https://discuss.elastic.co/t/7-3-2/201228/64 "2019-10-26T11:09:24Z")

</div>

Виртуалки, но довольно мощные. Сейчас node-master находится в другом сегменте с остальными нодами и общаются через физический маршрутизатор. Попробуем перевести их в один сегмент сети и посмотрим

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 26, 2019, 2:13pm UTC](https://discuss.elastic.co/t/7-3-2/201228/65 "2019-10-26T14:13:09Z")

</div>

Пока ещё не перевели в один сегмент, но посмотрите что произошло в 16:48:35.  
Возможно, действительно, по какой-то причине и разорвалось tcp соединение с мастером(node-00)  
Но, почему node-master почти 12 минут не мог нормально присоединиться к кластеру?  
По поводу работы сети в эти 12 минут: я сидел в ssh консоли с node-master на node-00 и никаких проблем не было + есть мониториг zabbix который никаких проблем или аномалий не показывает

Полный лог с этого момента с node-master(без обрезаний):

> **[node-master.log](https://drive.google.com/file/d/1Bp0wCN_4EOX4AznfO6O54pkhWhuen5Sd/view?usp=drive_open)**
>
> Google Drive file.

node-00, node-01 - дата ноды  
node-master - координатор  
роль мастера у всех нод

P.S. Да, мы через node-master пишем логи и соответственно попытки записи в это время падали

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 26, 2019, 4:07pm UTC](https://discuss.elastic.co/t/7-3-2/201228/66 "2019-10-26T16:07:34Z")

</div>

Это повторяется

Новый лог:

> **[node-master\_new.log](https://drive.google.com/file/d/1tTxXsJ3aojzNzCYkz7L1FkzEg6l0dpun/view?usp=drive_open)**
>
> Google Drive file.

Кстати, судя по всему тоже самое происходило и на продакшене. Но там я прикрутил таймауты, иначе совсем всё было плохо, ноды отваливались и кластер не работал.

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 26, 2019, 6:52pm UTC](https://discuss.elastic.co/t/7-3-2/201228/67 "2019-10-26T18:52:45Z")

</div>

Для последнего случая лог с node-00(мастер)

> **[node-00.log](https://drive.google.com/file/d/1LlrWqX1STuB8k6WUvsfE9CtC06anJXVW/view?usp=drive_open)**
>
> Google Drive file.

Странно, что в это время все FollowerChecker для node-master successful

Разница по времени в логах 3 часа. На node-00 UTC, на node-master UTC+3

---

<div class="post-metadata">

### Author: ![GreenX](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/greenx/32/51751_2.png) [@GreenX](https://discuss.elastic.co/u/GreenX)
#### Post date: [October 28, 2019, 12:25pm UTC](https://discuss.elastic.co/t/7-3-2/201228/68 "2019-10-28T12:25:21Z")

</div>

Я насчитал только три ноды: 192.168.11.39, 192.168.11.15, 192.168.100.50.

Раз разные сегменты может быть, что угодно. Вплоть до фаервола.

Еще, посмотри есть ли такое в логах:

```auto
grep 'soft lockup' /var/log/messages*

```

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 28, 2019, 2:50pm UTC](https://discuss.elastic.co/t/7-3-2/201228/69 "2019-10-28T14:50:25Z")

</div>

Показал логи разработчику системы выбора мастера. Он сказал следующее:

> I also suspect bad networking. Things started to go wrong here when `node-master` (not the master) thinks the master disconnected:
> 
> ```auto
> [2019-10-26T18:48:44,972][TRACE][o.e.c.c.LeaderChecker] [node-master] scheduling next check of {node-00}{cMIMAQ2cQBKx-0W0VqGzrg}{XnVYYzVYRUWLBI5pJ1RVKA}{192.168.11.39}{192.168.11.39:9300}{dim} for [cluster.fault_detection.leader_check.interval] = 1s
> [2019-10-26T18:48:45,333][DEBUG][o.e.c.c.LeaderChecker] [node-master] leader [{node-00}{cMIMAQ2cQBKx-0W0VqGzrg}{XnVYYzVYRUWLBI5pJ1RVKA}{192.168.11.39}{192.168.11.39:9300}{dim}] disconnected
> [2019-10-26T18:48:45,338][INFO][o.e.c.c.Coordinator] [node-master] master node [{node-00}{cMIMAQ2cQBKx-0W0VqGzrg}{XnVYYzVYRUWLBI5pJ1RVKA}{192.168.11.39}{192.168.11.39:9300}{dim}] failed, restarting discovery
> org.elasticsearch.transport.NodeDisconnectedException: [node-00][192.168.11.39:9300][disconnected] disconnected
> It starts a cycle of trying to rejoin the master. Node node-00 (the master) receives the join requests but cannot validate them due to repeated timeouts, suggestive of connectivity issues:
> [2019-10-26T15:48:45,369][TRACE][o.e.c.c.Coordinator] [node-00] handleJoinRequest: as LEADER, handling JoinRequest{sourceNode={node-master}{QMKLhGHiSTWJsFh6IZG0lw}{F6SDojREQtSojw5Kke6RsA}{192.168.100.50}{192.168.100.50:9300}{im}{xpack.installed=true}, optionalJoin=Optional.empty}
> [2019-10-26T15:49:45,369][WARN][o.e.c.c.Coordinator] [node-00] failed to validate incoming join request from node [{node-master}{QMKLhGHiSTWJsFh6IZG0lw}{F6SDojREQtSojw5Kke6RsA}{192.168.100.50}{192.168.100.50:9300}{im}{xpack.installed=true}]
> org.elasticsearch.transport.ReceiveTimeoutTransportException: [node-master][192.168.100.50:9300][internal:cluster/coordination/join/validate] request_id [3788763] timed out after [60034ms]
> at org.elasticsearch.transport.TransportService$TimeoutHandler.run(TransportService.java:1022) [elasticsearch-7.4.1.jar:7.4.1]
> at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:703) [elasticsearch-7.4.1.jar:7.4.1]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
> at java.lang.Thread.run(Thread.java:830) [?:?]
> [2019-10-26T15:49:45,422][TRACE][o.e.c.c.Coordinator] [node-00] handleJoinRequest: as LEADER, handling JoinRequest{sourceNode={node-master}{QMKLhGHiSTWJsFh6IZG0lw}{F6SDojREQtSojw5Kke6RsA}{192.168.100.50}{192.168.100.50:9300}{im}{xpack.installed=true}, optionalJoin=Optional.empty}
> ...
> [2019-10-26T16:02:46,428][TRACE][o.e.c.c.Coordinator] [node-00] handleJoinRequest: as LEADER, handling JoinRequest{sourceNode={node-master}{QMKLhGHiSTWJsFh6IZG0lw}{F6SDojREQtSojw5Kke6RsA}{192.168.100.50}{192.168.100.50:9300}{im}{xpack.installed=true}, optionalJoin=Optional.empty}
> [2019-10-26T16:03:46,428][WARN][o.e.c.c.Coordinator] [node-00] failed to validate incoming join request from node [{node-master}{QMKLhGHiSTWJsFh6IZG0lw}{F6SDojREQtSojw5Kke6RsA}{192.168.100.50}{192.168.100.50:9300}{im}{xpack.installed=true}]
> org.elasticsearch.transport.ReceiveTimeoutTransportException: [node-master][192.168.100.50:9300][internal:cluster/coordination/join/validate] request_id [3832554] timed out after [60035ms]
> at org.elasticsearch.transport.TransportService$TimeoutHandler.run(TransportService.java:1022) [elasticsearch-7.4.1.jar:7.4.1]
> at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:703) [elasticsearch-7.4.1.jar:7.4.1]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
> at java.lang.Thread.run(Thread.java:830) [?:?]
> 
> ```
> 
> After around 15 minutes of these attempts `node-00` also concludes that the connection is broken:
> 
> ```auto
> [2019-10-26T16:04:13,289][INFO][o.e.c.s.MasterService] [node-00] node-left[{node-master}{QMKLhGHiSTWJsFh6IZG0lw}{F6SDojREQtSojw5Kke6RsA}{192.168.100.50}{192.168.100.50:9300}{im}{xpack.installed=true} disconnected], term: 135, version: 24862, reason: removed {{node-master}{QMKLhGHiSTWJsFh6IZG0lw}{F6SDojREQtSojw5Kke6RsA}{192.168.100.50}{192.168.100.50:9300}{im}{xpack.installed=true},}
> 
> ```
> 
> This causes it to drop the broken connection and start again from scratch, at which point the node rejoins the cluster. 15 minutes the default timeout for a TCP connection in Linux - the time between first sending a packet and giving up waiting for it to be acked.

Мы думаем, что, скорее всего, брандмауэр перекрывает [долгоживущие соединения](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-transport.html#_long_lived_idle_connections) между узлами каким-то образом.

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 28, 2019, 3:30pm UTC](https://discuss.elastic.co/t/7-3-2/201228/70 "2019-10-28T15:30:33Z")

</div>

Получается что Elasticsearch использует разные tcp коннекшены для FollowerChecker и выборов мастера?  
И если в первом данные бегают каждую секунду, то во втором очень редко(в нормальной ситуации)  
В сети маршрутизатор действительно мождет рвать соединения.  
Проставил в ОС `net.ipv4.tcp_keepalive_time` и поставил в конфиге маленький `transport.ping_schedule`

Игорь, спасибо

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 28, 2019, 3:59pm UTC](https://discuss.elastic.co/t/7-3-2/201228/71 "2019-10-28T15:59:00Z")

</div>

> [@Denis\_Lamanov](#):
>
> Получается что Elasticsearch использует разные tcp коннекшены для FollowerChecker и выборов мастера?

Да, это разные соединения, и состояние кластера тоже использует другое выделенное соединение. Соединения между узлами должны быть стабильными, иначе проблемы, которые вы наблюдаете - неизбежны.

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 28, 2019, 4:01pm UTC](https://discuss.elastic.co/t/7-3-2/201228/72 "2019-10-28T16:01:32Z")

</div>

Понял, спасибо. Теперь понятно почему меня смущал successful FollowerChecker.  
Всё подкрутили в ОС и конфиге. Также попросили добавить транспортные порты в исключения для разрыва соединений на маршрутизаторе. Наблюдаем. Отпишусь

---

<div class="post-metadata">

### Author: ![Denis\_Lamanov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/denis_lamanov/32/13111_2.png) [@Denis\_Lamanov](https://discuss.elastic.co/u/Denis_Lamanov)
#### Post date: [October 29, 2019, 1:07pm UTC](https://discuss.elastic.co/t/7-3-2/201228/73 "2019-10-29T13:07:53Z")

</div>

Как и обещал: всё полечилось. Всем спасибо)

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [November 26, 2019, 1:07pm UTC](https://discuss.elastic.co/t/7-3-2/201228/74 "2019-11-26T13:07:54Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.

[Previous page](https://discuss.elastic.co/t/7-3-2/201228.md?page=3)
