Elasticsearch简单入门--elasticsearch Bootstrap Checks

翻译:https://www.elastic.co/guide/en/elasticsearch/reference/5.6/bootstrap-checks.html

Bootstrap Checks

总的来说,我们有很多用户遇到意外问题的经验,因为他们没有配置重要的设置,在以前的Elasticsearch版本中,其中一些设置的错误配置被记录为警告,可以理解,用户有时会错过这些日志消息,确保这些设置得到应有的关注,Elasticsearch在启动时进行引导检查。

这些引导检查检查各种Elasticsearch和系统设置,并将它们与对Elasticsearch操作安全的值进行比较,如果Elasticsearch在开发模式,任何失败的引导检查都会在Elasticsearch日志中显示为警告,如果Elasticsearch处于生产模式,任何失败的引导检查都将导致Elasticsearch拒绝启动。

有一些引导检查总是强制执行,以防止Elasticsearch在不兼容的设置下运行。这些检查是单独记录的。

Development vs Production mode

默认情况下,Elasticsearch绑定到用于HTTP和传输(内部)通信的环回地址, 对于下载和玩玩Elasticsearch作为日常开发是很好的,

但是对于生产系统来说是没有用的,要加入一个集群,一个Elasticsearch节点能够通过交通通信到达,要通过非环回地址加入集群,节点必须将传输绑定到非环回地址,并且不使用单节点发现。因此,如果一个Elasticsearch节点不能通过非环回地址与另一台机器形成集群,我们认为该节点处于开发模式,如果可以通过非环回地址加入集群,则处于生产模式。

注意,HTTP和传输可以通过http.host和transport.host;

这对于将单个节点配置为可通过HTTP进行测试而无需触发生产模式非常有用。

Single-node discovery

我们认识到一些用户需要将传输绑定到外部接口,以测试传输客户机的使用情况,

对于这种情况,我们提供发现类型single-node(通过设置discovery.type 为 single-node)。在这种情况下,节点将选择自己为主节点,而不会与任何其他节点加入集群。

Forcing the bootstrap checks

如果您在生产环境中运行单个节点,则有可能逃避引导检查(要么不将传输绑定到外部接口,要么将传输绑定到外部接口并将发现类型设置为single-node), 对于这种情况,你可以通过设置系统属性es.enforce.bootstrap.checks: true强制引导检查的执行(set this in Setting JVM options, or by adding -Des.enforce.bootstrap.checks=true to the environment variable ES_JAVA_OPT),如果你处于这种特殊情况,我们强烈鼓励你这样做,此系统属性可用于强制执行独立于节点配置的引导检查。

Heap size check

如果JVM以不相等的初始和最大堆大小启动,在系统使用期间,当JVM堆被调整大小时,它很容易暂停,为了避免这些调整大小暂停,最好启动JVM时初始堆大小等于最大堆大小,此外, 如果 bootstrap.memory_lock是启用的,JVM将在启动时锁定堆的初始大小,如果初始堆大小不等于最大堆大小,在调整大小之后,不会出现JVM堆全部锁定在内存中的情况,要通过堆大小检查,必须配置堆大小。

File descriptor check

文件描述符是用于跟踪打开的“文件”的Unix构造。但是在Unix中,一切都是文件。例如,“文件”可以是物理文件、虚拟文件(例如/proc/loadavg)或网络套接字,Elasticsearch需要大量的文件描述符(例如,每个碎片由多个段和其他文件组成,加上到其他节点的连接,等等)。这个引导检查是在OS X和Linux上强制执行的。要通过文件描述符检查,可能需要配置文件描述符。

Memory Lock check

猜你喜欢

转载自blog.csdn.net/zhen_6137/article/details/86472875