我爱编程

ElasticSearch环境搭建

2018-04-13  本文已影响0人  追杀丘比特

环境准备

采用三台CentOS7.3部署Elasticsearch集群,以下是索引分片的简单介绍。

系统 节点名 IP
CentOS7.3 Node-1 192.168.20.230
CentOS7.3 Node-2 192.168.20.231
CentOS7.3 Node-3 192.168.20.232

集群搭建

由于es集群需要java环境作支持,因此在一开始就需要部署java环境

  1. 首先到jdk官网上根据linux的版本下载你对应的的jdk版本,查看linux版本命令cat /proc/version
[esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ cat /proc/version
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017

选择64位的jdk-8u161-linux-x64.tar.gz版本下载,下载完成后使用ftp工具将该压缩包上传至java安装目录 /usr/java
使用命令 tar -zxvf jdk-8u161-linux-x64.tar.gz 解压缩即可

  1. 配置环境变量:
[root@ceiec-1 java]# vi /etc/profile

在文件最后面添加:

export JAVA_HOME=/usr/java/jdk1.8.0_131   #jdk安装路径
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export  PATH=${JAVA_HOME}/bin:$PATH
  1. 执行profile文件
[root@ceiec-1 java]# source /etc/profile

这样可以使配置不用重启即可立即生效。

  1. 检查jdk版本:
[root@ceiec-1 java]# java -version

显示

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

即表示jdk环境安装成功!

  1. 下载
    去官网下载es安装文件elasticsearch-5.5.3.tar.gz同样上传到第一台linux下es的安装目录/data/bigdata 使用命令tar -zxvf解压缩该文件 得到elasticsearch-5.5.3文件。
  2. 编辑elasticsearch.yml配置文件
    使用cd命令进入es安装目录
[root@ceiec-1 ~]# cd  /data/bigdata/elasticsearch-5.5.3

使用vi命令编辑配置文件,该配置文件位于config目录下

[root@ceiec-1 elasticsearch-5.5.3]# vi config/elasticsearch.yml

主要修改以下几个地方:

cluster.name: ceiec-test //集群名称,同一个集群,名称唯一
node.name: node-1  //节点名称
node.master: true  //该节点是否可被选为master
node.data: true  //该节点是否存储数据
path.data: /data/bigdata/es_data/data //数据存放路径,该目录需要事先建好
path.logs: /data/bigdata/es_data/logs  //log存放路径,该目录需要事先建好

network.host: 192.168.20.230  //节点绑定Ip,如果为0.0.0.0表示所有外部机器均可连接该集群
discovery.zen.ping.unicast.hosts: ["192.168.20.230,192.168.20.231,192.168.20.232"] //配置该参数,用来自动发现节点,组成集群
discovery.zen.ping.multicast.enabled: true
http.port: 9200 //rest 端口,默认为9200
transport.tcp.port: 9300  //transport 端口,默认为9300
action.auto_create_index: true //自动创建索引,用于kibana

http.cors.enabled: true  //用于es head插件访问
http.cors.allow-origin: "*"

详细的参数信息可参考.
对于另外两台机器192.168.20.231,192.168.20.232作同样的修改,使用命令!x保存修改并退出vi编辑器。

  1. 创建es用户esUser
    为了安全起见,es不允许使用root用户来启动集群,会报错如下:
Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:94)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:160)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Refer to the log for complete error details.

因此需要为es单独添加一个用户esUser用来管理es集群,过程如下:

groupadd esUser //添加用户esUser
useradd esUser -g esUser -p elasticsearch-5.5.3 //添加esUser的权限
chown -R esUser elasticsearch-5.5.3 //改变elasticsearch-5.5.3的权限

elasticsearch-5.5.3为你elasticsearch的目录名称
使用su命令切换用户:

[root@ceiec-1 elasticsearch-5.5.3]# su esUser
[esUser@ceiec-1 elasticsearch-5.5.3]$
  1. 启动集群
    切换到esUser用户下,就可以安全的启动es集群了,如下:
[esUser@ceiec-1 elasticsearch-5.5.3]$ bin/elasticsearch -d
[esUser@ceiec-1 elasticsearch-5.5.3]$ jps
1219 Jps
1215 Elasticsearch
[esUser@ceiec-1 elasticsearch-5.5.3]$

使用-d参数可以使es集群后台启动,其他两台机器使用同样的过程启动es node节点。这样一个可用的es集群即搭建完成,访问http://192.168.20.230:9200即可查看该节点的信息,如下:

{
    "name": "ceiec-1",
    "cluster_name": "ceiec-test",
    "cluster_uuid": "_na_",
    "version": {
        "number": "5.5.3",
        "build_hash": "9305a5e",
        "build_date": "2017-09-07T15:56:59.599Z",
        "build_snapshot": false,
        "lucene_version": "6.6.0"
    },
    "tagline": "You Know, for Search"
}

elasticSearch-head安装

head插件的安装依赖node环境,因此需提前部署node.js环境,过程如下:

  1. 安装node环境
    类似于java环境的安装
  2. 安装grant
    grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动,如下:
> cd /data/bigdata/elasticsearch-head-master
> npm install -g grunt-cli   #安装grunt-cli
> npm install grunt --save  #安装grunt
> npm  install grunt-contrib-jasmine #安装jasmine

3.下载head
地址:https://github.com/mobz/elasticsearch-head.git
下载完成后解压到linux相关目录,比如/data/bigdata/elasticsearch-head-master

  1. 修改head插件Gruntfile.js源码:
 connect: {
         server: {
                    options: {
                                  hostname: "192.168.20.230", //自己的ip
                                   port: 9100, //port
                                    base: '.',
                                     keepalive: true
                                }
                        }
                }
  1. 启动head

在elasticsearch-head-master目录下

npm install 
grunt server

即可成功启动head

  1. 访问http://192.168.20.230:9100查看集群的相关信息

Ik分词器安装

GitHub上下载对应版本的IK分析器zip包,下载之后直接解压缩到es安装目录下的plugs/ik目录下(假如没有此目录,新建),重启集群(各个node节点重复这个操作)即可。

安装kibana

  1. 下载
    地址:https://www.elastic.co/downloads/past-releases
    根据es版本下载对应的安装包
  2. 上传至linux相关目录并解压,比如/data/bigdata/kibana-5.5.3-linux-x86_64
  3. 修改配置文件
    [esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ vi config/kibana.yml
    主要有以下几处需要修改
server.port: "5601" //端口号。默认5601
server.host: "192.168.20.230"  //kibana Ip,默认为localhost
elasticsearch.url: "http://192.168.20.230:9200" //es链接地址

其他参数按需修改即可,修改完毕,使用命令!x保存并退出编辑。

  1. 启动kibana
    使用命令nohup bin/kibana &启动kibana
[esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ nohup bin/kibana &
[1] 1312
[esUser@ceiec-1 kibana-5.5.3-linux-x86_64]$ nohup: 忽略输入并把输出追加到"/home/esUser/nohup.out"

访问http://192.168.20.230:5601进入kibana!

上一篇下一篇

猜你喜欢

热点阅读