ElasticSearch (一) : ES 安装 与 kibana 安装

ElasticSearch (一) : ES 安装 与 kibana 安装

 

 

1、ElasticSearch集群安装

 

一、环境选择

ElasticSearch 集群安装依赖JDK,本文的ElasticSearch版本为6.5.4,对应的Kibana也是6.5.4,这里顺便说下Kibana的版本最好不要低于ElasticSearch的版本,JDK的版本为1.8。

下载地址:

ElasticSearch-6.5.4:  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz

Kibana-6.5.4:  https://artifacts.elastic.co/downloads/kibana/kibana-6.5.4-linux-x86_64.tar.gz

JDK1.8 :  http://www.oracle.com/technetwork/java/javase/downloads

ES集群安装服务器说明:

 

二、Linux配置

在安装ElasticSearch之前,我们需要对Linux的环境做一些调整,防止在后续过程中出现一些问题!

1、修改最大内存限制

修改sysctl.conf文件

vim /etc/sysctl.conf

在末尾增加如下配置:

vm.max_map_count = 655360
vm.swappiness=1

然后保存退出,输入以下命令使其生效

 sysctl  -p
如果提示找不到 sysctl 命令, 到 /usr/sbin/sysctl -p 下面执行 或使用 whereis sysctl 查找命令的路径

 

2、修改最大线程个数

 修改  /etc/security/limits.d  下的 *-nproc.conf 文件(Linux版本的原因先进入到文件夹下,查看名字后在修改,名字可能不同。)

cd   /etc/security/limits.d
vim  20-nproc.conf
// 修改如下 * soft nproc 4096

 

3、修改最大打开文件个数、线程数

修改limits.conf

vim /etc/security/limits.conf

在末尾添加如下内容:

* soft nofile 65536
* hard nofile 65536
* soft nproc  4096
* hard nproc  4096

 

4、防火墙开放端口

开启端口:9200、9201、9300、9301
firewall-cmd --zone=public --add-port=9200/tcp --permanent

重启防火墙:
firewall-cmd --reload

查询有哪些端口是开启的:
firewall-cmd --list-port

 

三、JDK安装

参考:   https://www.cnblogs.com/dw3306/p/14360518.html

四、ElasticSearch安装

1、文件准备

将下载好的 elasticsearch 文件上传并解压:

1.1、上传到  /usr/local/  文件夹下,并解压

tar -zxvf  elasticsearch-6.5.4.tar.gz

1.2、移动解压后的文件到 /usr/local/es-6.5.4/masternode 下(自动重命名masternode), 执行如下:

mkdir es-6.5.4
mv elasticsearch-6.5.4/ ./es-6.5.4/masternode

2、配置修改

因为  elasticsearch 需要在 非root的用户 下面操作,并且elasticsearch的文件夹的权限也为非root权限, 因此我们需要创建一个用户进行操作,我们创建一个 es 用户,并赋予该目录的权限。
命令如下:

adduser es
chown -R es:es  /usr/local/es-6.5.4

这里我们顺便再来指定   ElasticSearch 数据  存放的路径地址,我们可以先使用 df  -h 命令查看当前系统的盘主要的磁盘在哪,然后再确认数据存放的路径。 我这里直接在刚才移动后的masternode 目录下创建ElasticSearch数据的文件夹,这里的文件夹创建用我们刚刚创建好的用户去创建,切换到 es 用户,然后创建文件夹。

su es    
cd /usr/local/es-6.5.4/masternode/
mkdir masterdata

主节点(master)配置

创建成功之后,我们先修改  masternode  节点的配置,修改完成之后在同级目录进行copy一下,名称为datanode,然后只需少许更改datanode节点的配置即可。这里我们要修改  elasticsearch.yml  jvm.options  文件即可! 注意这里还是 es 用户!

2.1、修改 masternodeelasticsearch.yml 文件配置如下:

vim /usr/local/es-6.5.4/masternode/config/elasticsearch.yml
cluster.name: my-cluster
node.name: my-master
path.data: /usr/local/es-6.5.4/masternode/masterdata
path.logs: /usr/local/es-6.5.4/masternode/logs
network.host: 0.0.0.0
network.publish_host: 192.168.248.130
transport.tcp.port: 9301
http.port: 9201
discovery.zen.ping.unicast.hosts: ["192.168.248.130:9301","192.168.248.131:9301","192.168.248.132:9301"]
node.master: true 
node.data: false
node.ingest: false
discovery.zen.minimum_master_nodes: 1
http.max_content_length: 1024mb

elasticsearch.yml文件参数配置说明:

  • cluster.name:  集群名称,同一集群的节点配置应该一致。es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。

  • node.name:   该节点的名称。

  • path.data: 数据存放的路径。

  • path.logs: 日志存放的路径。

  • network.host:   设置ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。

  • network.publish_host:  设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。

  • transport.tcp.port:   设置节点间交互的tcp端口,默认是9300。

  • http.port:   设置对外服务的http端口,默认为9200。

  • discovery.zen.ping.unicast.hosts:  设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。

  • node.master:  指定该节点是否有资格被选举成为node,默认是true。

  • node.data:   指定该节点是否存储索引数据,默认为true。

  • node.ingest:   指定该节点是否使用管道,默认为true。

  • index.number_of_shards:  设置默认索引分片个数默认为5片

  • index.number_of_replicas:   设置默认索引副本个数,默认为1个副本

  • discovery.zen.minimum_master_nodes:   设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)。

  • bootstrap.memory_lock:   设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,Linux下可以通过 ulimit -l unlimited 命令。

  • http.max_content_length:   设置内容的最大容量,默认100mb

这里在顺便说下 ElasticSearch节点的属性:

  1. node.master: true   并且   node.data: true
    这种组合表示这个节点即有成为主节点的资格,又存储数据。
    如果某个节点被选举成为了真正的主节点,那么他还要存储数据,这样对于这个节点的压力就比较大了。ElasticSearch默认每个节点都是这样的配置,在测试环境下这样做没问题。实际工作中建议不要这样设置,因为这样相当于主节点和数据节点的角色混合到一块了。

  2. node.master: false 并且 node.data: true
    这种组合表示这个节点没有成为主节点的资格,也就不参与选举,只会存储数据。 这个节点我们称为data(数据)节点。在集群中需要单独设置几个这样的节点负责存储数据,后期提供存储和查询服务。

  3. node.master: true 并且 node.data: false
    这种组合表示这个节点不会存储数据,有成为主节点的资格,可以参与选举,有可能成为真正的主节点,这个节点我们称为master节点。

  4. node.master: false node.data: false
    这种组合表示这个节点即不会成为主节点,也不会存储数据,这个节点的意义是作为一个client(客户端)节点,主要是针对海量请求的时候可以进行负载均衡。

  5. node.ingest:  true
    执行预处理管道,不负责数据和集群相关的事物。
    它在索引之前预处理文档,拦截文档的bulk和index请求,然后加以转换。
    将文档传回给bulk和index API,用户可以定义一个管道,指定一系列的预处理器。

2.2、将 jvm.options配置 Xms 和  Xmx  改成 2G,配置如下:

vim  /usr/local/es-6.5.4/masternode/config/jvm.options
-Xms2g
-Xmx2g

 

关于ElasticSearch更多配置可以参考ElasticSearch官方文档!

数据节点(datanode)配置

在配置完masternode节点的ElasticSearch之后,我们再来配置datanode节点的,我们将masternode复制一份改名为 nodedata,然后 简单更改一下即可。
命令如下:

cp -r /usr/local/es-6.5.4/masternode/  /usr/local/es-6.5.4/datanode

存放数据的文件夹重命名一下

cd datanode
mv masterdata/  ./data

修改 datanode  的  elasticsearch.yml 文件配置如下:

vim /usr/local/es-6.5.4/datanode/config/elasticsearch.yml

elasticsearch.yml :

cluster.name: my-cluster
node.name: data-node
path.data: /usr/local/es-6.5.4/datanode/data
path.logs: /usr/local/es-6.5.4/datanode/logs
network.host: 0.0.0.0
network.publish_host: 192.168.248.130
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.248.130:9301","192.168.248.131:9301","192.168.248.132:9301"]
node.master: false
node.data: true
node.ingest: false
discovery.zen.minimum_master_nodes: 1
http.max_content_length: 1024mb

 

将  jvm.options 配置 Xms 和 Xmx 改成8G,配置如下:

vim /usr/local/es-6.5.4/datanode/config/jvm.options
-Xms8g
-Xmx8g

注:配置完成之后需要使用 ll 命令检查一下 masternode 和 datanode 权限是否属于 es 用户的,若不属于,可以使用   chown -R  es:es  + 路径 命令进行赋予权限。

上述配置完成之后,可以使用相同的方法在其他的机器在操作一次,或者使用 ftp 工具进行传输,又或者使用 scp 命令进行远程传输文件然后根据不同的机器进行不同的修改。

3、启动ElasticSearch

这里还是需要使用 es 用户来进行启动,每台机器的每个节点都需要进行操作!
  输入:

su es    
cd  /usr/local/es-6.5.4/
./masternode/bin/elasticsearch -d
./datanode/bin/elasticsearch  -d

启动成功之后,在浏览器上输入 ip:9200  或 ip:9201进行查看。
出现以下界面表示成功:

 

二、Kibana 安装

kinaba 安装只需要在一台机器上部署即可,直接通过root用户进行操作,需要注意的是 kinaba 需要和 ElasticSearch 服务器网络 ping通即可。

1,文件准备

将下载下来的 kibana-6.5.4-linux-x86_64.tar.gz 的配置文件进行解压
在linux上输入:

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

然后将文件夹重命名为 kibana6.5.4
输入:

mv  kibana-6.5.4-linux-x86_64  kibana6.5.4

 

2,配置修改

进入文件夹并修改kibana.yml配置文件:

cd  /kibana6.5.4
vim config/kibana.yml

将配置文件中的:

server.host: "0.0.0.0"

修改为:

server.host: "192.168.248.130"

然后一行新增,这行的意思是不使用帐号密码登录

xpack.security.enabled: false

保存退出!

3,Kinaba 启动

使用root用户进行启动。
在kibana6.5.4文件夹目录输入:

nohup ./bin/kibana >/dev/null   2>&1 &

防火墙开启端口:5601

开启端口:5601
firewall-cmd --zone=public --add-port=5601/tcp --permanent

重启防火墙:
firewall-cmd --reload

查询有哪些端口是开启的:
firewall-cmd --list-port

浏览器输入: 192.168.248.130: 5601

 

 

posted @ 2021-04-18 23:34  邓维-java  阅读(516)  评论(0)    收藏  举报