【Elasticsearch7.0】之安装和安全配置

star2017 1年前 ⋅ 636 阅读

接下来让我们来了解下如何设置elasticsearch的一些配置。

下载

es支持很多平台,es7.0.1除了不支持Ubuntu 14.04、SLES 11 SP4**、Debian 7、Solaris/SmartOS这几个平台外,其他的平台都支持安装。
es有自带的jvm,可以使用它自带的jvm。当然也可以使用自己的jdk,但是官方推荐使用支持LTS版本的Java,不然启动可能会失败。

可以使用多种方式来启动es,使用自己的服务器或者购买云服务。es提供了很多安装包,下载地址,可以根据自己需求下载不同平台的包。
es还提供了一些管理工具:Puppet、Chef、Ansible,来帮助我们提供部署效率。
下面是在linux下安装

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.1.0-linux-x86_64.tar.gz.sha512 
tar -xzf elasticsearch-7.1.0-linux-x86_64.tar.gz
cd elasticsearch-7.1.0/

启动

./bin/elasticsearch

这样的启动是在前端启动,如果你按ctrl+c,那么就会关闭es。
使用以下命令来后台启动es

nohup ./bin/elasticsearch &

判断是否启动,可以看日志,或者调用http://127.0.0.1:9200/请求。
返回值

{

  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "7.1.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "f27399d",
    "build_date" : "2017-05-27T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}

如何以守护进程启动

./bin/elasticsearch -d -p pid

日志在$ES_HOME/logs/目录下

如何杀掉进程

pkill -F pid

es启动的时候会去加载配置文件,文件地址为$ES_HOME/config/elasticsearch.yml,当然也可以在启动的命令行中指定参数,可以使用-E语法来设置。

./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1

配置建议:一般集群相关的配置(如cluster.name)在elasticsearch.yml里面指定,节点相关的配置(如node.name)可以在命令行指定。

目录结构

直接解压es就可以启动了,不需要创建其他目录或者文件。所有安装卸载都非常方便。但是建议需要把数据、log、配置文件放在其他目录里,这样升级版本的时候或者卸载的时候不会影响数据。

类型描述默认路径配置
homees主目录或者$ES_HOME解压的目录
bines和es-plugin二进制文件$ES_HOME/bin
conf配置文件所在目录,包括elasticsearch.yml$ES_HOME/config可以配置ES_PATH_CONF环境变量来自定义配置文件
data存储数据的位置,可以配置多个路径$ES_HOME/data可以通过path.data属性配置
logs日志文件路径$ES_HOME/logs可以通过path.logs配置
plugins插件文件路径,所有插件都在该目录下$ES_HOME/plugins
repo分片文件系统存储路径,可以配置多个路径未配置使用path.repo来配置
script脚本文件路径$ES_HOME/scripts使用path.scripts来配置

配置es

es具有很好的默认配置,基本上不需要怎么修改配置就直接可以启动了。可以通过集群更新设置的接口来修改集群的配置。在集群中一般需要配置node.name和paths,如果新的节点需要加入集群,那么需要配置cluster.name和network.host两个参数。
es一般有3个配置文件

  • elasticsearch.yml 用来配置es
  • jvm.options 用来配置es的jvm
  • log4j2.properties 用来配置es的日志

默认情况下,这些配置文件在安装目录的conf下面。可以通过设置环境变量ES_PATH_CONF来设置配置文件路径

ES_PATH_CONF=/path/to/my/config ./bin/elasticsearch

可以在启动的命令行中指定,也可以在环境变量中指定。对于安装包,他们的默认配置文件在/etc/elasticsearch下面。如果要改变他们的配置,只修改ES_PATH_CONF是不够的。需要在默认的安装路径下也要做相应的修改。像:Debian包的配置在/etc/default/elasticsearch下面;RPM包的配置在/etc/sysconfig/elasticsearch下面。

配置文件是通过yaml配置的。可以使用以下两个方式来配置
方式1:

path:
    data: /var/lib/elasticsearch
    logs: /var/log/elasticsearch

方式2

path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

可以通过${}符号来设置配置,如:

node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}

jvm配置

一般情况下不需要设置jvm配置参数。如果要变更,就去设置heap size。如果要设置jvm参数,那么优先在jvm.options文件里面配置。一般情况下在conf目录下,如果是Debian或者RPM安装包,那么在/etc/elasticsearch/下面。
该文件是以行分隔的形式指定:
如果一行里面都是空格,该配置会被忽略。
如果以#开头,表示备注,在加载的时候会被忽略。
以-开头表示jvm的参数,当前配置的jdk版本对应,类似-Xmx2g
如果以8:-Xmx2g,那么表示只有jdk8的时候,该配置才生效。
如果配置了8-:-Xmx2g,那么表示jvm大于或者等于jdk8,该配置才生效。
如果配置了8-9:-Xmx2g,那么表示jvm在8和9之间(包含关系)时,该配置才生效。
如果配置了其他形式的字符,都会被拒绝。

还可以使用另一种方式来设置jvm变量,可以使用ES_JAVA_OPTS参数来设置,如:

export ES_JAVA_OPTS="$ES_JAVA_OPTS -Djava.io.tmpdir=/path/to/temp/dir" ./bin/elasticsearch

目前es中只支持jvm.options或者ES_JAVA_OPTS来配置jvm。其他的配置方式都不支持。如:JAVA_OPTS

安全设置

有些信息是比较敏感的,只使用操作系统的文件权限去管理是不够的。es这边提供了一种秘钥库,使用elasticsearch-keystore来对这些敏感信息进行管理。
只有运行es的用户才能执行keystore里面的命令。只有一部分配置是从秘钥库中取读取的。每次修改这里的配置都需要重启es服务。目前es只是对keystore里面的数据做了下混淆,没有加密码保护。
如果你的es是集群,那么必须保证每个节点的配置都是一样的。

创建keystore

使用create命令来创建elasticsearch.keystore文件

bin/elasticsearch-keystore create

elasticsearch.keystore文件会创建在conf文件夹里面。

列出配置信息

使用list命令来列举配置信息

bin/elasticsearch-keystore list

image.png

添加字符串

可以使用add命令来对敏感的字符串进行设置。如身份验证的数据

bin/elasticsearch-keystore add the.setting.name.to.set

image.png
设置完之后
image.png
如果你想把某个文件里面的内容设置到秘钥库里面,那么需要使用--stdin标签

cat /file/containing/setting/value | bin/elasticsearch-keystore add --stdin the.setting.name.to.set

添加文件

使用add-file来添加文件。

bin/elasticsearch-keystore add-file new.file /path/example-file.json

image.png
image.png

删除配置

使用remove命令来删除配置。

bin/elasticsearch-keystore remove new.file

image.png

重载安全配置

在不重启的情况下,有些安全配置是可以被重新载入的。可以使用下面接口进行重载:

POST _nodes/reload_secure_settings
本文为博主原创文章,未经博主允许不得转载。
更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: