ElasticSeach集群及插件搭建文档

一、集群架构设计

集群角色

        Elasticsearch多机集群中节点角色可分为Master Node、Data Node和Client Node,在配置文件中使用Zen发现(Zen Discovery)机制来管理不同节点。Zen发现是ES自带的默认发现机制,使用多播机制发现其它节点,设置相同集群名称的节点会自动被加入集群中。

· Master Node:Maste节点点主要用于元数据(metadata)的处理,如索引的新增、删除、分片分配等。

· Data Node:Data节点保存数据分片,负责数据相关操作,如分片的 CRUD,以及搜索和整合操作,这些操作比较消耗 CPU、内存和 I/O 资源。

· Client Node:Client节点起路由请求作用,可看做负载均衡器。( 对于请求不多的业务,Client Node可不加,Master和Data一般足够)

Linux-13-210

Linux-13-211

Linux-13-212

IP

192.168.13.210

192.168.13.211

192.168.13.212

Master

    true

   true

   true

Data

true

   true

   true

二、ElasticSearch集群搭建

版本要求

Elasticsearch5.4.0版本要求JDK1.8或以上版本。

本文档版本如下:

ElasticSearch版本:elasticsearch-5.4.0.

JDK版本:jdk-8u112-linux-x64

配置JDK

vim /etc/profile.d/jdk-8u112.sh

source jdk-8u112.sh

echo $JAVA_HOME

相关系统参数修改配置

内核参数配置

vim /etc/sysctl.conf

增加如下配置:

fs.file-max=65536

vm.max_map_count=262144

资源参数配置

vim /etc/security/limits.conf

修改为如下配置:

*        hard    nofile           131072

*        soft    nofile           65536

*        hard    nproc            4096

*        soft    nproc            2048

进程数配置

ulimit -u 204 或者

vim /etc/security/limits.d/90-nproc.conf

(Es5.X以上系统要求至少能够开启2048个线程方可启动)

使相关配置生效

sysctl -p

ElasticSearch集群安装

下载安装包

进入官网下载地址:

https://www.elastic.co/downloads/past-releases

下载ElasticSearch,得到elasticsearch-5.4.0.tar.gz

解压安装包

mkdir  -p  /home/java/elasticsearch

上传安装文件至/home/java/elasticsearch目录

tar  -zxvf  elasticsearch-5.4.0.tar.gz

rm  -rf  elasticsearch-5.4.0.tar.gz      // 删除安装文件(可选)

解压后形成elasticsearch-5.4.0文件,其内容如下:

Es参数配置

cd  /home/java/elasticsearch/elasticsearch-5.4.0/config

scp -r elasticsearch.yml  elasticsearch.yml.bak  //备份配置文件

vim elasticsearch.yml

修改配置如下:

// 集群名称(自定义),相同集群名称的节点加入集群

cluster.name: my-cluster

// 节点名称(自定义)

node.name: linux-13-210

// 指定此节点是否有资格推举为Master,默认为true,集群默认第一台节点为Master(可选)

node.master: true

// 指定该节点是否存储索引数据,默认为true(可选)

node.data: true

// 数据文件存储路径

path.data: /path/to/data(可选)

// log文件存储路径

path.logs: /path/to/logs(可选)

//当内存不够时,JVM会写入交换空间(swapping),此时ES性能会低下,用户应该保证其不会写入交换空间,可以通过设置属性为true来锁定内存,同时也要允许Es进程可以锁住内存,linux下可以通过 `ulimit -l unlimited` 命令(可选)。

bootstrap.memory_lock: true

// centos6不支持SecComp,而默认bootstrap.system_call_filter为true进行检测,因而设置为false

(注:SecComp为secure computing mode简写)

bootstrap.system_call_filter: false

// 网络连接地址

network.host: 192.168.13.210

// 连接端口

http.port: 9200

// 设置集群自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可适当调高点来防止自动发现时出错discovery.zen.ping_timeout: 120s

//

client.transport.ping_timeout: 60s

// 集群Master节点的初始列表,可以通过这些节点来自动发现新接入集群的节点

discovery.zen.ping.unicast.hosts: ["192.168.13.210", "192.168.13.211", "192.168.13.212"]

// 防脑裂配置,建议为:具有Master资格的节点总数/2+1,即当集群大多数节点选举通过才可成为成为Master,这样不会造成一个集群存在两个主节点的情况。否则,当部分节点与其余节点网络不通时,这部分节点会自动组成集群,选举自己的主节点,当网路恢复时就会存在两个主节点,无法工作。

discovery.zen.minimum_master_nodes: 2

// 是否支持跨域,默认为false

http.cors.enabled: true

// 当设置允许跨域,默认为*,表示支持所有域名

http.cors.allow-origin: "*"

// (可选)

http.cors.allow-credentials: true

// 自动创建索引(可选)

action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*

新建用户和用户组

ElasticSearch基于安全考虑,不允许以root用户启动

groupadd elasticsearch      //新建用户组elasticsearch

// 新增elasticsearch用户并将其添加至elasticsearch用户组

useradd -r -g elasticsearch elasticsearch

//更改文件属主

chown -R elasticsearch:elasticsearch /home/java/elasticsearch

集群启动/关闭

启动ElasticSearch

cd /home/java/elasticsearch/elasticsearch-5.4.0/

su elasticserch        // 切换用户

bin/elasticsearch      //前台启动

bin/elasticsearch  -d  //后台启动

查看启动进程:jps | grep Elasticsearch

ps -aux|grep -i elasticsearch

网页浏览端

输入IP:9200

关闭ElasticSearch

前台运行:可通过”CTRL+C”组合键来停止运行.
后台运行,可以通过”kill -9 进程号”停止.

也可以通过REST API接口:

关闭整个集群:

curl -XPOST http://主机IP:9200/_cluster/nodes/_shutdown

关闭单个节点:

curl -XPOST http://主机IP:9200/_cluster/nodes/节点标示符(linux-13-210)/_shutdown

  • Head插件集成

安装Git并下载Head插件

安装Git,需要从Git上下载源码,因而先安装Git

yum -y install git

下载Head源码

git clone git://github.com/mobz/elasticsearch-head.git

NodeJs下载

进入官网下载地址:

https://nodejs.org/en/download/

下载NodeJS,得到node-v6.10.3-linux-x64.tar.xz

或者至:

http://nodejs.org/dist/

根据需要下载历史版本

本文档版本如下:

NodeJS版本:node-v6.10.3-linux-x64.tar.xz

NodeJs解压

cd  /home/java

上传压缩文件至/home/java目录下(本文档为linux-13-210节点)

xz -d node-v6.10.3-linux-x64.tar.xz

tar -xvf node-v6.10.3-linux-x64.tar

解压后形成node-v6.10.3-linux-x64文件,其内容如下:

配置NodeJS环境变量

vim nodejs.sh

// 立即生效执行

source nodejs.sh            

// 测试配置是否生效

echo $NODE_HOME

node -v

npm -v

Grunt安装

安装指定版本Grunt或者Grunt插件

npm install grunt@VERSION --save-dev

Grunt-cli安装

Grunt是一个很方便的构建工具,可以进行打包压缩、压缩、测试、执行等工作,5.0版本以后的head插件是通过grunt启动的额,因此需要安装grunt

mkdir  -p  /home/java/elasticsearch/elasticsearch-head

cd  /home/java/elasticsearch/elasticsearch-head

npm  install  grunt-cli  

或 npm install -g grunt-cli(推荐,全局范围使用CLI)

备注:为了方便使用Grunt,推荐在全局范围内安装grunt-cli命令行接口,即npm install -g grunt-cli ,这条命令会把grunt命令植入用户的系统路径中,这样就允许用户从任意目录中运行grunt

测试Grunt

grunt -version

修改Head源码

修改服务器监听地址

cd  /home/java/elasticsearch/elasticsearch-head

vim Gruntfile.js

增加hostname属性,设置为’*’

修改连接地址

cd  /home/java/elasticsearch/elasticsearch-head/_site

vim app.js

修改head连接地址:将localhost修改为ES服务器的地址

启动Es集群

su  elasticsearch    //切换至elasticsearch用户

bin/elasticsearch    //启动Es集群

启动Head插件

启动ES节点后,在elasticsearch-head目录下

cd /home/java/elasticsearch/elasticsearch-head

npm install

grunt server

三、安装Kibana

        Kibana 是一个开源分析和可视化平台,旨在可视化操作 Elasticsearch 。Kibana可以用来搜索,查看和与存储在 Elasticsearch 索引中的数据进行交互,可以轻松地进行高级数据分析,并可在各种图表,表格和地图中显示数据。Kibana可以非常方便地把来自LogstashES-HadoopBeats或第三方技术的数据整合到Elasticsearch,支持的第三方技术包括Apache FlumeFluentd等。

版本要求

应将Kibana配置为和Elasticsearch节点运行的版本相同。这是官方支持的配置。

不支持运行不同主版本的 Kibana 和 Elasticsearch (如 Kibana 5.x 和 Elasticsearch 2.x ),Kibana 的次要版本比 Elasticsearch 的次要版本(例如 Kibana 5.1 和 Elasticsearch5.0)高也不支持。

 Elasticsearch 的次要版本比kibana的次要版本高通常会起作用,不过这样只是为了满足首先升级 Elasticsearch ,然后升级kibana的需要,(如 Kibana 5.0 和 Elasticsearch 5.1 )。在这种配置中, Kibana 服务器启动时将会记录一个警告,因此两个版本不一致的情况只是暂时的,为了不记录警告,还得将 Kibana 升级到与 Elasticsearch 相同的版本。

一般情况下,支持运行Kibana和 Elasticsearch 的不同补丁版本(例如 Kibana 5.0.0 和 Elasticsearch 5.0.1 ),尽管官网鼓励用户下载Kibana和 Elasticsearch 的相同补丁版本。

本文档安装版本如下:

ElasticSearch版本:Elasticsearch-5.4.0

Kibana版本:Kibana-5.4.0-linux-x86_64

安装包

Kibana提供以下格式的安装包:

·  tar.gz: tar.gz 用于在Linux和Darwin上安装

·  zip: 唯一支持window的安装包

·  deb: 适用于Debian, Ubuntu, 以及其他 Debian-based系统。

·  rpm:适用于 Red Hat, Centos, SLES, OpenSuSE 以及RPM-based 系统

·  docker:一个镜像可以用来运行kibana作为docker容器,附带 X-Pack 预安装,可从Elastic Docker注册。

下载安装包

进入官网下载地址:

Past Releases of Elastic Stack Software | Elastic

下载Kibana,得到kibana-5.4.0-linux-x86_64.tar.gz

解压安装包

mkdir  -p  /home/java/kibana-5.4.0

上传压缩文件至/home/java/kibana-5.4.0目录下

tar  -zxvf  kibana-5.4.0-linux-x86_64.tar.gz

 

解压后文件内容如下:

或者采用官网方式安装:

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-linux-x86_64.tar.gz

sha1sum kibana-5.4.0-linux-x86_64.tar.gz 

tar -xzf kibana-5.4.0-linux-x86_64.tar.gz

cd kibana-5.4.0-linux-x86_64.tar.gz

注意:

修改Kibana配置文件

cd  /home/java/kibana-5.4.0/kibana-5.4.0-linux-x86_64/config

scp  -r  kibana.yml  kibana.yml.bak     //保存配置文件副本

vim  kibana.yml

修改配置如下:

// 开放端口

server.port: 5601

// 修改对外访问,这样外网才能访问到

server.host: "linux-13-210"

// Kibana服务名字,自定义

server.name: "my-kibana"

// 添加节点,默认只搜索本地的ElasticSearch节点

elasticsearch.url: "http://192.168.13.210:9200"

(添加防火墙规则开放5601端口或者关闭防火墙。root身份操作。

添加规则:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5601 -j ACCEPT

关闭防火墙

service iptables stop

备注:每次修改kibana配置,重启kibana才能生效

启动Kibana

cd  /home/java/kibana-5.4.0/kibana-5.4.0-linux-x86_64

bin/kibana
( nohup  bin/kibana  &  // 后台运行)

(kibana必须是在root下运行,否则会报错,启动失败)

启动成功后,访问linux-13-210:5601(192.168.13.210:5601)即可打开页面。

四、安装X-Pack

        X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中。在Elasticsearch 5.0.0版本之前,一般通过安装Kibana,而后Marvel、Hand等各种功能插件添加到Kibana上使用,在5.0.0版本后,只需安装一个官方推荐的X-pack扩展包即可获取所有功能。

版本要求

应将X-Pack版本和Kibana与Elasticsearch节点运行的版本相同。这是官方建议的配置。

本文档安装版本如下:

ElasticSearch版本:Elasticsearch-5.4.0

Kibana版本:Kibana-5.4.0-linux-x86_64

X-Pack版本:x-pack-5.4.0.zip

X-Pack安装

安装X-pack需要分别在ElasticSearch根目录和Kibana根目录下操作。确保ElasticSearch和Kibana服务关闭,以下为具体安装过程:

在线场景安装

ElasticSearch下载X-Pack

在Es的根目录(每个节点),运行bin/elasticsearch-plugin进行安装。

bin/elasticsearch-plugin install x-pack

备注:

此时elasticsearch-plugin没有执行权限

chmod +x elasticsearch-plugin

        安装的过程中可看到一个插件额外的权限要求:确认用户授予X-Pack附加权限。 X-Pack需要这些权限在安装过程中设置威胁上下文加载器,以便Watcher可以发送电子邮件通知。选项选择y即可。

备注:如果在Elasticsearch已禁用自动索引的创建,在elasticsearch.yml配置action.auto_create_index允许X-pack创造以下指标:

action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*

Kibana下载X-Pack

在Kibana根目录运行 bin/kibana-plugin 进行安装。

bin/kibana-plugin install x-pack

如果不需要插件,可以运行:

bin/kibana-plugin  remove  x-pack

离线手动场景安装

若在线安装不了,则可选择下载X-Pack后离线安装。

下载安装包

至官网下载对应版本安装包,本文档X-Pack版本x-pack-5.4.0.zip。

上传安装包

上传x-pack文件至临时目录下(注意不要放在ElasticSearch的plugins目录下)

ElasticSearch离线安装X-Pack

bin/elasticsearch-plugin install file:///path/to/file/x-pack-5.4.0.zip

Kibana离线安装X-Pack

bin/kibana-plugin install file:///path/to/file/x-pack-5.4.0.zip

启动ElasticSearch

cd /home/java/elasticsearch/elasticsearch-5.4.0

bin/elasticsearch

启动Kibana

cd /home/java/kibana-5.4.0/kibana-5.4.0-linux-x86_64

bin/kibana

浏览器访问

输入IP:5601即可访问到web页面,因为安装了x-pack,需要登录,默认用户名elastic, 默认密码为changeme。

由图中可知,默认Kibana是没有Monitoring、Graph、Machine Learning选项。其实,这些选项都是由X-Pack集成提供的。

五、异常汇总

Root账号启动问题

Es5.X必须使用JDK1.8并且不能使用Root账号启动

可以新建非Root账号启动集群:

// 新建用户组elasticsearch

groupadd  elasticsearch      

// 新建elasticsearch用户并将其添加至elasticsearch用户组

useradd -r -g elasticsearch elasticsearch

// 更改Es文件属主为新建用户

chown -R elasticsearch:elasticsearch /home/java/elasticsearch

bootstrap checks failed问题

max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

vim /etc/security/limits.conf

修改配置为:

max number of threads [1024] for user [test1] is too low, increase to at least [2048]

vim /etc/security/limits.d/90-nproc.conf

修改配置为:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

vim /etc/sysctl.conf

加入配置为:

// 使配置生效

sysctl -p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极个别的谭同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值