# Не удается поменять параметры disk watermark

**URL:** <https://discuss.elastic.co/t/disk-watermark/152194>\
**Category:** Вопросы на русском языке\
**Created:** [October 12, 2018, 8:57am UTC](https://discuss.elastic.co/t/disk-watermark/152194 "2018-10-12T08:57:14Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![74db36a597f21b891b3f](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/74db36a597f21b891b3f/32/45367_2.png) [@74db36a597f21b891b3f](https://discuss.elastic.co/u/74db36a597f21b891b3f)\
**Post date:** [October 12, 2018, 8:57am UTC](https://discuss.elastic.co/t/disk-watermark/152194/1 "2018-10-12T08:57:14Z")

</div>

Добрый день.  
Пытаюсь изменить настройки действий по исчерпанию дисового пространства через API, но мне возращается ошибка:

```
[admin@client1 ~]$ curl -X PUT "10.xxx.xxx.xxx:9200/_cluster/settings?flat_settings=true" -H 'Content- 
Type: application/json' -d'
{
"transient" : {
    "cluster.routing.allocation.disk.watermark.low" : "93%"
}, "persistent" : {
    "cluster.routing.allocation.disk.watermark.low" : "93%"
}
}
'
{"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[Master1][10.xxx.xxx.xxx:9300][cluster:admin/settings/update]"}],"type":"illegal_argument_exception","reason":"low disk watermark [93%] more than high disk watermark [90%]"},"status":400}

```

В действительности high disk watermark установлен на 95% во всех возможных местах: в файле на хостах, в постоянных и временных настройках.  
То же самое происходит, когда я пытаюсь поменять high watermark. Тогда он ругается, что flood установлен на 95, хотя я везде проставил его на 98.

Откуда берутся эти настройки?

---

<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 14, 2018, 7:19am UTC](https://discuss.elastic.co/t/disk-watermark/152194/2 "2018-10-14T07:19:08Z")

</div>

Лучше всего менять сразу обе настройки, чтобы в целом они были

```auto
PUT /_cluster/settings?flat_settings=true
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "93%",
    "cluster.routing.allocation.disk.watermark.high": "95%"
  }
}

```

> То же самое происходит, когда я пытаюсь поменять high watermark. Тогда он ругается, что flood установлен на 95, хотя я везде проставил его на 98.

Скорее всего, они не подцепились. Вы ноду после изменения в файле перегружали? У вас в `/_cluster/settings` другое значение не стоит? По приоритетам, настройки берутся из файла, с командной строки, постоянные, временные.

---

<div class="post-metadata">

**Author:** ![74db36a597f21b891b3f](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/74db36a597f21b891b3f/32/45367_2.png) [@74db36a597f21b891b3f](https://discuss.elastic.co/u/74db36a597f21b891b3f)\
**Post date:** [October 15, 2018, 7:21am UTC](https://discuss.elastic.co/t/disk-watermark/152194/3 "2018-10-15T07:21:37Z")

</div>

/\_cluster/settings возвращает только значение flood\_stage - 98%

Не так давно перезагружал все ноды для добавления новой. В конфиг файле disk.watermark.high стоит 95%.

---

<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 15, 2018, 1:50pm UTC](https://discuss.elastic.co/t/disk-watermark/152194/4 "2018-10-15T13:50:36Z")

</div>

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

```auto
GET _cluster/settings?include_defaults=true

```

или

```auto
GET _cluster/settings?include_defaults=true&flat_settings

```

---

<div class="post-metadata">

**Author:** ![74db36a597f21b891b3f](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/74db36a597f21b891b3f/32/45367_2.png) [@74db36a597f21b891b3f](https://discuss.elastic.co/u/74db36a597f21b891b3f)\
**Post date:** [October 22, 2018, 8:07am UTC](https://discuss.elastic.co/t/disk-watermark/152194/5 "2018-10-22T08:07:30Z")

</div>

Добрый день.

Понятнее не стало. В выдаче команды фигурируют именно те цифры, которые и есть на самом деле: low-90, high - 95 , flood - 98.

---

<div class="post-metadata">

**Author:** ![Vladimir.Dolzhenko](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/vladimir.dolzhenko/32/34352_2.png) [@Vladimir.Dolzhenko](https://discuss.elastic.co/u/Vladimir.Dolzhenko)\
**Post date:** [October 22, 2018, 2:59pm UTC](https://discuss.elastic.co/t/disk-watermark/152194/6 "2018-10-22T14:59:13Z")

</div>

Можно вас попросить написать вывод команды целиком здесь, а так же elasticsearch.yml со всех нод ( и если есть какие-то значения переменных окружения не по-умолчанию, то и их тоже) ?

---

<div class="post-metadata">

**Author:** ![74db36a597f21b891b3f](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/74db36a597f21b891b3f/32/45367_2.png) [@74db36a597f21b891b3f](https://discuss.elastic.co/u/74db36a597f21b891b3f)\
**Post date:** [November 14, 2018, 1:28pm UTC](https://discuss.elastic.co/t/disk-watermark/152194/7 "2018-11-14T13:28:58Z")

</div>

Привет. Прошу прощения за долгое ожидание.  
Вот вывод команды: [https://pastebin.com/a14MPxRi](https://pastebin.com/a14MPxRi)  
В файлах elasticsearch.yml лимиты заданы явно.

---

<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:** [November 14, 2018, 4:33pm UTC](https://discuss.elastic.co/t/disk-watermark/152194/8 "2018-11-14T16:33:25Z")

</div>

Попытался воспроизвести вашу проблему следующим образом:

1. Запустил 1 ноду v6.4.1 с установками:

```auto
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: "90%"
cluster.routing.allocation.disk.watermark.high: "95%"

```

1. Запустил команду:

```auto
PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.flood_stage": "98%"
  },
  "persistent": {
    "cluster.routing.allocation.disk.watermark.flood_stage": "98%"
  }
}

```

Тут надо отметить что устанавливать одно и то же значение и в `transient` и в `persistent` не имеет никого смысла. Если надо, что бы установки выжили перезагрузку кластера - то используйте `persistent`, если нет - то `transient`. И то и другое - только усложняет ситуацию.

1. Когда запускаю следующую команду, то получаю, ошибку, как у вас

```auto
PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "93%"
  }
}

```

1. Однако, эта команда прекрасно работает, как и ожидалось

```auto
PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "93%",
    "cluster.routing.allocation.disk.watermark.high": "95%"
  }
}

```

Так что я не очень понимаю, в чем проблема.

---

<div class="post-metadata">

**Author:** ![74db36a597f21b891b3f](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/74db36a597f21b891b3f/32/45367_2.png) [@74db36a597f21b891b3f](https://discuss.elastic.co/u/74db36a597f21b891b3f)\
**Post date:** [November 14, 2018, 7:03pm UTC](https://discuss.elastic.co/t/disk-watermark/152194/9 "2018-11-14T19:03:42Z")

</div>

Хм, в Вашем варианте и правда сработало. Спасибо.

И раз уж зашла речь, правильно ли я понимаю, что persistent settings будут действовать, пока жива хотя бы одна нода кластера?  
В случае включения кластера с нуля будут использоваться настройки из elasticsearch.yml?

---

<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:** [November 14, 2018, 7:42pm UTC](https://discuss.elastic.co/t/disk-watermark/152194/10 "2018-11-14T19:42:41Z")

</div>

> И раз уж зашла речь, правильно ли я понимаю, что persistent settings будут действовать, пока жива хотя бы одна нода кластера?

Если вы спрашиваете про `transient` и под нодой, вы имеете в виду ноду, которая может быть мастером - то да. `persistent` переживают перезагрузку всего кластера, они только исчезнут, если вы все ноды остановите, и удалите на них фолдер с данными.

---

<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:** [December 12, 2018, 7:42pm UTC](https://discuss.elastic.co/t/disk-watermark/152194/11 "2018-12-12T19:42:45Z")

</div>

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