Добрый день.
Пытаюсь изменить настройки действий по исчерпанию дисового пространства через 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.
То же самое происходит, когда я пытаюсь поменять high watermark. Тогда он ругается, что flood установлен на 95, хотя я везде проставил его на 98.
Скорее всего, они не подцепились. Вы ноду после изменения в файле перегружали? У вас в /_cluster/settings другое значение не стоит? По приоритетам, настройки берутся из файла, с командной строки, постоянные, временные.
Как я уже написал ранее одну и ту же установку можно задать в нескольких местах. Для того, чтобы посмотреть, какое значение в данный момент используется кластером, можно запустить:
GET _cluster/settings?include_defaults=true
или
GET _cluster/settings?include_defaults=true&flat_settings
Можно вас попросить написать вывод команды целиком здесь, а так же elasticsearch.yml со всех нод ( и если есть какие-то значения переменных окружения не по-умолчанию, то и их тоже) ?
Тут надо отметить что устанавливать одно и то же значение и в transient и в persistent не имеет никого смысла. Если надо, что бы установки выжили перезагрузку кластера - то используйте persistent, если нет - то transient. И то и другое - только усложняет ситуацию.
Когда запускаю следующую команду, то получаю, ошибку, как у вас
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.disk.watermark.low": "93%"
}
}
Однако, эта команда прекрасно работает, как и ожидалось
И раз уж зашла речь, правильно ли я понимаю, что persistent settings будут действовать, пока жива хотя бы одна нода кластера?
В случае включения кластера с нуля будут использоваться настройки из elasticsearch.yml?
И раз уж зашла речь, правильно ли я понимаю, что persistent settings будут действовать, пока жива хотя бы одна нода кластера?
Если вы спрашиваете про transient и под нодой, вы имеете в виду ноду, которая может быть мастером - то да. persistent переживают перезагрузку всего кластера, они только исчезнут, если вы все ноды остановите, и удалите на них фолдер с данными.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.