Elasticsearch2.4集群环境搭建

环境介绍

Jdk 1.7.0_79
Elasticsearch 2.4.1
SearchGuard 2

下载Elasticsearch

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.1/elasticsearch-2.4.1.tar.gz
or
curl -L -O wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.1/elasticsearch-2.4.1.tar.gz

ps:通过tar包的方式安装,在某些情况下使用yum安装可能会有一些问题,比如通过yum安装时,开启分词组件jcseg的自动更新词库功能会失效。

解压

tar -zxvf elasticsearch-2.4.1.tar.gz
mv elasticsearch-2.4.1 /usr/local/elasticsearch

配置

elasticsearch默认是禁止使用root用户启动的,需要创建其他用户

useradd elasticsearch 

创建elasticsearch的相关目录

mkdir -p /data/elasticsearch/data
mkdir -p /data/elasticsearch/logs
mkdir -p /data/elasticsearch/scripts

##指定elasticsearch为以上目录的拥有者
chown -R elasticsearch.elasticsearch /data/elasticsearch

##创建elasticsearch插件存放目录
mkdir -p /usr/local/elasticsearch/plugins

配置elasticsearch.yml

#集群名称
 cluster.name: searchEngineTest
#节点名称
 node.name: seachEngine162
#数据存放目录
 path.data: /data/elasticsearch/data
#日志存放目录
 path.log: /data/elasticsearch/logs
#脚本存放目录
 path.script: /data/elasticsearch/scripts
#指定host
 network.host: 0.0.0.0
#端口号
 http.port: 9200
#指定节点自动发现,1.x版本貌似会自动发现
 discovery.zen.ping.unicast.hosts: ["192.168.1.162", "192.168.1.163"]

其他节点也做相应配置

启动elasticsearch

/usr/local/elasticsearch/bin/elasticsearch
or
/usr/local/elasticsearch/bin/elasticsearch -d

安装searchguard2

因为elasticsearch提供的安全插件shield只能免费试用一个月,所以使用开源免费的三方插件searchguard2

安装search-guard-ssl、search-guard-2插件

/usr/local/elasticsearch/bin/plugin install -b com.floragunn/search-guard-ssl/2.4.1.16
/usr/local/elasticsearch/bin/plugin install -b com.floragunn/search-guard-2/2.4.1.7

下载 searchguard-ssl 的包,里面包含自动创建证书的脚本:

git clone https://github.com/floragunncom/search-guard-ssl.git

进入searchguard-sslexample-pki-scripts,修改以下shell脚本:

gen_client_node_cert.sh //创建客户端证书
gen_node_cert.sh       // 创建节点证书
gen_root_ca.sh         // 创建根证书

修改脚本:

vim gen_client_node_cert.sh
找到:-dname "CN=$CLIENT_NAME, OU=client, O=client, L=Test, C=DE"
修改为:-dname "CN=$CLIENT_NAME"

vim gen_node_cert.sh
找到:-dname "CN=$NODE_NAME.example.com, OU=SSL, O=Test, L=Test, C=DE" \
修改为:-dname "CN=$NODE_NAME" \

编辑脚本example.sh

#!/bin/bash
set -e
./clean.sh
./gen_root_ca.sh password password 
./gen_node_cert.sh node-0 password  password 
./gen_node_cert.sh node-1 password  password
./gen_client_node_cert.sh admin password password
cp truststore.jks node-0-keystore.jks /usr/local/elasticsearch/config/  #ps:根据节点名称拷贝相应文件
cp truststore.jks admin-keystore.jks /usr/local/elasticsearch/plugins/search-guard-2/sgconfig/

将 example.sh 里的 kspass, tspass, capass 改为自己的密码,并且对应的配置项 searchguard.ssl.transport.node.keystore_password 和 searchguard.ssl.transport.node.truststore_password 的值改为对应的密码

配置elasticsearch:在elasticsearch.yml中添加以下内容:

#############################################################################################
#                                     SEARCH GUARD                                          #
#                                     Configuration                                         #
#############################################################################################
 searchguard.enable: true
 searchguard.authcz.admin_dn:
  - CN=admin

#############################################################################################
#                                     SEARCH GUARD SSL                                      #
#                                       Configuration                                       #
#############################################################################################


#############################################################################################
# Transport layer SSL                                                                       #
#                                                                                           #
#############################################################################################
# Enable or disable node-to-node ssl encryption (default: true)
 searchguard.ssl.transport.enabled: true
# JKS or PKCS12 (default: JKS)
#searchguard.ssl.transport.keystore_type: PKCS12
# Relative path to the keystore file (mandatory, this stores the server certificates), must be placed under the config/ dir
 searchguard.ssl.transport.keystore_filepath: node-0-keystore.jks
# Alias name (default: first alias which could be found)
#searchguard.ssl.transport.keystore_alias: my_alias
# Keystore password (default: changeit)
 searchguard.ssl.transport.keystore_password: password
# JKS or PKCS12 (default: JKS)
#searchguard.ssl.transport.truststore_type: PKCS12
# Relative path to the truststore file (mandatory, this stores the client/root certificates), must be placed under the config/ dir
 searchguard.ssl.transport.truststore_filepath: truststore.jks
# Alias name (default: first alias which could be found)
#searchguard.ssl.transport.truststore_alias: my_alias
# Truststore password (default: changeit)
 searchguard.ssl.transport.truststore_password: password
# Enforce hostname verification (default: true)
 searchguard.ssl.transport.enforce_hostname_verification: false
# If hostname verification specify if hostname should be resolved (default: true)
 searchguard.ssl.transport.resolve_hostname: false
# Use native Open SSL instead of JDK SSL if available (default: true)
 searchguard.ssl.transport.enable_openssl_if_available: false

将其中的password修改为searchguard中创建的密码
所有elasticsearch节点做相同配置

启动elasticsearch集群并使相应的search_guard配置生效:
1、启动elasticsearch集群
2、使用search_guard自带的工具使配置信息生效,将用户等信息写入elasticsearch

./plugins/search-guard-2/tools/sgadmin.sh -cn 集群名称 -h hostname -cd plugins/search-guard-2/sgconfig -ks plugins/search-guard-2/sgconfig/admin-keystore.jks -kspass password -ts plugins/search-guard-2/sgconfig/truststore.jks -tspass password -nhnv

ps:hostname:指的是 network.host 设置的值,password为example.sh重创建的密码

执行完后再访问http//IP:9200/会提示需要相应的用户名密码,超级管理员用户名:admin 密码:admin
这里写图片描述

修改超级管理员admin密码:
1、使用search_guard自带的hash密码生成脚本生成加密密码

/usr/local/elasticsearch/plugins/search-guard-2/tools/hash.sh -p newpassword

编辑/usr/local/elasticsearch/plugins/search-guard-2/sgconfig下的sg_internal_users.yml文件,将生成的hash密码覆盖需要修改的用户名下

使search_guard配置生效,每修改search_guard的配置文件都需自行以下命令使其生效

./plugins/search-guard-2/tools/sgadmin.sh -cn 集群名称 -h hostname -cd plugins/search-guard-2/sgconfig -ks plugins/search-guard-2/sgconfig/admin-keystore.jks -kspass password -ts plugins/search-guard-2/sgconfig/truststore.jks -tspass password -nhnv

ps:转载请注明文章出处http://blog.csdn.net/dxyblog/article/details/53033553

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概述: Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它可以处理大量结构化和非结构化数据。在本文中,我们将了解如何在Linux环境中搭建Elasticsearch集群。 步骤: 步骤1:安装Java 在安装Elasticsearch之前,Java是必需的。您可以使用以下命令从命令行安装Java: ``` sudo apt-get update sudo apt-get install default-jre ``` 步骤2:下载和安装Elasticsearch 您可以从Elasticsearch官方网站下载最新版本的Elasticsearch。下载完成后,您可以使用以下命令安装它: ``` sudo dpkg -i elasticsearch-7.10.1-amd64.deb ``` 步骤3:配置Elasticsearch 默认情况下,Elasticsearch将在本地主机上运行。您可以通过编辑以下文件来更改默认配置: ``` sudo nano /etc/elasticsearch/elasticsearch.yml ``` 在此文件中,您可以更改以下设置: - cluster.name:设置集群名称。 - node.name:设置节点名称。 - network.host:设置网络接口。 - http.port:设置HTTP端口。 步骤4:启动Elasticsearch 要启动Elasticsearch,请使用以下命令: ``` sudo systemctl start elasticsearch ``` 要检查Elasticsearch是否正在运行,请使用以下命令: ``` sudo systemctl status elasticsearch ``` 步骤5:配置Elasticsearch集群 要配置Elasticsearch集群,请编辑以下文件: ``` sudo nano /etc/elasticsearch/elasticsearch.yml ``` 在该文件中,您可以使用以下设置来配置集群: - cluster.name:设置集群名称。 - node.name:设置节点名称。 - network.host:设置网络接口。 - http.port:设置HTTP端口。 - discovery.seed_hosts:设置种子主机列表。 在配置文件中,您还需要更改以下设置: ``` cluster.initial_master_nodes: ["node-1", "node-2"] ``` 此设置定义了集群中的初始主节点。您需要在每个节点上设置不同的名称。 步骤6:启动Elasticsearch集群 要启动Elasticsearch集群,请使用以下命令: ``` sudo systemctl start elasticsearch ``` 要检查Elasticsearch集群是否正在运行,请使用以下命令: ``` curl -X GET "http://localhost:9200/_cluster/health?pretty=true" ``` 此命令将显示有关集群的健康状态信息。 结论: 在本文中,我们了解了如何在Linux环境中搭建Elasticsearch集群。我们从安装Java开始,然后下载和安装Elasticsearch。接下来,我们配置了Elasticsearch,并启动了它。最后,我们配置了Elasticsearch集群,并启动了它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值