文档章节

Elasticsearch 5.0-配置检查

brianway
 brianway
发布于 2016/12/13 21:20
字数 917
阅读 384
收藏 15

Elasticsearch 5.0-配置检查

标签 : Elasticsearch


[TOC]


本文是 Elasticsearch 5.0 系列博文的配置检查篇,主要介绍 Elasticsearch 的 Bootstrap Checks

写在前面

  • 本文以 Elasticsearch 5.0.1 版本为例进行讲解,不定期更新
  • 该系列主要参考的 Elasticsearch Reference: 5.0,尽量避免照搬翻译,只摘录精要部分辅以简单说明
  • 写这个系列博客的初衷是强迫自己梳理,同时方便一些较忙/没空耐心看英文文档的朋友快速上手,建议读者有空多读官方文档,毕竟别人写的都是二手资料
  • 如需查看 ES 系列更多博文,请关注我的个人网站@brianway 或者 @CSDN

为什么有 Bootstrap Checks

Bootstrap Checks 是 Elasticsearch 5.0 新加入的,在之前的 2.x 版本是没有的。之前的版本中,错误的配置会被当成 warning 记录到日志中,但这些信息往往被用户忽视。为了保证一些重要的配置得到应有的重视,Elasticsearch 会在启动时进行 Bootstrap Checks .

Bootstrap Checks 会检查很多 Elasticsearch 和系统的配置。在开发模式下,所有没通过的检查都会报 warnings 并写进日志文件,即使检查没通过,依然可以启动节点运行 Elasticsearch;而在生产模式下,任何没通过的 Bootstrap Checks 都会报异常并阻止 Elasticsearch 启动。

开发模式 vs. 生产模式

Elasticsearch 的 HTTP 默认绑定到localhost,并且 transport 使用内部通信,适用于日常开发;而组成集群时,由于每个 ES 实例要可达,故 transport 必须绑定到外部接口。

一般 Elasticsearch 默认你是在开发模式下工作;一旦配置了诸如network.host的网络配置项,Elasticsearch会认为你处于生产环境。这是避免服务器因不良配置造成数据丢失的重要安全措施。

另外,HTTP 和 transport 可以分别通过 http.hosttransport.host进行配置,所以配置单点实例可达时,可以用 HTTP 进行测试而无需触发生产模式。

Bootstrap Checks

有很多检查项,以 Heap size check为例子,由于 Elasticsearch 是使用 Java 写的,程序在 JVM 上运行,而 JVM 的堆大小是可以配置的。如果 JVM 的起始堆大小不等于最大堆大小,那么在堆 resize 的时候很容易造成系统停滞,为了避免这种resize pauses,一开始就应将两者设置成相等。

类似的检查还有很多,大部分是针对 JVM 配置项的检查,有些检查项只在 Linux 系统上会检查,有些在所有平台都会检查。这里只列举出检查项,不作进一步说明了,具体每一项说明可参考 Bootstrap Checks

  • Heap size check
  • File descriptor check
  • Memory lock check
  • Maximum number of threads check
  • Maximum size virtual memory check
  • Maximum map count check
  • Client JVM check
  • Use serial collector check
  • OnError and OnOutOfMemoryError checks

重要的系统配置

从上节可知,很多Bootstrap Checks涉及到系统配置,我们需要对系统进行一些配置来使 Elasticsearch 可以获取更多的资源。

一般必须配置以下几条设置:

  • Set JVM heap size
  • Disable swapping
  • Increase file descriptors
  • Ensure sufficient virtual memory
  • Ensure sufficient threads

在哪里配置系统设置取决于你使用的安装包以及你使用的操作系统,具体的配置方法见 Configuring system settings

JVM 参数建议通过 jvm.options 配置文件进行配置,当然,也可以通过 ES_JAVA_OPTS 环境变量来配置。


作者@brianway更多文章:个人网站 | CSDN | oschina

© 著作权归作者所有

brianway
粉丝 334
博文 97
码字总数 130139
作品 0
武汉
后端工程师
私信 提问
elasticsearch-head 安装介绍

elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 插件的安装在 Linux 和 Windows 没什么区别,安装之前确保当前系...

BeckJin
2018/05/19
0
0
Elastic中国开发者大会

Elastic 中国开发者大会 2016(Elastic{ON} Dev China 2016)是由 Elastic 官方在中国举办的第一次开发者大会,主要围绕 Elastic 的开源产品: Elasticsearch、Logstash、Kibana 和 Beats,探...

Medcl
2016/11/13
570
4
Elasticsearch 安装Head插件(2)

Elasticsearch Head Plugin: 对ES进行各种操作,如查询、删除、浏览索引等。 1、下载elasticsearch-head并解压 在线下载:wget https://github.com/mobz/elasticsearch-head/archive/master....

Favour
2017/10/27
0
0
elasticsearch5.0及head插件安装

本文主要介绍elasticsearch5.0安装及head插件安装。 确保系统已经安装好jdk1.8.0_73以上,操作系统centos6以上。 一、elasticsearch安装配置 1.官网下载源码包 https://artifacts.elastic.co...

hnr1017
2018/07/03
0
0
日志系统ELK使用详解(三)--elasticsearch安装

概述 日志系统ELK使用详解(一)–如何使用 日志系统ELK使用详解(二)–Logstash安装和使用 日志系统ELK使用详解(三)–elasticsearch安装 日志系统ELK使用详解(四)–kibana安装和使用 日志系统E...

qq_41262248
2018/04/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

带你了解 Java内存模型

Java内存模型的规定: 1、所有变量存储在主内存中; 2、每个线程都有自己的工作内存,且对变量的操作都是在工作内存中进行; 3、不同线程之间无法直接访问彼此工作内存中的变量,要想访问只能...

linux-tao
1分钟前
0
0
.net c# datetime转string 时间转字符串

.net c# datetime转string 时间转字符串 .net c# datetime转string 时间转字符串 刚开始接触net 时间转换字符串 一搜索出来的全是 字符串转时间,要么就是系统当前时间转字符串 就没有一个指...

青峰Jun19er
3分钟前
1
0
hbase demo

HbaseDao public class HbaseDao {@Testpublic void insertTest() throws Exception {Configuration conf = HBaseConfiguration.create();conf.set("hbase.zookeeper.qu......

Garphy
12分钟前
1
0
IT兄弟连 HTML5教程 HTML5表单 多样的输入类型2

4 range range类型用于包含一定范围内数字值的输入域,跟number一样,我们还可以对数值设置限定,range类型显示为滑动条用法如下: 上述代码使用了range类型输入框,为该类型设置了数值范围为...

老码农的一亩三分地
12分钟前
1
0
对比不同的数据库连接的异同

博主在学习和使用数据库连接时,遇到的问题, 这个几个数据库连接究竟有什么不同? 到底什么时候该使用哪个会更好一点? 带着这个问题我们先去了解常见的数据库连接 1. 常见的数据库连接有哪些?...

理性思考
14分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部