Файловые дескрипторыasticsearch и предупреждения vm становятся ошибками, когда не привязываются к localhost - PullRequest
0 голосов
/ 16 мая 2018

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


Установлен elasticsearch и может получить доступ с локального хоста, но возникли проблемы с таймаутом при попытке подключения с удаленного компьютера.Попытка исправить выбрасывает ошибки, которые, прежде чем пытаться исправить, были просто предупреждениями.

Этот другой пост ( Установлен эластичный поиск на сервере, но не может подключиться к нему, если с другого компьютера ) может быть устаревшим, как при проверке elasticsearch.yml, похоже, нет переменной network.bind_hostи пост, кажется, ссылается на более старую версию.Но, следуя этому, насколько это возможно, выполнение

[me@mapr07 config]$ netstat -ntlp | awk '/[j]ava/'
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)          
tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      21109/java          
tcp6       0      0 ::1:9200                :::*                    LISTEN      21109/java  

показывает, что мы привязываемся к localhost и «если вы привязываетесь к localhost (т. Е. 127.0.0.1), вы можете принимать соединения только от localhost, а нечерез сеть. "(https://stackoverflow.com/a/24057311/8236733) (я не знаю много сетевых вещей).

Из документов эластичного поиска (https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html#advanced-network-settings), попытались установить переменную network.bind_host в * 1025)* до 0.0.0.0 (как в оригинальном сообщении). Однако, после повторной установки эластичного поиска, мы видим вывод:

[2018-05-15T14:49:54,395][INFO ][o.e.n.Node               ] [TjtCCG8] starting ...
[2018-05-15T14:49:54,603][INFO ][o.e.t.TransportService   ] [TjtCCG8] publish_address {127.0.0.1:9300}, bound_addresses {[::]:9300}
[2018-05-15T14:49:54,620][INFO ][o.e.b.BootstrapChecks    ] [TjtCCG8] bound or publishing to a non-loopback address, enforcing bootstrap checks

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[2018-05-15T14:49:54,641][INFO ][o.e.n.Node               ] [TjtCCG8] stopping ...
[2018-05-15T14:49:54,670][INFO ][o.e.n.Node               ] [TjtCCG8] stopped
[2018-05-15T14:49:54,670][INFO ][o.e.n.Node               ] [TjtCCG8] closing ...
[2018-05-15T14:49:54,701][INFO ][o.e.n.Node               ] [TjtCCG8] closed

Я не понимаю, как это происходит, и я также не понимаю, почемуэто даже реальная проблема, так как ранее он выдавал эту ошибку как предупреждение при привязке к localhost и все равно работал бы, например.

[2018-05-15T15:01:32,017][INFO ][o.e.n.Node               ] [TjtCCG8] starting ...
[2018-05-15T15:01:32,283][INFO ][o.e.t.TransportService   ] [TjtCCG8] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}

[2018-05-15T15:01:32,303][WARN ][o.e.b.BootstrapChecks    ] [TjtCCG8] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2018-05-15T15:01:32,304][WARN ][o.e.b.BootstrapChecks    ] [TjtCCG8] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[2018-05-15T15:01:35,372][INFO ][o.e.c.s.MasterService    ] [TjtCCG8] zen-disco-elected-as-master ([0] nodes joined), reason: new_master {TjtCCG8}{TjtCCG8LQOWOE2HNFdcLxA}{ik_q1XYnTk-BBJXcBMNK_A}{127.0.0.1}{127.0.0.1:9300}

Мой вопрос : почему это происходит?В обоих случаях, похоже, используется одинаковое количество файловых дескрипторов и виртуального пространства, так почему же при привязке к 0.0.0.0 эта сумма больше не просто уровень предупреждения, а ошибка?

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


Выполнение некоторого быстрого поиска в Google,Документы рекомендуют выполнить команду

sudo su  
ulimit -n 65536 
su elasticsearch (dont exit *back* to elasticsearch session, since new limit only applies to current session (which ends if you exit))

для устранения ошибки max file descriptors [4096] for elasticsearch process is too low, поскольку

Elasticsearch использует множество файловых дескрипторов или файловых дескрипторов.Исчерпание файловых дескрипторов может иметь катастрофические последствия и, скорее всего, приведет к потере данных.Обязательно увеличьте ограничение на количество дескрипторов открытых файлов для пользователя, запускающего Elasticsearch, до 65 536 или выше.

(https://www.elastic.co/guide/en/elasticsearch/reference/current/file-descriptors.html#file-descriptors). Во-вторых, чтобы устранить ошибку max virtual memory, запустите

(sudo) sysctl -w vm.max_map_count=262144

в системах linux, поскольку

Ограничения операционной системы по умолчанию для счетчиков mmap могут быть слишком низкими, что может привести к исключениям нехватки памяти

(https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html#vm-max-map-count).

1 Ответ

0 голосов
/ 16 мая 2018

Так как asticsearch при загрузке, он проверит адрес привязки, является ли адрес обратной связи (127.0.0.1) , если это адрес обратной связи , он будетигнорировать ошибки проверки начальной загрузки .

Ссылка:

BootstrapChecks.enforceLimits

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